summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/appleutility/wscript3
-rw-r--r--libs/ardour/ardour/ardour.h2
-rw-r--r--libs/ardour/ardour/audio_backend.h93
-rw-r--r--libs/ardour/ardour/audio_buffer.h15
-rw-r--r--libs/ardour/ardour/audioengine.h3
-rw-r--r--libs/ardour/ardour/audiofile_tagger.h6
-rw-r--r--libs/ardour/ardour/auditioner.h11
-rw-r--r--libs/ardour/ardour/buffer.h5
-rw-r--r--libs/ardour/ardour/buffer_set.h1
-rw-r--r--libs/ardour/ardour/control_protocol_manager.h6
-rw-r--r--libs/ardour/ardour/cycle_timer.h2
-rw-r--r--libs/ardour/ardour/directory_names.h1
-rw-r--r--libs/ardour/ardour/iec1ppmdsp.h4
-rw-r--r--libs/ardour/ardour/iec2ppmdsp.h4
-rw-r--r--libs/ardour/ardour/internal_send.h1
-rw-r--r--libs/ardour/ardour/kmeterdsp.h2
-rw-r--r--libs/ardour/ardour/libardour_visibility.h35
-rw-r--r--libs/ardour/ardour/midi_model.h2
-rw-r--r--libs/ardour/ardour/midi_patch_manager.h2
-rw-r--r--libs/ardour/ardour/midi_ui.h3
-rw-r--r--libs/ardour/ardour/msvc_libardour.h4
-rw-r--r--libs/ardour/ardour/panner.h24
-rw-r--r--libs/ardour/ardour/panner_manager.h9
-rw-r--r--libs/ardour/ardour/panner_shell.h31
-rw-r--r--libs/ardour/ardour/plugin.h18
-rw-r--r--libs/ardour/ardour/plugin_insert.h3
-rw-r--r--libs/ardour/ardour/port_engine.h5
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h4
-rw-r--r--libs/ardour/ardour/revision.h2
-rw-r--r--libs/ardour/ardour/route.h15
-rw-r--r--libs/ardour/ardour/send.h1
-rw-r--r--libs/ardour/ardour/session.h11
-rw-r--r--libs/ardour/ardour/session_configuration_vars.h1
-rw-r--r--libs/ardour/ardour/session_event.h4
-rw-r--r--libs/ardour/ardour/slave.h30
-rw-r--r--libs/ardour/ardour/srcfilesource.h83
-rw-r--r--libs/ardour/ardour/types.h11
-rw-r--r--libs/ardour/ardour/utils.h1
-rw-r--r--libs/ardour/ardour/vestige/aeffectx.h44
-rw-r--r--libs/ardour/ardour/vumeterdsp.h4
-rw-r--r--libs/ardour/audio_buffer.cc44
-rw-r--r--libs/ardour/audio_diskstream.cc2
-rw-r--r--libs/ardour/audio_port.cc9
-rw-r--r--libs/ardour/audioanalyser.cc2
-rw-r--r--libs/ardour/audioengine.cc25
-rw-r--r--libs/ardour/audiofile_tagger.cc12
-rw-r--r--libs/ardour/audioregion.cc2
-rw-r--r--libs/ardour/auditioner.cc117
-rw-r--r--libs/ardour/buffer_set.cc15
-rw-r--r--libs/ardour/butler.cc8
-rw-r--r--libs/ardour/control_protocol_manager.cc87
-rw-r--r--libs/ardour/delivery.cc28
-rw-r--r--libs/ardour/engine_slave.cc26
-rw-r--r--libs/ardour/enums.cc13
-rw-r--r--libs/ardour/export_channel.cc6
-rw-r--r--libs/ardour/export_handler.cc13
-rw-r--r--libs/ardour/globals.cc4
-rw-r--r--libs/ardour/iec1ppmdsp.cc2
-rw-r--r--libs/ardour/iec2ppmdsp.cc2
-rw-r--r--libs/ardour/instrument_info.cc2
-rw-r--r--libs/ardour/internal_send.cc26
-rw-r--r--libs/ardour/io.cc2
-rw-r--r--libs/ardour/kmeterdsp.cc2
-rw-r--r--libs/ardour/linux_vst_support.cc10
-rw-r--r--libs/ardour/lv2_plugin.cc41
-rw-r--r--libs/ardour/meter.cc13
-rw-r--r--libs/ardour/midi_buffer.cc21
-rw-r--r--libs/ardour/midi_clock_slave.cc48
-rw-r--r--libs/ardour/midi_model.cc2
-rw-r--r--libs/ardour/midi_port.cc22
-rw-r--r--libs/ardour/midi_ui.cc58
-rw-r--r--libs/ardour/midiport_manager.cc16
-rw-r--r--libs/ardour/mtc_slave.cc6
-rw-r--r--libs/ardour/panner_manager.cc113
-rw-r--r--libs/ardour/panner_search_path.cc3
-rw-r--r--libs/ardour/panner_shell.cc152
-rw-r--r--libs/ardour/plugin_insert.cc46
-rw-r--r--libs/ardour/plugin_manager.cc4
-rw-r--r--libs/ardour/po/cs.po568
-rw-r--r--libs/ardour/po/de.po309
-rw-r--r--libs/ardour/po/el.po1974
-rw-r--r--libs/ardour/po/es.po668
-rw-r--r--libs/ardour/po/it.po1494
-rw-r--r--libs/ardour/po/nn.po1639
-rw-r--r--libs/ardour/po/pl.po669
-rw-r--r--libs/ardour/po/ru.po227
-rw-r--r--libs/ardour/po/sv.po568
-rw-r--r--libs/ardour/po/zh.po658
-rw-r--r--libs/ardour/port_insert.cc1
-rw-r--r--libs/ardour/processor.cc1
-rw-r--r--libs/ardour/quantize.cc11
-rw-r--r--libs/ardour/rb_effect.cc3
-rw-r--r--libs/ardour/route.cc217
-rw-r--r--libs/ardour/route_graph.cc4
-rw-r--r--libs/ardour/send.cc19
-rw-r--r--libs/ardour/session.cc69
-rw-r--r--libs/ardour/session_process.cc8
-rw-r--r--libs/ardour/session_state.cc27
-rw-r--r--libs/ardour/session_time.cc4
-rw-r--r--libs/ardour/session_vst.cc108
-rw-r--r--libs/ardour/slave.cc13
-rw-r--r--libs/ardour/speakers.cc73
-rw-r--r--libs/ardour/srcfilesource.cc160
-rw-r--r--libs/ardour/test/audio_engine_test.cc53
-rw-r--r--libs/ardour/test/audio_engine_test.h14
-rw-r--r--libs/ardour/test/control_surfaces_test.cc4
-rw-r--r--libs/ardour/test/interpolation_test.cc6
-rw-r--r--libs/ardour/thread_buffers.cc10
-rw-r--r--libs/ardour/ticker.cc170
-rw-r--r--libs/ardour/utils.cc35
-rw-r--r--libs/ardour/vst_plugin.cc43
-rw-r--r--libs/ardour/vumeterdsp.cc4
-rw-r--r--libs/ardour/wscript75
-rw-r--r--libs/audiographer/audiographer/broadcast_info.h2
-rw-r--r--libs/audiographer/audiographer/debuggable.h8
-rw-r--r--libs/audiographer/audiographer/general/silence_trimmer.h6
-rw-r--r--libs/audiographer/audiographer/visibility.h35
-rw-r--r--libs/audiographer/src/general/sample_format_converter.cc27
-rw-r--r--libs/audiographer/tests/general/sample_format_converter_test.cc18
-rw-r--r--libs/audiographer/wscript9
-rw-r--r--libs/backends/jack/jack_audiobackend.cc92
-rw-r--r--libs/backends/jack/jack_audiobackend.h13
-rw-r--r--libs/backends/jack/jack_connection.cc7
-rw-r--r--libs/backends/jack/jack_portengine.cc4
-rw-r--r--libs/backends/jack/jack_session.cc3
-rw-r--r--libs/backends/jack/jack_utils.cc112
-rw-r--r--libs/backends/jack/wscript6
-rw-r--r--libs/canvas/arc.cc16
-rw-r--r--libs/canvas/arrow.cc17
-rw-r--r--libs/canvas/canvas.cc459
-rw-r--r--libs/canvas/canvas/arc.h5
-rw-r--r--libs/canvas/canvas/arrow.h6
-rw-r--r--libs/canvas/canvas/canvas.h47
-rw-r--r--libs/canvas/canvas/circle.h4
-rw-r--r--libs/canvas/canvas/curve.h8
-rw-r--r--libs/canvas/canvas/debug.h25
-rw-r--r--libs/canvas/canvas/drag_handle.h41
-rw-r--r--libs/canvas/canvas/fill.h4
-rw-r--r--libs/canvas/canvas/flag.h5
-rw-r--r--libs/canvas/canvas/group.h6
-rw-r--r--libs/canvas/canvas/image.h5
-rw-r--r--libs/canvas/canvas/item.h24
-rw-r--r--libs/canvas/canvas/line.h4
-rw-r--r--libs/canvas/canvas/line_set.h5
-rw-r--r--libs/canvas/canvas/lookup_table.h73
-rw-r--r--libs/canvas/canvas/outline.h30
-rw-r--r--libs/canvas/canvas/pixbuf.h3
-rw-r--r--libs/canvas/canvas/poly_item.h3
-rw-r--r--libs/canvas/canvas/poly_line.h5
-rw-r--r--libs/canvas/canvas/polygon.h13
-rw-r--r--libs/canvas/canvas/rectangle.h3
-rw-r--r--libs/canvas/canvas/root_group.h5
-rw-r--r--libs/canvas/canvas/text.h7
-rw-r--r--libs/canvas/canvas/types.h26
-rw-r--r--libs/canvas/canvas/utils.h13
-rw-r--r--libs/canvas/canvas/visibility.h45
-rw-r--r--libs/canvas/canvas/wave_view.h8
-rw-r--r--libs/canvas/curve.cc22
-rw-r--r--libs/canvas/debug.cc85
-rw-r--r--libs/canvas/drag_handle.cc55
-rw-r--r--libs/canvas/flag.cc10
-rw-r--r--libs/canvas/group.cc83
-rw-r--r--libs/canvas/item.cc136
-rw-r--r--libs/canvas/line.cc50
-rw-r--r--libs/canvas/line_set.cc36
-rw-r--r--libs/canvas/lookup_table.cc80
-rw-r--r--libs/canvas/outline.cc2
-rw-r--r--libs/canvas/poly_item.cc74
-rw-r--r--libs/canvas/poly_line.cc56
-rw-r--r--libs/canvas/polygon.cc78
-rw-r--r--libs/canvas/rectangle.cc99
-rw-r--r--libs/canvas/text.cc56
-rw-r--r--libs/canvas/types.cc37
-rw-r--r--libs/canvas/utils.cc66
-rw-r--r--libs/canvas/wave_view.cc20
-rw-r--r--libs/canvas/wscript5
-rw-r--r--libs/clearlooks-newer/clearlooks_draw_glossy.c2
-rw-r--r--libs/clearlooks-newer/clearlooks_rc_style.c2
-rw-r--r--libs/clearlooks-newer/wscript1
-rw-r--r--libs/evoral/evoral/Note.hpp4
-rw-r--r--libs/evoral/evoral/TimeConverter.hpp16
-rw-r--r--libs/evoral/evoral/visibility.h41
-rw-r--r--libs/evoral/src/IdentityConverter.cpp3
-rw-r--r--libs/evoral/src/Note.impl112
-rw-r--r--libs/evoral/src/libsmf/smf.c12
-rw-r--r--libs/evoral/src/libsmf/smf_decode.c2
-rw-r--r--libs/evoral/src/libsmf/smf_load.c12
-rw-r--r--libs/evoral/src/libsmf/smf_private.h1
-rw-r--r--libs/evoral/src/libsmf/smf_save.c4
-rw-r--r--libs/evoral/src/libsmf/smf_tempo.c6
-rw-r--r--libs/evoral/wscript13
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/bindings.h4
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/dndvbox.h4
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/utils.h9
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/visibility.h37
-rw-r--r--libs/gtkmm2ext/pixfader.cc60
-rw-r--r--libs/gtkmm2ext/po/cs.po12
-rw-r--r--libs/gtkmm2ext/po/de.po12
-rw-r--r--libs/gtkmm2ext/po/el.po45
-rw-r--r--libs/gtkmm2ext/po/es.po45
-rw-r--r--libs/gtkmm2ext/po/fr.po21
-rw-r--r--libs/gtkmm2ext/po/nn.po2985
-rw-r--r--libs/gtkmm2ext/po/pl.po27
-rw-r--r--libs/gtkmm2ext/po/pt.po45
-rw-r--r--libs/gtkmm2ext/po/ru.po42
-rw-r--r--libs/gtkmm2ext/utils.cc110
-rw-r--r--libs/gtkmm2ext/wscript6
-rw-r--r--libs/libltc/wscript34
-rw-r--r--libs/midi++2/ipmidi_port.cc3
-rw-r--r--libs/midi++2/midi++/ipmidi_port.h2
-rw-r--r--libs/midi++2/midi++/libmidi_visibility.h37
-rw-r--r--libs/midi++2/midi++/midnam_patch.h66
-rw-r--r--libs/midi++2/midi++/mmc.h1
-rw-r--r--libs/midi++2/midi++/port.h4
-rw-r--r--libs/midi++2/midi++/types.h5
-rw-r--r--libs/midi++2/midnam_patch.cc154
-rw-r--r--libs/midi++2/mmc.cc8
-rw-r--r--libs/midi++2/port.cc3
-rw-r--r--libs/midi++2/test/MidnamTest.cpp11
-rw-r--r--libs/midi++2/wscript10
-rw-r--r--libs/panners/1in2out/panner_1in2out.cc8
-rw-r--r--libs/panners/1in2out/wscript6
-rw-r--r--libs/panners/2in2out/panner_2in2out.cc24
-rw-r--r--libs/panners/2in2out/wscript6
-rw-r--r--libs/panners/stereobalance/panner_balance.cc333
-rw-r--r--libs/panners/stereobalance/panner_balance.h83
-rw-r--r--libs/panners/stereobalance/wscript35
-rw-r--r--libs/panners/vbap/vbap.cc126
-rw-r--r--libs/panners/vbap/vbap.h1
-rw-r--r--libs/panners/vbap/vbap_speakers.cc242
-rw-r--r--libs/panners/vbap/vbap_speakers.h10
-rw-r--r--libs/panners/vbap/wscript6
-rw-r--r--libs/panners/wscript2
-rw-r--r--libs/pbd/fpu.cc9
-rw-r--r--libs/pbd/openuri.cc2
-rw-r--r--libs/pbd/pathexpand.cc52
-rw-r--r--libs/pbd/pbd/abstract_ui.h4
-rw-r--r--libs/pbd/pbd/libpbd_visibility.h35
-rw-r--r--libs/pbd/pbd/search_path.h6
-rw-r--r--libs/pbd/pbd/stacktrace.h3
-rw-r--r--libs/pbd/semutils.cc2
-rw-r--r--libs/pbd/stacktrace.cc2
-rw-r--r--libs/pbd/wscript6
-rw-r--r--libs/plugins/reasonablesynth.lv2/lv2.c218
-rw-r--r--libs/plugins/reasonablesynth.lv2/manifest.ttl.in7
-rw-r--r--libs/plugins/reasonablesynth.lv2/reasonablesynth.ttl.in50
-rw-r--r--libs/plugins/reasonablesynth.lv2/rsynth.c545
-rw-r--r--libs/plugins/reasonablesynth.lv2/wscript47
-rw-r--r--libs/qm-dsp/wscript1
-rw-r--r--libs/rubberband/COPYING280
-rw-r--r--libs/rubberband/Makefile.in189
-rw-r--r--libs/rubberband/README158
-rw-r--r--libs/rubberband/configure.ac38
-rw-r--r--libs/rubberband/misc/Makefile.osx144
-rwxr-xr-xlibs/rubberband/repopulate28
-rw-r--r--libs/rubberband/rubberband.pc.in10
-rw-r--r--libs/rubberband/rubberband/RubberBandStretcher.h563
-rw-r--r--libs/rubberband/rubberband/TimeStretcher.h58
-rw-r--r--libs/rubberband/rubberband/msvc_rubberband.h88
-rw-r--r--libs/rubberband/rubberband/rubberband-c.h121
-rw-r--r--libs/rubberband/src/AudioCurve.cpp44
-rw-r--r--libs/rubberband/src/AudioCurve.h45
-rw-r--r--libs/rubberband/src/ConstantAudioCurve.cpp53
-rw-r--r--libs/rubberband/src/ConstantAudioCurve.h38
-rw-r--r--libs/rubberband/src/FFT.cpp1369
-rw-r--r--libs/rubberband/src/FFT.h80
-rw-r--r--libs/rubberband/src/HighFrequencyAudioCurve.cpp69
-rw-r--r--libs/rubberband/src/HighFrequencyAudioCurve.h40
-rw-r--r--libs/rubberband/src/PercussiveAudioCurve.cpp112
-rw-r--r--libs/rubberband/src/PercussiveAudioCurve.h42
-rw-r--r--libs/rubberband/src/Profiler.cpp176
-rw-r--r--libs/rubberband/src/Profiler.h91
-rw-r--r--libs/rubberband/src/Resampler.cpp261
-rw-r--r--libs/rubberband/src/Resampler.h57
-rw-r--r--libs/rubberband/src/RingBuffer.h670
-rw-r--r--libs/rubberband/src/RubberBandStretcher.cpp200
-rw-r--r--libs/rubberband/src/Scavenger.h202
-rw-r--r--libs/rubberband/src/SilentAudioCurve.cpp69
-rw-r--r--libs/rubberband/src/SilentAudioCurve.h38
-rw-r--r--libs/rubberband/src/SpectralDifferenceAudioCurve.cpp83
-rw-r--r--libs/rubberband/src/SpectralDifferenceAudioCurve.h43
-rw-r--r--libs/rubberband/src/StretchCalculator.cpp802
-rw-r--r--libs/rubberband/src/StretchCalculator.h98
-rw-r--r--libs/rubberband/src/StretcherChannelData.cpp305
-rw-r--r--libs/rubberband/src/StretcherChannelData.h135
-rw-r--r--libs/rubberband/src/StretcherImpl.cpp1147
-rw-r--r--libs/rubberband/src/StretcherImpl.h202
-rw-r--r--libs/rubberband/src/StretcherProcess.cpp1177
-rw-r--r--libs/rubberband/src/Thread.cpp583
-rw-r--r--libs/rubberband/src/Thread.h142
-rw-r--r--libs/rubberband/src/Window.cpp17
-rw-r--r--libs/rubberband/src/Window.h183
-rw-r--r--libs/rubberband/src/bsd-3rdparty/float_cast/float_cast.h76
-rw-r--r--libs/rubberband/src/bsd-3rdparty/getopt/getopt.c112
-rw-r--r--libs/rubberband/src/bsd-3rdparty/getopt/getopt.h110
-rw-r--r--libs/rubberband/src/bsd-3rdparty/getopt/getopt_long.c547
-rw-r--r--libs/rubberband/src/bsd-3rdparty/getopt/unistd.h0
-rw-r--r--libs/rubberband/src/ladspa/RubberBandPitchShifter.cpp554
-rw-r--r--libs/rubberband/src/ladspa/RubberBandPitchShifter.h107
-rw-r--r--libs/rubberband/src/ladspa/ladspa-rubberband.cat2
-rw-r--r--libs/rubberband/src/ladspa/libmain.cpp26
-rw-r--r--libs/rubberband/src/main.cpp535
-rw-r--r--libs/rubberband/src/rubberband-c.cpp146
-rw-r--r--libs/rubberband/src/sysutils.cpp158
-rw-r--r--libs/rubberband/src/sysutils.h62
-rw-r--r--libs/rubberband/src/vamp/RubberBandVampPlugin.cpp648
-rw-r--r--libs/rubberband/src/vamp/RubberBandVampPlugin.h56
-rw-r--r--libs/rubberband/src/vamp/libmain.cpp32
-rw-r--r--libs/rubberband/src/vamp/vamp-rubberband.cat1
-rw-r--r--libs/rubberband/wscript49
-rw-r--r--libs/surfaces/control_protocol/control_protocol.cc21
-rw-r--r--libs/surfaces/control_protocol/control_protocol/control_protocol.h19
-rw-r--r--libs/surfaces/control_protocol/control_protocol/visibility.h35
-rw-r--r--libs/surfaces/control_protocol/wscript9
-rw-r--r--libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc4
-rw-r--r--libs/surfaces/frontier/wscript2
-rw-r--r--libs/surfaces/generic_midi/generic_midi_control_protocol.cc21
-rw-r--r--libs/surfaces/generic_midi/wscript2
-rw-r--r--libs/surfaces/mackie/gui.cc5
-rw-r--r--libs/surfaces/mackie/interface.cc2
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc137
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h9
-rw-r--r--libs/surfaces/mackie/strip.cc12
-rw-r--r--libs/surfaces/mackie/surface.cc39
-rw-r--r--libs/surfaces/mackie/surface.h7
-rw-r--r--libs/surfaces/mackie/surface_port.cc59
-rw-r--r--libs/surfaces/mackie/surface_port.h13
-rw-r--r--libs/surfaces/mackie/wscript5
-rw-r--r--libs/surfaces/osc/interface.cc2
-rw-r--r--libs/surfaces/osc/osc.cc61
-rw-r--r--libs/surfaces/osc/wscript2
-rw-r--r--libs/surfaces/tranzport/state.cc4
-rw-r--r--libs/surfaces/tranzport/wscript2
-rw-r--r--libs/surfaces/wiimote/interface.cc2
-rw-r--r--libs/surfaces/wiimote/wiimote.cc13
-rw-r--r--libs/surfaces/wiimote/wscript2
-rw-r--r--libs/taglib/AUTHORS11
-rw-r--r--libs/taglib/CMakeLists.txt56
-rw-r--r--libs/taglib/COPYING.LGPL481
-rw-r--r--libs/taglib/COPYING.MPL470
-rw-r--r--libs/taglib/ConfigureChecks.cmake28
-rw-r--r--libs/taglib/INSTALL167
-rw-r--r--libs/taglib/Makefile.am54
-rw-r--r--libs/taglib/Makefile.cvs14
-rw-r--r--libs/taglib/Makefile.in862
-rw-r--r--libs/taglib/acinclude.m411888
-rw-r--r--libs/taglib/aclocal.m4875
-rw-r--r--libs/taglib/admin/Doxyfile.am102
-rwxr-xr-xlibs/taglib/admin/Doxyfile.global192
-rw-r--r--libs/taglib/admin/Makefile.common37
-rw-r--r--libs/taglib/admin/acinclude.m4.in5997
-rw-r--r--libs/taglib/admin/am_edit2445
-rw-r--r--libs/taglib/admin/bcheck.pl157
-rwxr-xr-xlibs/taglib/admin/compile142
-rw-r--r--libs/taglib/admin/conf.change.pl191
-rwxr-xr-xlibs/taglib/admin/config.guess1464
-rw-r--r--libs/taglib/admin/config.pl238
-rwxr-xr-xlibs/taglib/admin/config.sub1575
-rw-r--r--libs/taglib/admin/configure.in.bot.end45
-rw-r--r--libs/taglib/admin/configure.in.min57
-rw-r--r--libs/taglib/admin/cvs.sh661
-rwxr-xr-xlibs/taglib/admin/debianrules43
-rwxr-xr-xlibs/taglib/admin/depcomp530
-rw-r--r--libs/taglib/admin/deps.am19
-rwxr-xr-xlibs/taglib/admin/detect-autoconf.pl257
-rw-r--r--libs/taglib/admin/doxygen.sh883
-rwxr-xr-xlibs/taglib/admin/install-sh401
-rw-r--r--libs/taglib/admin/libtool.m4.in5891
-rw-r--r--libs/taglib/admin/ltmain.sh6389
-rwxr-xr-xlibs/taglib/admin/missing353
-rwxr-xr-xlibs/taglib/admin/mkinstalldirs158
-rwxr-xr-xlibs/taglib/admin/nmcheck371
-rw-r--r--libs/taglib/admin/oldinclude.m4.in192
-rw-r--r--libs/taglib/admin/pkg.m4.in57
-rwxr-xr-xlibs/taglib/admin/ylwrap223
-rw-r--r--libs/taglib/bindings/CMakeLists.txt1
-rw-r--r--libs/taglib/bindings/Makefile.am1
-rw-r--r--libs/taglib/bindings/Makefile.in606
-rw-r--r--libs/taglib/bindings/README6
-rw-r--r--libs/taglib/bindings/c/CMakeLists.txt59
-rw-r--r--libs/taglib/bindings/c/Makefile.am26
-rw-r--r--libs/taglib/bindings/c/Makefile.in668
-rw-r--r--libs/taglib/bindings/c/configure.in.in1
-rw-r--r--libs/taglib/bindings/c/tag_c.cpp277
-rw-r--r--libs/taglib/bindings/c/tag_c.h288
-rw-r--r--libs/taglib/bindings/c/taglib_c.pc.cmake12
-rw-r--r--libs/taglib/bindings/c/taglib_c.pc.in11
-rw-r--r--libs/taglib/cmake/modules/FindCppUnit.cmake28
-rw-r--r--libs/taglib/config-taglib.h.cmake9
-rw-r--r--libs/taglib/config.h.in64
-rwxr-xr-xlibs/taglib/configure24271
-rw-r--r--libs/taglib/configure.files3
-rw-r--r--libs/taglib/configure.in220
-rw-r--r--libs/taglib/configure.in.bot8
-rw-r--r--libs/taglib/configure.in.in133
-rw-r--r--libs/taglib/doc/README1
-rw-r--r--libs/taglib/doc/api-footer.html4
-rw-r--r--libs/taglib/doc/api-header.html41
-rw-r--r--libs/taglib/doc/taglib-api.css395
-rw-r--r--libs/taglib/doc/taglib.doxygen208
-rw-r--r--libs/taglib/doc/taglib.pngbin3451 -> 0 bytes
-rw-r--r--libs/taglib/examples/CMakeLists.txt78
-rw-r--r--libs/taglib/examples/Makefile.am18
-rw-r--r--libs/taglib/examples/Makefile.in677
-rw-r--r--libs/taglib/examples/framelist.cpp106
-rw-r--r--libs/taglib/examples/strip-id3v1.cpp40
-rw-r--r--libs/taglib/examples/tagreader.cpp77
-rw-r--r--libs/taglib/examples/tagreader_c.c77
-rw-r--r--libs/taglib/examples/tagwriter.cpp139
-rw-r--r--libs/taglib/stamp-h.in0
-rw-r--r--libs/taglib/subdirs4
-rw-r--r--libs/taglib/taglib-config.cmake55
-rw-r--r--libs/taglib/taglib-config.in55
-rw-r--r--libs/taglib/taglib.pc.cmake11
-rw-r--r--libs/taglib/taglib.pc.in11
-rw-r--r--libs/taglib/taglib/CMakeLists.txt160
-rw-r--r--libs/taglib/taglib/Makefile.am26
-rw-r--r--libs/taglib/taglib/Makefile.in794
-rw-r--r--libs/taglib/taglib/ape/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/ape/Makefile.am11
-rw-r--r--libs/taglib/taglib/ape/Makefile.in623
-rw-r--r--libs/taglib/taglib/ape/ape-tag-format.txt170
-rw-r--r--libs/taglib/taglib/ape/apefooter.cpp236
-rw-r--r--libs/taglib/taglib/ape/apefooter.h173
-rw-r--r--libs/taglib/taglib/ape/apeitem.cpp229
-rw-r--r--libs/taglib/taglib/ape/apeitem.h204
-rw-r--r--libs/taglib/taglib/ape/apetag.cpp266
-rw-r--r--libs/taglib/taglib/ape/apetag.h162
-rw-r--r--libs/taglib/taglib/audioproperties.cpp51
-rw-r--r--libs/taglib/taglib/audioproperties.h110
-rw-r--r--libs/taglib/taglib/fileref.cpp203
-rw-r--r--libs/taglib/taglib/fileref.h263
-rw-r--r--libs/taglib/taglib/flac/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/flac/Makefile.am14
-rw-r--r--libs/taglib/taglib/flac/Makefile.in625
-rw-r--r--libs/taglib/taglib/flac/flacfile.cpp431
-rw-r--r--libs/taglib/taglib/flac/flacfile.h201
-rw-r--r--libs/taglib/taglib/flac/flacproperties.cpp150
-rw-r--r--libs/taglib/taglib/flac/flacproperties.h92
-rw-r--r--libs/taglib/taglib/mpc/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/mpc/Makefile.am14
-rw-r--r--libs/taglib/taglib/mpc/Makefile.in625
-rw-r--r--libs/taglib/taglib/mpc/mpcfile.cpp325
-rw-r--r--libs/taglib/taglib/mpc/mpcfile.h175
-rw-r--r--libs/taglib/taglib/mpc/mpcproperties.cpp140
-rw-r--r--libs/taglib/taglib/mpc/mpcproperties.h85
-rw-r--r--libs/taglib/taglib/mpeg/CMakeLists.txt4
-rw-r--r--libs/taglib/taglib/mpeg/Makefile.am17
-rw-r--r--libs/taglib/taglib/mpeg/Makefile.in753
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/Makefile.am12
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/Makefile.in623
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/id3v1genres.cpp219
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/id3v1genres.h66
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/id3v1tag.cpp249
-rw-r--r--libs/taglib/taglib/mpeg/id3v1/id3v1tag.h181
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/CMakeLists.txt4
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/Makefile.am26
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/Makefile.in766
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt11
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am31
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in656
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp170
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h220
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp178
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h168
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp176
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h174
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp236
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h274
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp271
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h258
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp118
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h113
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp84
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h79
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp162
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h157
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp192
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h172
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2.2.0.txt1660
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2.3.0.txt2022
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-frames.txt1734
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-structure.txt733
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.cpp71
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.h93
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2footer.cpp60
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2footer.h82
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2frame.cpp551
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2frame.h414
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.cpp409
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.h167
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2header.cpp243
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2header.h175
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.cpp63
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.h70
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2tag.cpp475
-rw-r--r--libs/taglib/taglib/mpeg/id3v2/id3v2tag.h300
-rw-r--r--libs/taglib/taglib/mpeg/mpegfile.cpp593
-rw-r--r--libs/taglib/taglib/mpeg/mpegfile.h277
-rw-r--r--libs/taglib/taglib/mpeg/mpegheader.cpp276
-rw-r--r--libs/taglib/taglib/mpeg/mpegheader.h166
-rw-r--r--libs/taglib/taglib/mpeg/mpegproperties.cpp252
-rw-r--r--libs/taglib/taglib/mpeg/mpegproperties.h118
-rw-r--r--libs/taglib/taglib/mpeg/xingheader.cpp115
-rw-r--r--libs/taglib/taglib/mpeg/xingheader.h100
-rw-r--r--libs/taglib/taglib/ogg/CMakeLists.txt6
-rw-r--r--libs/taglib/taglib/ogg/Makefile.am21
-rw-r--r--libs/taglib/taglib/ogg/Makefile.in757
-rw-r--r--libs/taglib/taglib/ogg/flac/CMakeLists.txt2
-rw-r--r--libs/taglib/taglib/ogg/flac/Makefile.am13
-rw-r--r--libs/taglib/taglib/ogg/flac/Makefile.in604
-rw-r--r--libs/taglib/taglib/ogg/flac/oggflacfile.cpp270
-rw-r--r--libs/taglib/taglib/ogg/flac/oggflacfile.h118
-rw-r--r--libs/taglib/taglib/ogg/oggfile.cpp336
-rw-r--r--libs/taglib/taglib/ogg/oggfile.h112
-rw-r--r--libs/taglib/taglib/ogg/oggpage.cpp258
-rw-r--r--libs/taglib/taglib/ogg/oggpage.h203
-rw-r--r--libs/taglib/taglib/ogg/oggpageheader.cpp323
-rw-r--r--libs/taglib/taglib/ogg/oggpageheader.h232
-rw-r--r--libs/taglib/taglib/ogg/speex/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/ogg/speex/Makefile.am12
-rw-r--r--libs/taglib/taglib/ogg/speex/Makefile.in623
-rw-r--r--libs/taglib/taglib/ogg/speex/speexfile.cpp112
-rw-r--r--libs/taglib/taglib/ogg/speex/speexfile.h99
-rw-r--r--libs/taglib/taglib/ogg/speex/speexproperties.cpp172
-rw-r--r--libs/taglib/taglib/ogg/speex/speexproperties.h89
-rw-r--r--libs/taglib/taglib/ogg/vorbis/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/ogg/vorbis/Makefile.am12
-rw-r--r--libs/taglib/taglib/ogg/vorbis/Makefile.in623
-rw-r--r--libs/taglib/taglib/ogg/vorbis/vorbisfile.cpp117
-rw-r--r--libs/taglib/taglib/ogg/vorbis/vorbisfile.h118
-rw-r--r--libs/taglib/taglib/ogg/vorbis/vorbisproperties.cpp185
-rw-r--r--libs/taglib/taglib/ogg/vorbis/vorbisproperties.h125
-rw-r--r--libs/taglib/taglib/ogg/xiphcomment.cpp313
-rw-r--r--libs/taglib/taglib/ogg/xiphcomment.h202
-rw-r--r--libs/taglib/taglib/tag.cpp83
-rw-r--r--libs/taglib/taglib/tag.h173
-rw-r--r--libs/taglib/taglib/taglib.pro218
-rw-r--r--libs/taglib/taglib/taglib_export.h39
-rw-r--r--libs/taglib/taglib/tagunion.cpp185
-rw-r--r--libs/taglib/taglib/tagunion.h95
-rw-r--r--libs/taglib/taglib/toolkit/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/toolkit/Makefile.am16
-rw-r--r--libs/taglib/taglib/toolkit/Makefile.in635
-rw-r--r--libs/taglib/taglib/toolkit/taglib.h177
-rw-r--r--libs/taglib/taglib/toolkit/tbytevector.cpp677
-rw-r--r--libs/taglib/taglib/toolkit/tbytevector.h409
-rw-r--r--libs/taglib/taglib/toolkit/tbytevectorlist.cpp102
-rw-r--r--libs/taglib/taglib/toolkit/tbytevectorlist.h91
-rw-r--r--libs/taglib/taglib/toolkit/tdebug.cpp55
-rw-r--r--libs/taglib/taglib/toolkit/tdebug.h71
-rw-r--r--libs/taglib/taglib/toolkit/tfile.cpp565
-rw-r--r--libs/taglib/taglib/toolkit/tfile.h271
-rw-r--r--libs/taglib/taglib/toolkit/tlist.h252
-rw-r--r--libs/taglib/taglib/toolkit/tlist.tcc316
-rw-r--r--libs/taglib/taglib/toolkit/tmap.h200
-rw-r--r--libs/taglib/taglib/toolkit/tmap.tcc196
-rw-r--r--libs/taglib/taglib/toolkit/tstring.cpp788
-rw-r--r--libs/taglib/taglib/toolkit/tstring.h456
-rw-r--r--libs/taglib/taglib/toolkit/tstringlist.cpp123
-rw-r--r--libs/taglib/taglib/toolkit/tstringlist.h115
-rw-r--r--libs/taglib/taglib/toolkit/unicode.cpp303
-rw-r--r--libs/taglib/taglib/toolkit/unicode.h149
-rw-r--r--libs/taglib/taglib/trueaudio/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/trueaudio/Makefile.am14
-rw-r--r--libs/taglib/taglib/trueaudio/Makefile.in625
-rw-r--r--libs/taglib/taglib/trueaudio/trueaudiofile.cpp274
-rw-r--r--libs/taglib/taglib/trueaudio/trueaudiofile.h180
-rw-r--r--libs/taglib/taglib/trueaudio/trueaudioproperties.cpp136
-rw-r--r--libs/taglib/taglib/trueaudio/trueaudioproperties.h93
-rw-r--r--libs/taglib/taglib/wavpack/CMakeLists.txt1
-rw-r--r--libs/taglib/taglib/wavpack/Makefile.am15
-rw-r--r--libs/taglib/taglib/wavpack/Makefile.in626
-rw-r--r--libs/taglib/taglib/wavpack/wavpackfile.cpp270
-rw-r--r--libs/taglib/taglib/wavpack/wavpackfile.h164
-rw-r--r--libs/taglib/taglib/wavpack/wavpackproperties.cpp143
-rw-r--r--libs/taglib/taglib/wavpack/wavpackproperties.h94
-rw-r--r--libs/taglib/tests/CMakeLists.txt35
-rw-r--r--libs/taglib/tests/Makefile.am27
-rw-r--r--libs/taglib/tests/Makefile.in699
-rw-r--r--libs/taglib/tests/data/005411.id3bin38402 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/broken-tenc.id3bin400 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/click.mpcbin1588 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/empty.oggbin4328 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/empty.spxbin24301 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/empty.ttabin79538 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/mpeg2.mp3bin16384 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/no-tags.flacbin4692 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/unsynch.id3bin320 -> 0 bytes
-rw-r--r--libs/taglib/tests/data/xing.mp3bin8208 -> 0 bytes
-rw-r--r--libs/taglib/tests/main.cpp46
-rw-r--r--libs/taglib/tests/test_bytevector.cpp178
-rw-r--r--libs/taglib/tests/test_fileref.cpp101
-rw-r--r--libs/taglib/tests/test_id3v1.cpp25
-rw-r--r--libs/taglib/tests/test_id3v2.cpp265
-rw-r--r--libs/taglib/tests/test_list.cpp58
-rw-r--r--libs/taglib/tests/test_map.cpp27
-rw-r--r--libs/taglib/tests/test_mpeg.cpp25
-rw-r--r--libs/taglib/tests/test_string.cpp135
-rw-r--r--libs/taglib/tests/test_synchdata.cpp88
-rw-r--r--libs/taglib/tests/test_trueaudio.cpp26
-rw-r--r--libs/taglib/tests/utils.h25
-rw-r--r--libs/taglib/wscript75
-rw-r--r--libs/timecode/src/bbt_time.cc4
-rw-r--r--libs/timecode/src/time.cc18
-rw-r--r--libs/timecode/timecode/bbt_time.h4
-rw-r--r--libs/timecode/timecode/time.h45
-rw-r--r--libs/timecode/timecode/visibility.h40
-rw-r--r--libs/timecode/wscript31
-rw-r--r--libs/vamp-plugins/AmplitudeFollower.h2
-rw-r--r--libs/vamp-plugins/Onset.cpp125
-rw-r--r--libs/vamp-plugins/Onset.h28
-rw-r--r--libs/vamp-plugins/OnsetDetect.h2
-rw-r--r--libs/vamp-plugins/PercussionOnsetDetector.h2
-rw-r--r--libs/vamp-plugins/SpectralCentroid.h2
-rw-r--r--libs/vamp-plugins/ZeroCrossing.h2
-rw-r--r--libs/vamp-plugins/plugins.cpp4
-rw-r--r--libs/vamp-plugins/wscript9
-rw-r--r--libs/vamp-sdk/COPYING26
-rw-r--r--libs/vamp-sdk/README240
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp721
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp270
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp456
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp673
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp707
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginSummarisingAdapter.cpp952
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp204
-rw-r--r--libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp39
-rw-r--r--libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp919
-rw-r--r--libs/vamp-sdk/src/vamp-sdk/RealTime.cpp252
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/Plugin.h47
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginBase.h47
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h194
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h149
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h123
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h198
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginLoader.h243
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h197
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h135
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/RealTime.h46
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/hostguard.h69
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h53
-rw-r--r--libs/vamp-sdk/vamp-sdk/Plugin.h446
-rw-r--r--libs/vamp-sdk/vamp-sdk/PluginAdapter.h121
-rw-r--r--libs/vamp-sdk/vamp-sdk/PluginBase.h262
-rw-r--r--libs/vamp-sdk/vamp-sdk/RealTime.h167
-rw-r--r--libs/vamp-sdk/vamp-sdk/plugguard.h98
-rw-r--r--libs/vamp-sdk/vamp-sdk/vamp-sdk.h46
-rw-r--r--libs/vamp-sdk/vamp/vamp.h388
-rw-r--r--libs/vamp-sdk/vamp/vamp.pc.in10
-rw-r--r--libs/vamp-sdk/wscript67
652 files changed, 8874 insertions, 148153 deletions
diff --git a/libs/appleutility/wscript b/libs/appleutility/wscript
index e9968f80e8..2c54b28d1f 100644
--- a/libs/appleutility/wscript
+++ b/libs/appleutility/wscript
@@ -31,6 +31,9 @@ def build(bld):
obj = bld(features = 'cxx cxxshlib')
obj.uselib = 'AUDIOUNITS OSX'
obj.source = libappleutility_sources
+ # apple did not write this library with full symbol export control
+ # so we need to override any visibility default.
+ autowaf.ensure_visible_symbols (obj, True)
obj.export_includes = ['.']
obj.includes = ['.']
obj.name = 'libappleutility'
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h
index f21d62c6b7..9b1351a3fc 100644
--- a/libs/ardour/ardour/ardour.h
+++ b/libs/ardour/ardour/ardour.h
@@ -67,7 +67,7 @@ namespace ARDOUR {
LIBARDOUR_API void make_property_quarks ();
extern LIBARDOUR_API PBD::PropertyChange bounds_change;
-
+
extern LIBARDOUR_API const char* const ardour_config_info;
LIBARDOUR_API void find_bindings_files (std::map<std::string,std::string>&);
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h
index 175fc5bbf3..cdfd4971c8 100644
--- a/libs/ardour/ardour/audio_backend.h
+++ b/libs/ardour/ardour/audio_backend.h
@@ -32,14 +32,13 @@
#include "ardour/types.h"
#include "ardour/audioengine.h"
#include "ardour/port_engine.h"
-#include "ardour/visibility.h"
#ifdef ARDOURBACKEND_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them)
- #define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_EXPORT
+ #define ARDOURBACKEND_API LIBARDOUR_DLL_EXPORT
#else
- #define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_IMPORT
+ #define ARDOURBACKEND_API LIBARDOUR_DLL_IMPORT
#endif
-#define ARDOURBACKEND_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
+#define ARDOURBACKEND_LOCAL LIBARDOUR_DLL_LOCAL
namespace ARDOUR {
@@ -118,6 +117,17 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
* at any time.
*/
virtual std::vector<float> available_sample_rates (const std::string& device) const = 0;
+
+ /* Returns the default sample rate that will be shown to the user when
+ * configuration options are first presented. If the derived class
+ * needs or wants to override this, it can. It also MUST override this
+ * if there is any chance that an SR of 44.1kHz is not in the list
+ * returned by available_sample_rates()
+ */
+ virtual float default_sample_rate () const {
+ return 44100.0;
+ }
+
/** Returns a collection of uint32 identifying buffer sizes that are
* potentially usable with the hardware identified by @param device.
* Any of these values may be supplied in other calls to this backend
@@ -127,6 +137,16 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
*/
virtual std::vector<uint32_t> available_buffer_sizes (const std::string& device) const = 0;
+ /* Returns the default buffer size that will be shown to the user when
+ * configuration options are first presented. If the derived class
+ * needs or wants to override this, it can. It also MUST override this
+ * if there is any chance that a buffer size of 1024 is not in the list
+ * returned by available_buffer_sizes()
+ */
+ virtual uint32_t default_buffer_size () const {
+ return 1024;
+ }
+
/** Returns the maximum number of input channels that are potentially
* usable with the hardware identified by @param device. Any number from 1
* to the value returned may be supplied in other calls to this backend as
@@ -262,17 +282,7 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
virtual std::string midi_option () const = 0;
/* State Control */
-
- /* non-virtual method to avoid possible overrides of default
- * parameters. See Scott Meyers or other books on C++ to
- * understand this pattern, or possibly just this:
- *
- * http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
- */
- int start (bool for_latency_measurement=false) {
- return _start (for_latency_measurement);
- }
-
+
/** Start using the device named in the most recent call
* to set_device(), with the parameters set by various
* the most recent calls to set_sample_rate() etc. etc.
@@ -288,8 +298,24 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
* any existing systemic latency settings.
*
* Return zero if successful, negative values otherwise.
- */
- virtual int _start (bool for_latency_measurement) = 0;
+ *
+ *
+ *
+ *
+ * Why is this non-virtual but ::_start() is virtual ?
+ * Virtual methods with default parameters create possible ambiguity
+ * because a derived class may implement the same method with a different
+ * type or value of default parameter.
+ *
+ * So we make this non-virtual method to avoid possible overrides of
+ * default parameters. See Scott Meyers or other books on C++ to understand
+ * this pattern, or possibly just this:
+ *
+ * http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
+ */
+ int start (bool for_latency_measurement=false) {
+ return _start (for_latency_measurement);
+ }
/** Stop using the device currently in use.
*
@@ -307,20 +333,6 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
*/
virtual int stop () = 0;
- /** Temporarily cease using the device named in the most recent call to set_parameters().
- *
- * If the function is successfully called, no subsequent calls to the
- * process_callback() of @param engine will be made after the function
- * returns, until start() is called again.
- *
- * The backend will retain its existing parameter configuration after a successful
- * return, and does NOT require any calls to set hardware parameters before it can be
- * start()-ed again.
- *
- * Return zero if successful, 1 if the device is not in use, negative values on error
- */
- virtual int pause () = 0;
-
/** While remaining connected to the device, and without changing its
* configuration, start (or stop) calling the process_callback() of @param engine
* without waiting for the device. Once process_callback() has returned, it
@@ -349,7 +361,7 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
* Implementations can feel free to smooth the values returned over
* time (e.g. high pass filtering, or its equivalent).
*/
- virtual float cpu_load() const = 0;
+ virtual float dsp_load() const = 0;
/* Transport Control (JACK is the only audio API that currently offers
the concept of shared transport control)
@@ -458,8 +470,25 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
virtual void update_latencies () = 0;
+ /** Set @param speed and @param position to the current speed and position
+ * indicated by some transport sync signal. Return whether the current
+ * transport state is pending, or finalized.
+ *
+ * Derived classes only need implement this if they provide some way to
+ * sync to a transport sync signal (e.g. Sony 9 Pin) that is not
+ * handled by Ardour itself (LTC and MTC are both handled by Ardour).
+ * The canonical example is JACK Transport.
+ */
+ virtual bool speed_and_position (double& speed, framepos_t& position) {
+ speed = 0.0;
+ position = 0;
+ return false;
+ }
+
protected:
AudioEngine& engine;
+
+ virtual int _start (bool for_latency_measurement) = 0;
};
struct LIBARDOUR_API AudioBackendInfo {
diff --git a/libs/ardour/ardour/audio_buffer.h b/libs/ardour/ardour/audio_buffer.h
index 58157a7919..a32e679b69 100644
--- a/libs/ardour/ardour/audio_buffer.h
+++ b/libs/ardour/ardour/audio_buffer.h
@@ -33,17 +33,7 @@ public:
AudioBuffer(size_t capacity);
~AudioBuffer();
- void silence (framecnt_t len, framecnt_t offset = 0) {
- if (!_silent) {
- assert(_capacity > 0);
- assert(offset + len <= _capacity);
- memset(_data + offset, 0, sizeof (Sample) * len);
- if (len == _capacity) {
- _silent = true;
- }
- }
- _written = true;
- }
+ void silence (framecnt_t len, framecnt_t offset = 0);
/** Read @a len frames @a src starting at @a src_offset into self starting at @ dst_offset*/
void read_from (const Sample* src, framecnt_t len, framecnt_t dst_offset = 0, framecnt_t src_offset = 0) {
@@ -204,10 +194,11 @@ public:
Sample* data (framecnt_t offset = 0) {
assert(offset <= _capacity);
+ _silent = false;
return _data + offset;
}
- bool check_silence (pframes_t, pframes_t&) const;
+ bool check_silence (pframes_t, bool, pframes_t&) const;
void prepare () { _written = false; _silent = false; }
bool written() const { return _written; }
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index e769b9eec1..75954e6ca9 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -86,9 +86,8 @@ public:
int start (bool for_latency_measurement=false);
int stop (bool for_latency_measurement=false);
- int pause ();
int freewheel (bool start_stop);
- float get_cpu_load() const ;
+ float get_dsp_load() const ;
void transport_start ();
void transport_stop ();
TransportState transport_state ();
diff --git a/libs/ardour/ardour/audiofile_tagger.h b/libs/ardour/ardour/audiofile_tagger.h
index 0c551ecbc9..88789f9036 100644
--- a/libs/ardour/ardour/audiofile_tagger.h
+++ b/libs/ardour/ardour/audiofile_tagger.h
@@ -23,9 +23,9 @@
#include <string>
-#include "taglib/tag.h"
-#include "taglib/toolkit/taglib.h"
-#include "taglib/ogg/xiphcomment.h"
+#include <taglib/tag.h>
+#include <taglib/taglib.h>
+#include <taglib/xiphcomment.h>
#include "ardour/libardour_visibility.h"
diff --git a/libs/ardour/ardour/auditioner.h b/libs/ardour/ardour/auditioner.h
index 0b04ab711d..26e395f93e 100644
--- a/libs/ardour/ardour/auditioner.h
+++ b/libs/ardour/ardour/auditioner.h
@@ -40,9 +40,13 @@ class LIBARDOUR_API Auditioner : public AudioTrack
~Auditioner ();
int init ();
+ int connect ();
void audition_region (boost::shared_ptr<Region>);
+ void seek_to_frame (frameoffset_t pos) { if (_seek_frame < 0 && !_seeking) { _seek_frame = pos; }}
+ void seek_to_percent (float const pos) { if (_seek_frame < 0 && !_seeking) { _seek_frame = floorf(length * pos / 100.0); }}
+
ARDOUR::AudioPlaylist& prepare_playlist ();
int play_audition (framecnt_t nframes);
@@ -58,12 +62,19 @@ class LIBARDOUR_API Auditioner : public AudioTrack
virtual ChanCount input_streams () const;
+ frameoffset_t seek_frame() const { return _seeking ? _seek_frame : -1;}
+ void seek_response(frameoffset_t pos) { _seek_complete = true; if (_seeking) { current_frame = pos; _seek_complete = true;} }
+ PBD::Signal2<void, ARDOUR::framecnt_t, ARDOUR::framecnt_t> AuditionProgress;
+
private:
boost::shared_ptr<AudioRegion> the_region;
framepos_t current_frame;
mutable gint _auditioning;
Glib::Threads::Mutex lock;
framecnt_t length;
+ frameoffset_t _seek_frame;
+ bool _seeking;
+ bool _seek_complete;
bool via_monitor;
void drop_ports ();
diff --git a/libs/ardour/ardour/buffer.h b/libs/ardour/ardour/buffer.h
index 479d739be0..d6f333a5a1 100644
--- a/libs/ardour/ardour/buffer.h
+++ b/libs/ardour/ardour/buffer.h
@@ -62,7 +62,6 @@ public:
DataType type() const { return _type; }
bool silent() const { return _silent; }
- void set_is_silent(bool yn) { _silent = yn; }
/** Reallocate the buffer used internally to handle at least @a size_t units of data.
*
@@ -81,8 +80,8 @@ public:
virtual void merge_from (const Buffer& src, framecnt_t len, framecnt_t dst_offset = 0, framecnt_t src_offset = 0) = 0;
protected:
- Buffer(DataType type, size_t capacity)
- : _type(type), _capacity(capacity), _size(0), _silent(true)
+ Buffer(DataType type)
+ : _type(type), _capacity(0), _size(0), _silent (true)
{}
DataType _type;
diff --git a/libs/ardour/ardour/buffer_set.h b/libs/ardour/ardour/buffer_set.h
index 617feae269..34e26d5b3a 100644
--- a/libs/ardour/ardour/buffer_set.h
+++ b/libs/ardour/ardour/buffer_set.h
@@ -87,7 +87,6 @@ public:
const ChanCount& count() const { return _count; }
ChanCount& count() { return _count; }
- void set_is_silent(bool yn);
void silence (framecnt_t nframes, framecnt_t offset);
bool is_mirror() const { return _is_mirror; }
diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h
index 98494476f9..0c8c9014f0 100644
--- a/libs/ardour/ardour/control_protocol_manager.h
+++ b/libs/ardour/ardour/control_protocol_manager.h
@@ -65,8 +65,8 @@ class LIBARDOUR_API ControlProtocolManager : public PBD::Stateful, public ARDOUR
void load_mandatory_protocols ();
void midi_connectivity_established ();
- ControlProtocol* instantiate (ControlProtocolInfo&);
- int teardown (ControlProtocolInfo&);
+ int activate (ControlProtocolInfo&);
+ int deactivate (ControlProtocolInfo&);
std::list<ControlProtocolInfo*> control_protocol_info;
@@ -89,6 +89,8 @@ class LIBARDOUR_API ControlProtocolManager : public PBD::Stateful, public ARDOUR
int control_protocol_discover (std::string path);
ControlProtocolDescriptor* get_descriptor (std::string path);
ControlProtocolInfo* cpi_by_name (std::string);
+ ControlProtocol* instantiate (ControlProtocolInfo&);
+ int teardown (ControlProtocolInfo&);
};
} // namespace
diff --git a/libs/ardour/ardour/cycle_timer.h b/libs/ardour/ardour/cycle_timer.h
index 0335375c8a..cab389ee69 100644
--- a/libs/ardour/ardour/cycle_timer.h
+++ b/libs/ardour/ardour/cycle_timer.h
@@ -49,6 +49,8 @@ class LIBARDOUR_API CycleTimer {
}
_entry = get_cycles();
}
+#else
+ (void) name;
#endif
}
diff --git a/libs/ardour/ardour/directory_names.h b/libs/ardour/ardour/directory_names.h
index 04f2d3fe74..17532e2a3a 100644
--- a/libs/ardour/ardour/directory_names.h
+++ b/libs/ardour/ardour/directory_names.h
@@ -27,6 +27,7 @@ namespace ARDOUR {
LIBARDOUR_API extern const char* const old_sound_dir_name;
LIBARDOUR_API extern const char* const sound_dir_name;
+ LIBARDOUR_API extern const char* const ladspa_dir_name;
LIBARDOUR_API extern const char* const midi_dir_name;
LIBARDOUR_API extern const char* const midi_patch_dir_name;
LIBARDOUR_API extern const char* const video_dir_name;
diff --git a/libs/ardour/ardour/iec1ppmdsp.h b/libs/ardour/ardour/iec1ppmdsp.h
index 3e0637716d..b6f1501db7 100644
--- a/libs/ardour/ardour/iec1ppmdsp.h
+++ b/libs/ardour/ardour/iec1ppmdsp.h
@@ -29,11 +29,11 @@ public:
Iec1ppmdsp (void);
~Iec1ppmdsp (void);
- void process (float *p, int n);
+ void process (float const *p, int n);
float read (void);
void reset ();
- static void init (float fsamp);
+ static void init (float fsamp);
private:
diff --git a/libs/ardour/ardour/iec2ppmdsp.h b/libs/ardour/ardour/iec2ppmdsp.h
index aa5a90cdb9..6a3852da1d 100644
--- a/libs/ardour/ardour/iec2ppmdsp.h
+++ b/libs/ardour/ardour/iec2ppmdsp.h
@@ -29,11 +29,11 @@ public:
Iec2ppmdsp (void);
~Iec2ppmdsp (void);
- void process (float *p, int n);
+ void process (float const *p, int n);
float read (void);
void reset ();
- static void init (float fsamp);
+ static void init (float fsamp);
private:
diff --git a/libs/ardour/ardour/internal_send.h b/libs/ardour/ardour/internal_send.h
index 8636a805db..9bfbc4c659 100644
--- a/libs/ardour/ardour/internal_send.h
+++ b/libs/ardour/ardour/internal_send.h
@@ -70,6 +70,7 @@ class LIBARDOUR_API InternalSend : public Send
int connect_when_legal ();
void init_gain ();
int use_target (boost::shared_ptr<Route>);
+ void target_io_changed ();
};
} // namespace ARDOUR
diff --git a/libs/ardour/ardour/kmeterdsp.h b/libs/ardour/ardour/kmeterdsp.h
index 374afff50e..7fe2b9d11b 100644
--- a/libs/ardour/ardour/kmeterdsp.h
+++ b/libs/ardour/ardour/kmeterdsp.h
@@ -29,7 +29,7 @@ public:
Kmeterdsp (void);
~Kmeterdsp (void);
- void process (float *p, int n);
+ void process (float const *p, int n);
float read ();
void reset ();
diff --git a/libs/ardour/ardour/libardour_visibility.h b/libs/ardour/ardour/libardour_visibility.h
index ed5cacf261..917307732c 100644
--- a/libs/ardour/ardour/libardour_visibility.h
+++ b/libs/ardour/ardour/libardour_visibility.h
@@ -20,37 +20,26 @@
#ifndef __libardour_libardour_visibility_h__
#define __libardour_libardour_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * ardour source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBARDOUR_DLL_IMPORT __declspec(dllimport)
#define LIBARDOUR_DLL_EXPORT __declspec(dllexport)
#define LIBARDOUR_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBARDOUR_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBARDOUR_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBARDOUR_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBARDOUR_DLL_IMPORT
- #define LIBARDOUR_DLL_EXPORT
- #define LIBARDOUR_DLL_LOCAL
- #endif
+ #define LIBARDOUR_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBARDOUR_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBARDOUR_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBARDOUR_DLL // libardour is a DLL
-#ifdef LIBARDOUR_DLL_EXPORTS // defined if we are building the libardour DLL (instead of using it)
- #define LIBARDOUR_API LIBARDOUR_DLL_EXPORT
-#else
- #define LIBARDOUR_API LIBARDOUR_DLL_IMPORT
-#endif
-#define LIBARDOUR_LOCAL LIBARDOUR_DLL_LOCAL
-#else /* static lib, not DLL */
+#ifdef LIBARDOUR_STATIC // libardour is not a DLL
#define LIBARDOUR_API
#define LIBARDOUR_LOCAL
+#else
+ #ifdef LIBARDOUR_DLL_EXPORTS // defined if we are building the libardour DLL (instead of using it)
+ #define LIBARDOUR_API LIBARDOUR_DLL_EXPORT
+ #else
+ #define LIBARDOUR_API LIBARDOUR_DLL_IMPORT
+ #endif
+ #define LIBARDOUR_LOCAL LIBARDOUR_DLL_LOCAL
#endif
#endif /* __libardour_libardour_visibility_h__ */
diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h
index bc3f29f92a..dc1c7af0e9 100644
--- a/libs/ardour/ardour/midi_model.h
+++ b/libs/ardour/ardour/midi_model.h
@@ -222,6 +222,8 @@ public:
uint8_t new_program;
int new_bank;
};
+
+ Change() : patch_id (-1) {}
};
typedef std::list<Change> ChangeList;
diff --git a/libs/ardour/ardour/midi_patch_manager.h b/libs/ardour/ardour/midi_patch_manager.h
index e9751c6956..cd898aa00f 100644
--- a/libs/ardour/ardour/midi_patch_manager.h
+++ b/libs/ardour/ardour/midi_patch_manager.h
@@ -72,7 +72,7 @@ public:
boost::shared_ptr<MIDI::Name::MasterDeviceNames> master_device = master_device_by_model(model);
if (master_device != 0 && custom_device_mode != "") {
- return master_device->channel_name_set_by_device_mode_and_channel(custom_device_mode, channel);
+ return master_device->channel_name_set_by_channel(custom_device_mode, channel);
} else {
return boost::shared_ptr<ChannelNameSet>();
}
diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h
index e99d6bf499..85a8a15e21 100644
--- a/libs/ardour/ardour/midi_ui.h
+++ b/libs/ardour/ardour/midi_ui.h
@@ -52,8 +52,6 @@ class LIBARDOUR_API MidiControlUI : public AbstractUI<MidiUIRequest>
static MidiControlUI* instance() { return _instance; }
- static BaseUI::RequestType PortChange;
-
void change_midi_ports ();
protected:
@@ -64,7 +62,6 @@ class LIBARDOUR_API MidiControlUI : public AbstractUI<MidiUIRequest>
typedef std::list<GSource*> PortSources;
PortSources port_sources;
ARDOUR::Session& _session;
- PBD::ScopedConnection rebind_connection;
bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*);
void reset_ports ();
diff --git a/libs/ardour/ardour/msvc_libardour.h b/libs/ardour/ardour/msvc_libardour.h
index 52aa65d95c..f8edcdd3cb 100644
--- a/libs/ardour/ardour/msvc_libardour.h
+++ b/libs/ardour/ardour/msvc_libardour.h
@@ -19,7 +19,7 @@
#ifndef __msvc_libardour_h__
#define __msvc_libardour_h__
-#include "ardour/visibility.h"
+#include <ardour/libardour_visibility.h>
#include <limits.h>
#ifndef _MAX_PATH
@@ -29,6 +29,8 @@
#define PATH_MAX _MAX_PATH
#endif
+#define LIBARDOUR_APICALLTYPE __cdecl
+
namespace ARDOUR {
#ifdef __cplusplus
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h
index 7dd9de6e0a..211ad0ca8e 100644
--- a/libs/ardour/ardour/panner.h
+++ b/libs/ardour/ardour/panner.h
@@ -34,14 +34,18 @@
#include "ardour/types.h"
#include "ardour/automation_control.h"
#include "ardour/automatable.h"
-#include "ardour/visibility.h"
-#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them)
- #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_EXPORT
-#else
- #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_IMPORT
-#endif
-#define ARDOURPANNER_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
+
+/* This section is for actual panners to use. They will include this file,
+ * declare ARDOURPANNER_DLL_EXPORTS during compilation, and ... voila.
+ */
+
+#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building a panner implementation
+ #define ARDOURPANNER_API LIBARDOUR_DLL_EXPORT
+ #else
+ #define ARDOURPANNER_API LIBARDOUR_DLL_IMPORT
+ #endif
+#define ARDOURPANNER_LOCAL LIBARDOUR_DLL_LOCAL
namespace ARDOUR {
@@ -96,6 +100,9 @@ public:
virtual void reset () = 0;
+ /* azimut, width or elevation updated -> recalc signal_position -> emit Changed */
+ PBD::Signal0<void> SignalPositionChanged;
+
void set_automation_state (AutoState);
AutoState automation_state() const;
void set_automation_style (AutoStyle);
@@ -183,8 +190,11 @@ protected:
extern "C" {
struct LIBARDOUR_API PanPluginDescriptor {
std::string name;
+ std::string panner_uri;
+ std::string gui_uri;
int32_t in;
int32_t out;
+ uint32_t priority;
ARDOUR::Panner* (*factory)(boost::shared_ptr<ARDOUR::Pannable>, boost::shared_ptr<ARDOUR::Speakers>);
};
}
diff --git a/libs/ardour/ardour/panner_manager.h b/libs/ardour/ardour/panner_manager.h
index 1db4a27e52..73d667424f 100644
--- a/libs/ardour/ardour/panner_manager.h
+++ b/libs/ardour/ardour/panner_manager.h
@@ -20,6 +20,8 @@
#ifndef __ardour_panner_manager_h__
#define __ardour_panner_manager_h__
+#include <map>
+#include <string>
#include <glibmm/module.h>
#include "ardour/panner.h"
@@ -27,7 +29,10 @@
namespace ARDOUR {
+typedef std::map<std::string,std::string> PannerUriMap;
+
struct LIBARDOUR_API PannerInfo {
+
PanPluginDescriptor descriptor;
Glib::Module* module;
@@ -50,7 +55,9 @@ public:
void discover_panners ();
std::list<PannerInfo*> panner_info;
- PannerInfo* select_panner (ChanCount in, ChanCount out);
+ PannerInfo* select_panner (ChanCount in, ChanCount out, std::string const uri = "");
+ PannerInfo* get_by_uri (std::string uri) const;
+ PannerUriMap get_available_panners(uint32_t const a_in, uint32_t const a_out) const;
private:
PannerManager();
diff --git a/libs/ardour/ardour/panner_shell.h b/libs/ardour/ardour/panner_shell.h
index b78573212a..f344afd54a 100644
--- a/libs/ardour/ardour/panner_shell.h
+++ b/libs/ardour/ardour/panner_shell.h
@@ -37,6 +37,7 @@
namespace ARDOUR {
class Session;
+class Route;
class Panner;
class BufferSet;
class AudioBuffer;
@@ -49,7 +50,7 @@ class Pannable;
class LIBARDOUR_API PannerShell : public SessionObject
{
public:
- PannerShell (std::string name, Session&, boost::shared_ptr<Pannable>);
+ PannerShell (std::string name, Session&, boost::shared_ptr<Pannable>, bool is_send = false);
virtual ~PannerShell ();
std::string describe_parameter (Evoral::Parameter param);
@@ -63,19 +64,43 @@ public:
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
+ PBD::Signal0<void> PannableChanged; /* Pannable changed -- l*/
PBD::Signal0<void> Changed; /* panner and/or outputs count and/or bypass state changed */
boost::shared_ptr<Panner> panner() const { return _panner; }
- boost::shared_ptr<Pannable> pannable() const { return _pannable; }
+ boost::shared_ptr<Pannable> pannable() const { return _panlinked ? _pannable_route : _pannable_internal; }
bool bypassed () const;
void set_bypassed (bool);
+ bool is_send () const { return (_is_send); }
+ bool is_linked_to_route () const { return (_is_send && _panlinked); }
+ /* this function takes the process lock: */
+ void set_linked_to_route (bool);
+
+ std::string current_panner_uri() const { return _current_panner_uri; }
+ std::string user_selected_panner_uri() const { return _user_selected_panner_uri; }
+ std::string panner_gui_uri() const { return _panner_gui_uri; }
+
+ /* this function takes the process lock: */
+ bool select_panner_by_uri (std::string const uri);
+
private:
void distribute_no_automation (BufferSet& src, BufferSet& dest, pframes_t nframes, gain_t gain_coeff);
+ bool set_user_selected_panner_uri (std::string const uri);
+
boost::shared_ptr<Panner> _panner;
- boost::shared_ptr<Pannable> _pannable;
+
+ boost::shared_ptr<Pannable> _pannable_internal;
+ boost::shared_ptr<Pannable> _pannable_route;
+ bool _is_send;
+ bool _panlinked;
bool _bypassed;
+
+ std::string _current_panner_uri;
+ std::string _user_selected_panner_uri;
+ std::string _panner_gui_uri;
+ bool _force_reselect;
};
} // namespace ARDOUR
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index 7043460d52..a69b87efbd 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -97,12 +97,23 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent
struct ParameterDescriptor {
- /* XXX: it would probably be nice if this initialised everything */
ParameterDescriptor ()
- : enumeration (false)
+ : integer_step(false)
+ , toggled (false)
+ , logarithmic (false)
+ , sr_dependent (false)
+ , lower (0)
+ , upper (0)
+ , step (0)
+ , smallstep (0)
+ , largestep (0)
+ , min_unbound (0)
+ , max_unbound (0)
+ , enumeration (false)
+ , midinote(false)
{}
- /* essentially a union of LADSPA and VST info */
+ /* essentially a union of LADSPA, VST and LV2 info */
bool integer_step;
bool toggled;
@@ -117,6 +128,7 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent
bool min_unbound;
bool max_unbound;
bool enumeration;
+ bool midinote; ///< only used if integer_step is also true
};
XMLNode& get_state ();
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 51e1356d12..627c847513 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -123,8 +123,7 @@ class LIBARDOUR_API PluginInsert : public Processor
}
PBD::Signal2<void,BufferSet*, BufferSet*> AnalysisDataGathered;
- /** Emitted when the return value of splitting () has changed */
- PBD::Signal0<void> SplittingChanged;
+ PBD::Signal0<void> PluginIoReConfigure;
/** Enumeration of the ways in which we can match our insert's
* IO to that of the plugin(s).
diff --git a/libs/ardour/ardour/port_engine.h b/libs/ardour/ardour/port_engine.h
index 16d3da3576..62996b7cdf 100644
--- a/libs/ardour/ardour/port_engine.h
+++ b/libs/ardour/ardour/port_engine.h
@@ -118,10 +118,11 @@ class LIBARDOUR_API PortEngine {
* does not exist, return an empty string.
*/
virtual std::string get_port_name (PortHandle) const = 0;
+
/** Return a reference to a port with the fullname @param name. Return
- * a null pointer if no such port exists.
+ * an "empty" PortHandle (analogous to a null pointer) if no such port exists.
*/
- virtual PortHandle* get_port_by_name (const std::string&) const = 0;
+ virtual PortHandle get_port_by_name (const std::string&) const = 0;
/** Find the set of ports whose names, types and flags match
* specified values, place the names of each port into @param ports,
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h
index 7000dde3ca..adae854ca7 100644
--- a/libs/ardour/ardour/rc_configuration_vars.h
+++ b/libs/ardour/ardour/rc_configuration_vars.h
@@ -113,6 +113,8 @@ CONFIG_VARIABLE (gain_t, solo_mute_gain, "solo-mute-gain", 0.0)
CONFIG_VARIABLE (std::string, monitor_bus_preferred_bundle, "monitor-bus-preferred-bundle", "")
CONFIG_VARIABLE (bool, quieten_at_speed, "quieten-at-speed", true)
+CONFIG_VARIABLE (bool, link_send_and_route_panner, "link-send-and-route-panner", true)
+
/* click */
CONFIG_VARIABLE (bool, clicking, "clicking", false)
@@ -155,6 +157,7 @@ CONFIG_VARIABLE (MeterLineUp, meter_line_up_din, "meter-line-up-din", MeteringLi
CONFIG_VARIABLE (float, meter_peak, "meter-peak", 0.0f)
CONFIG_VARIABLE (bool, meter_style_led, "meter-style-led", true)
CONFIG_VARIABLE (bool, show_editor_meter, "show-editor-meter", true)
+CONFIG_VARIABLE (double, waveform_clip_level, "waveform-clip-level", -0.0933967) /* units of dB */
/* miscellany */
@@ -173,7 +176,6 @@ CONFIG_VARIABLE (bool, use_overlap_equivalency, "use-overlap-equivalency", false
CONFIG_VARIABLE (bool, periodic_safety_backups, "periodic-safety-backups", true)
CONFIG_VARIABLE (uint32_t, periodic_safety_backup_interval, "periodic-safety-backup-interval", 120)
CONFIG_VARIABLE (float, automation_interval_msecs, "automation-interval-msecs", 30)
-CONFIG_VARIABLE (bool, sync_all_route_ordering, "sync-all-route-ordering", true)
CONFIG_VARIABLE (bool, only_copy_imported_files, "only-copy-imported-files", false)
CONFIG_VARIABLE (bool, keep_tearoffs, "keep-tearoffs", false)
CONFIG_VARIABLE (bool, new_plugins_active, "new-plugins-active", true)
diff --git a/libs/ardour/ardour/revision.h b/libs/ardour/ardour/revision.h
index ed4059cbf9..69c7519e01 100644
--- a/libs/ardour/ardour/revision.h
+++ b/libs/ardour/ardour/revision.h
@@ -24,7 +24,7 @@
namespace ARDOUR {
- LIBARDOUR_API extern const char* revision;
+ extern LIBARDOUR_API const char* revision;
extern "C" {
LIBARDOUR_API const char* get_ardour_revision();
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index a7eeace7b4..fb2b18f177 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -102,10 +102,9 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
bool set_name (const std::string& str);
static void set_name_in_state (XMLNode &, const std::string &);
- uint32_t order_key (RouteSortOrderKey) const;
- bool has_order_key (RouteSortOrderKey) const;
- void set_order_key (RouteSortOrderKey, uint32_t);
- void sync_order_keys (RouteSortOrderKey);
+ uint32_t order_key () const;
+ bool has_order_key () const;
+ void set_order_key (uint32_t);
bool is_auditioner() const { return _flags & Auditioner; }
bool is_master() const { return _flags & MasterOut; }
@@ -427,7 +426,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
void set_remote_control_id (uint32_t id, bool notify_class_listeners = true);
uint32_t remote_control_id () const;
- void set_remote_control_id_from_order_key (RouteSortOrderKey, uint32_t order_key);
+ void set_remote_control_id_explicit (uint32_t order_key);
/* for things concerned about *this* route's RID */
@@ -436,7 +435,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
/* for things concerned about *any* route's RID changes */
static PBD::Signal0<void> RemoteControlIDChange;
- static PBD::Signal1<void,RouteSortOrderKey> SyncOrderKeys;
+ static PBD::Signal0<void> SyncOrderKeys;
bool has_external_redirects() const;
@@ -547,8 +546,8 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
int set_state_2X (const XMLNode&, int);
void set_processor_state_2X (XMLNodeList const &, int);
- typedef std::map<RouteSortOrderKey,uint32_t> OrderKeys;
- OrderKeys order_keys;
+ uint32_t _order_key;
+ bool _has_order_key;
uint32_t _remote_control_id;
void input_change_handler (IOChange, void *src);
diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h
index 5c15a17228..9b30dcf792 100644
--- a/libs/ardour/ardour/send.h
+++ b/libs/ardour/ardour/send.h
@@ -77,6 +77,7 @@ class LIBARDOUR_API Send : public Delivery
private:
/* disallow copy construction */
Send (const Send&);
+ void panshell_changed ();
int set_state_2X (XMLNode const &, int);
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 1e3c41fe1d..7295828d2f 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -36,6 +36,8 @@
#include <glibmm/threads.h>
+#include <ltc.h>
+
#include "pbd/error.h"
#include "pbd/event_loop.h"
#include "pbd/rcu.h"
@@ -48,7 +50,6 @@
#include "midi++/types.h"
#include "timecode/time.h"
-#include "ltc/ltc.h"
#include "ardour/ardour.h"
#include "ardour/chan_count.h"
@@ -241,8 +242,9 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
};
+ void set_order_hint (uint32_t order_hint) {_order_hint = order_hint;};
void notify_remote_id_change ();
- void sync_order_keys (RouteSortOrderKey);
+ void sync_order_keys ();
template<class T> void foreach_route (T *obj, void (T::*func)(Route&));
template<class T> void foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>));
@@ -502,7 +504,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void timecode_time_subframes (framepos_t when, Timecode::Time&);
void timecode_duration (framecnt_t, Timecode::Time&) const;
- void timecode_duration_string (char *, framecnt_t) const;
+ void timecode_duration_string (char *, size_t len, framecnt_t) const;
framecnt_t convert_to_frames (AnyTime const & position);
framecnt_t any_duration_to_frames (framepos_t position, AnyTime const & duration);
@@ -1594,6 +1596,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
GraphEdges _current_route_graph;
uint32_t next_control_id () const;
+ uint32_t _order_hint;
bool ignore_route_processor_changes;
MidiClockTicker* midi_clock;
@@ -1610,7 +1613,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void setup_ltc ();
void setup_click ();
- void setup_click_state (const XMLNode&);
+ void setup_click_state (const XMLNode*);
void setup_bundles ();
static int get_session_info_from_path (XMLTree& state_tree, const std::string& xmlpath);
diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.h
index 5e93c01b79..6349692e77 100644
--- a/libs/ardour/ardour/session_configuration_vars.h
+++ b/libs/ardour/ardour/session_configuration_vars.h
@@ -63,5 +63,6 @@ CONFIG_VARIABLE (bool, show_midi_on_meterbridge, "show-midi-on-meterbridge", tru
CONFIG_VARIABLE (bool, show_rec_on_meterbridge, "show-rec-on-meterbridge", true)
CONFIG_VARIABLE (bool, show_mute_on_meterbridge, "show-mute-on-meterbridge", false)
CONFIG_VARIABLE (bool, show_solo_on_meterbridge, "show-solo-on-meterbridge", false)
+CONFIG_VARIABLE (bool, show_monitor_on_meterbridge, "show-monitor-on-meterbridge", false)
CONFIG_VARIABLE (bool, show_name_on_meterbridge, "show-name-on-meterbridge", true)
CONFIG_VARIABLE (uint32_t, meterbridge_label_height, "meterbridge-label-height", 0)
diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h
index d4102a62ef..1283f32004 100644
--- a/libs/ardour/ardour/session_event.h
+++ b/libs/ardour/ardour/session_event.h
@@ -109,7 +109,7 @@ public:
boost::shared_ptr<Region> region;
- SessionEvent (Type t, Action a, framepos_t when, framepos_t where, double spd, bool yn = false, bool yn2 = false, bool yn3 = false)
+ SessionEvent (Type t, Action a, framepos_t when, framepos_t where, double spd, bool yn = false, bool yn2 = false, bool yn3 = false)
: type (t)
, action (a)
, action_frame (when)
@@ -151,7 +151,7 @@ private:
friend class Butler;
};
-class LIBARDOUR_API SessionEventManager {
+class SessionEventManager {
public:
SessionEventManager () : pending_events (2048),
auto_loop_event(0), punch_out_event(0), punch_in_event(0) {}
diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h
index faeb3be357..7e80055f94 100644
--- a/libs/ardour/ardour/slave.h
+++ b/libs/ardour/ardour/slave.h
@@ -25,11 +25,11 @@
#include <glibmm/threads.h>
#include <jack/jack.h>
+#include <ltc.h>
#include "pbd/signals.h"
#include "timecode/time.h"
-#include "ltc/ltc.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h"
@@ -184,12 +184,14 @@ class LIBARDOUR_API Slave {
class LIBARDOUR_API ISlaveSessionProxy {
public:
virtual ~ISlaveSessionProxy() {}
- virtual TempoMap& tempo_map() const { return *((TempoMap *) 0); }
- virtual framecnt_t frame_rate() const { return 0; }
- virtual framepos_t audible_frame () const { return 0; }
- virtual framepos_t transport_frame () const { return 0; }
- virtual pframes_t frames_since_cycle_start () const { return 0; }
- virtual framepos_t frame_time () const { return 0; }
+ virtual TempoMap& tempo_map() const { return *((TempoMap *) 0); }
+ virtual framecnt_t frame_rate() const { return 0; }
+ virtual pframes_t frames_per_cycle() const { return 0; }
+ virtual framepos_t audible_frame () const { return 0; }
+ virtual framepos_t transport_frame () const { return 0; }
+ virtual pframes_t frames_since_cycle_start () const { return 0; }
+ virtual pframes_t sample_time_at_cycle_start() const { return 0; }
+ virtual framepos_t frame_time () const { return 0; }
virtual void request_locate (framepos_t /*frame*/, bool with_roll = false) {
(void) with_roll;
@@ -205,12 +207,14 @@ class LIBARDOUR_API SlaveSessionProxy : public ISlaveSessionProxy {
public:
SlaveSessionProxy(Session &s) : session(s) {}
- TempoMap& tempo_map() const;
- framecnt_t frame_rate() const;
- framepos_t audible_frame () const;
- framepos_t transport_frame () const;
- pframes_t frames_since_cycle_start () const;
- framepos_t frame_time () const;
+ TempoMap& tempo_map() const;
+ framecnt_t frame_rate() const;
+ pframes_t frames_per_cycle() const;
+ framepos_t audible_frame () const;
+ framepos_t transport_frame () const;
+ pframes_t frames_since_cycle_start () const;
+ pframes_t sample_time_at_cycle_start() const;
+ framepos_t frame_time () const;
void request_locate (framepos_t frame, bool with_roll = false);
void request_transport_speed (double speed);
diff --git a/libs/ardour/ardour/srcfilesource.h b/libs/ardour/ardour/srcfilesource.h
new file mode 100644
index 0000000000..78564c8b88
--- /dev/null
+++ b/libs/ardour/ardour/srcfilesource.h
@@ -0,0 +1,83 @@
+/*
+ Copyright (C) 2014 Paul Davis
+ Written by: Robin Gareus <robin@gareus.org>
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __ardour_srcfilesource_h__
+#define __ardour_srcfilesource_h__
+
+#include <cstring>
+#include <samplerate.h>
+
+#include "ardour/libardour_visibility.h"
+#include "ardour/audiofilesource.h"
+#include "ardour/session.h"
+
+namespace ARDOUR {
+
+class LIBARDOUR_API SrcFileSource : public AudioFileSource {
+public:
+ SrcFileSource (Session&, boost::shared_ptr<AudioFileSource>, SrcQuality srcq = SrcQuality(SrcQuick));
+ ~SrcFileSource ();
+
+ int update_header (framepos_t /*when*/, struct tm&, time_t) { return 0; }
+ int flush_header () { return 0; }
+ void flush () { }
+ void set_header_timeline_position () {};
+ void set_length (framecnt_t /*len*/) {};
+
+ float sample_rate () const { return _session.nominal_frame_rate(); }
+
+ framepos_t natural_position() const { return _source->natural_position() * _ratio;}
+ framecnt_t readable_length() const { return _source->readable_length() * _ratio; }
+ framecnt_t length (framepos_t pos) const { return _source->length(pos) * _ratio; }
+
+ bool destructive() const { return false; }
+ bool can_be_analysed() const { return false; }
+ bool clamped_at_unity() const { return false; }
+
+protected:
+ framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
+ framecnt_t write_unlocked (Sample */*dst*/, framecnt_t /*cnt*/) { return 0; }
+
+ int read_peaks_with_fpp (PeakData *peaks, framecnt_t npeaks, framepos_t /*start*/, framecnt_t /*cnt*/,
+ double /*samples_per_unit*/, framecnt_t /*fpp*/) const {
+ memset (peaks, 0, sizeof (PeakData) * npeaks);
+ return 0;
+ }
+
+private:
+ static const uint32_t blocksize;
+ boost::shared_ptr<AudioFileSource> _source;
+
+ mutable SRC_STATE* _src_state;
+ mutable SRC_DATA _src_data;
+
+ mutable Sample* _src_buffer;
+ mutable framepos_t _source_position;
+ mutable framepos_t _target_position;
+ mutable double _fract_position;
+
+ double _ratio;
+ framecnt_t src_buffer_size;
+};
+
+} // namespace ARDOUR
+
+#endif /* __ardour_audiofilesource_h__ */
+
diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h
index ee43d1f30f..50a96030b1 100644
--- a/libs/ardour/ardour/types.h
+++ b/libs/ardour/ardour/types.h
@@ -187,7 +187,8 @@ namespace ARDOUR {
MeterIEC1NOR = 0x080,
MeterIEC2BBC = 0x100,
MeterIEC2EBU = 0x200,
- MeterVU = 0x400
+ MeterVU = 0x400,
+ MeterK12 = 0x800
};
enum TrackMode {
@@ -353,11 +354,6 @@ namespace ARDOUR {
PostFader
};
- enum RouteSortOrderKey {
- EditorSort,
- MixerSort
- };
-
enum MonitorModel {
HardwareMonitoring, ///< JACK does monitoring
SoftwareMonitoring, ///< Ardour does monitoring
@@ -419,8 +415,7 @@ namespace ARDOUR {
enum RemoteModel {
UserOrdered,
- MixerOrdered,
- EditorOrdered
+ MixerOrdered
};
enum CrossfadeModel {
diff --git a/libs/ardour/ardour/utils.h b/libs/ardour/ardour/utils.h
index f0030557e9..6dba01c797 100644
--- a/libs/ardour/ardour/utils.h
+++ b/libs/ardour/ardour/utils.h
@@ -58,6 +58,7 @@ static inline float f_max(float x, float a) {
LIBARDOUR_API std::string bump_name_once(const std::string& s, char delimiter);
LIBARDOUR_API int cmp_nocase (const std::string& s, const std::string& s2);
+LIBARDOUR_API int cmp_nocase_utf8 (const std::string& s1, const std::string& s2);
LIBARDOUR_API int touch_file(std::string path);
diff --git a/libs/ardour/ardour/vestige/aeffectx.h b/libs/ardour/ardour/vestige/aeffectx.h
index 5238df1c75..bd2e3a1479 100644
--- a/libs/ardour/ardour/vestige/aeffectx.h
+++ b/libs/ardour/ardour/vestige/aeffectx.h
@@ -113,12 +113,11 @@
#define kEffectMagic (CCONST( 'V', 's', 't', 'P' ))
#define kVstLangEnglish 1
#define kVstMidiType 1
-#define kVstTempoValid (1 << 10)
-#define kVstTransportPlaying (1 << 1)
-
struct RemoteVstPlugin;
+#define kVstTransportPlaying (1 << 1)
+
#define kVstNanosValid (1 << 8)
#define kVstPpqPosValid (1 << 9)
#define kVstTempoValid (1 << 10)
@@ -250,27 +249,26 @@ struct _AEffect
typedef struct _AEffect AEffect;
-struct _VstTimeInfo
+typedef struct _VstTimeInfo
{
- // 00
- double samplePos;
- // 08
- double sampleRate;
- // unconfirmed 10 18
- char empty1[8 + 8];
- // 20?
- double tempo;
- // unconfirmed 28 30 38
- char empty2[8 + 8 + 8];
- // 40?
- int timeSigNumerator;
- // 44?
- int timeSigDenominator;
- // unconfirmed 48 4c 50
- char empty3[4 + 4 + 4];
- // 54
- int flags;
-};
+ /* info from online documentation of VST provided by Steinberg */
+
+ double samplePos;
+ double sampleRate;
+ double nanoSeconds;
+ double ppqPos;
+ double tempo;
+ double barStartPos;
+ double cycleStartPos;
+ double cycleEndPos;
+ int32_t timeSigNumerator;
+ int32_t timeSigDenominator;
+ int32_t smpteOffset;
+ int32_t smpteFrameRate;
+ int32_t samplesToNextClock;
+ int32_t flags;
+
+} VstTimeInfo;
typedef struct _VstTimeInfo VstTimeInfo;
diff --git a/libs/ardour/ardour/vumeterdsp.h b/libs/ardour/ardour/vumeterdsp.h
index f8abc7fa93..1271276d68 100644
--- a/libs/ardour/ardour/vumeterdsp.h
+++ b/libs/ardour/ardour/vumeterdsp.h
@@ -29,11 +29,11 @@ public:
Vumeterdsp (void);
~Vumeterdsp (void);
- void process (float *p, int n);
+ void process (float const *p, int n);
float read (void);
void reset ();
- static void init (float fsamp);
+ static void init (float fsamp);
private:
diff --git a/libs/ardour/audio_buffer.cc b/libs/ardour/audio_buffer.cc
index 1fd0337dd1..aa4f64755a 100644
--- a/libs/ardour/audio_buffer.cc
+++ b/libs/ardour/audio_buffer.cc
@@ -28,15 +28,15 @@ using namespace PBD;
using namespace ARDOUR;
AudioBuffer::AudioBuffer(size_t capacity)
- : Buffer(DataType::AUDIO, capacity)
+ : Buffer (DataType::AUDIO)
, _owns_data (false)
, _data (0)
{
- if (_capacity > 0) {
+ if (capacity) {
_owns_data = true; // prevent resize() from gagging
- resize (_capacity);
+ resize (capacity);
_silent = false; // force silence on the intial buffer state
- silence (_capacity);
+ clear ();
}
}
@@ -50,30 +50,52 @@ void
AudioBuffer::resize (size_t size)
{
if (!_owns_data) {
+ /* XXX how the hell is this enforced? */
+ _capacity = size;
return;
}
- if (size < _capacity) {
- _size = size;
+ if (_data && size < _capacity) {
+ /* buffer is already large enough */
+
+ if (size < _size) {
+ /* truncate */
+ _size = size;
+ }
+
return;
}
free (_data);
+ cache_aligned_malloc ((void**) &_data, sizeof (Sample) * size);
+
_capacity = size;
- _size = size;
+ _size = 0;
_silent = false;
-
- cache_aligned_malloc ((void**) &_data, sizeof (Sample) * _capacity);
}
bool
-AudioBuffer::check_silence (pframes_t nframes, pframes_t& n) const
+AudioBuffer::check_silence (pframes_t nframes, bool wholebuffer, pframes_t& n) const
{
- for (n = 0; n < _size && n < nframes; ++n) {
+ for (n = 0; (wholebuffer || n < _size) && n < nframes; ++n) {
if (_data[n] != Sample (0)) {
return false;
}
}
return true;
}
+
+void
+AudioBuffer::silence (framecnt_t len, framecnt_t offset) {
+
+ if (!_silent) {
+ assert(_capacity > 0);
+ assert(offset + len <= _capacity);
+ memset(_data + offset, 0, sizeof (Sample) * len);
+ if (len == _capacity) {
+ _silent = true;
+ }
+ }
+ _written = true;
+}
diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc
index f4d10c2043..dd2dcf324e 100644
--- a/libs/ardour/audio_diskstream.cc
+++ b/libs/ardour/audio_diskstream.cc
@@ -1789,7 +1789,7 @@ AudioDiskstream::get_state ()
LocaleGuard lg (X_("POSIX"));
boost::shared_ptr<ChannelList> c = channels.reader();
- snprintf (buf, sizeof(buf), "%zd", c->size());
+ snprintf (buf, sizeof(buf), "%u", (unsigned int) c->size());
node.add_property ("channels", buf);
if (!capturing_sources.empty() && _session.get_record_enabled()) {
diff --git a/libs/ardour/audio_port.cc b/libs/ardour/audio_port.cc
index 6a86360b69..2fecbf9392 100644
--- a/libs/ardour/audio_port.cc
+++ b/libs/ardour/audio_port.cc
@@ -56,14 +56,11 @@ AudioPort::cycle_start (pframes_t nframes)
}
void
-AudioPort::cycle_end (pframes_t)
+AudioPort::cycle_end (pframes_t nframes)
{
if (sends_output() && !_buffer->written()) {
- /* we can't use nframes here because the current buffer capacity may
- be shorter than the full buffer size if we split the cycle.
- */
- if (_buffer->capacity () > 0) {
- _buffer->silence (_buffer->capacity());
+ if (_buffer->capacity() >= nframes) {
+ _buffer->silence (nframes);
}
}
}
diff --git a/libs/ardour/audioanalyser.cc b/libs/ardour/audioanalyser.cc
index cf8329ae9c..fd30744a74 100644
--- a/libs/ardour/audioanalyser.cc
+++ b/libs/ardour/audioanalyser.cc
@@ -19,7 +19,7 @@
#include <cstring>
-#include "vamp-hostsdk/PluginLoader.h"
+#include <vamp-hostsdk/PluginLoader.h>
#include <glibmm/miscutils.h>
#include <glibmm/fileutils.h>
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index ae40b089db..cb167c9595 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -670,23 +670,6 @@ AudioEngine::stop (bool for_latency)
}
int
-AudioEngine::pause ()
-{
- if (!_backend) {
- return 0;
- }
-
- if (_backend->pause ()) {
- return -1;
- }
-
- _running = false;
-
- Stopped(); /* EMIT SIGNAL */
- return 0;
-}
-
-int
AudioEngine::freewheel (bool start_stop)
{
if (!_backend) {
@@ -699,12 +682,12 @@ AudioEngine::freewheel (bool start_stop)
}
float
-AudioEngine::get_cpu_load() const
+AudioEngine::get_dsp_load() const
{
if (!_backend) {
return 0.0;
}
- return _backend->cpu_load ();
+ return _backend->dsp_load ();
}
bool
@@ -1089,8 +1072,8 @@ AudioEngine::start_latency_detection ()
/* find the ports we will connect to */
- PortEngine::PortHandle* out = pe.get_port_by_name (_latency_output_name);
- PortEngine::PortHandle* in = pe.get_port_by_name (_latency_input_name);
+ PortEngine::PortHandle out = pe.get_port_by_name (_latency_output_name);
+ PortEngine::PortHandle in = pe.get_port_by_name (_latency_input_name);
if (!out || !in) {
stop (true);
diff --git a/libs/ardour/audiofile_tagger.cc b/libs/ardour/audiofile_tagger.cc
index 53b9afdd3e..61a05d49ce 100644
--- a/libs/ardour/audiofile_tagger.cc
+++ b/libs/ardour/audiofile_tagger.cc
@@ -24,12 +24,12 @@
#include "pbd/convert.h"
-#include "taglib/fileref.h"
-#include "taglib/flac/flacfile.h"
-#include "taglib/ogg/oggfile.h"
-#include "taglib/tag.h"
-#include "taglib/toolkit/taglib.h"
-#include "taglib/ogg/xiphcomment.h"
+#include <taglib/fileref.h>
+#include <taglib/flacfile.h>
+#include <taglib/oggfile.h>
+#include <taglib/tag.h>
+#include <taglib/taglib.h>
+#include <taglib/xiphcomment.h>
/* Convert string to TagLib::String */
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index 0909140f91..331de043cd 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -744,7 +744,7 @@ AudioRegion::read_from_sources (SourceList const & srcs, framecnt_t limit, Sampl
/* copy an existing channel's data in for this non-existant one */
- uint32_t channel = n_channels() % chan_n;
+ uint32_t channel = chan_n % n_channels();
boost::shared_ptr<AudioSource> src = boost::dynamic_pointer_cast<AudioSource> (srcs[channel]);
if (src->read (buf, _start + internal_offset, to_read) != to_read) {
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc
index 9f7dd85b52..75a40f142d 100644
--- a/libs/ardour/auditioner.cc
+++ b/libs/ardour/auditioner.cc
@@ -44,6 +44,9 @@ Auditioner::Auditioner (Session& s)
, current_frame (0)
, _auditioning (0)
, length (0)
+ , _seek_frame (-1)
+ , _seeking (false)
+ , _seek_complete (false)
, via_monitor (false)
{
}
@@ -54,13 +57,31 @@ Auditioner::init ()
if (Track::init ()) {
return -1;
}
+
+ if (connect ()) {
+ return -1;
+ }
+
+ _output->changed.connect_same_thread (*this, boost::bind (&Auditioner::output_changed, this, _1, _2));
+
+ return 0;
+}
+Auditioner::~Auditioner ()
+{
+}
+
+int
+Auditioner::connect ()
+{
string left = Config->get_auditioner_output_left();
string right = Config->get_auditioner_output_right();
vector<string> outputs;
_session.engine().get_physical_outputs (DataType::AUDIO, outputs);
+ via_monitor = false;
+
if (left.empty() || left == "default") {
if (_session.monitor_out()) {
left = _session.monitor_out()->input()->audio (0)->name();
@@ -83,31 +104,49 @@ Auditioner::init ()
}
}
+ _output->disconnect (this);
+
if (left.empty() && right.empty()) {
- warning << _("no outputs available for auditioner - manual connection required") << endmsg;
+ if (_output->n_ports().n_audio() == 0) {
+ /* ports not set up, so must be during startup */
+ warning << _("no outputs available for auditioner - manual connection required") << endmsg;
+ }
} else {
- _main_outs->defer_pan_reset ();
-
- if (left.length()) {
- _output->add_port (left, this, DataType::AUDIO);
- }
-
- if (right.length()) {
- _output->add_port (right, this, DataType::AUDIO);
- }
-
- _main_outs->allow_pan_reset ();
- _main_outs->reset_panner ();
- }
+ if (_output->n_ports().n_audio() == 0) {
- _output->changed.connect_same_thread (*this, boost::bind (&Auditioner::output_changed, this, _1, _2));
+ /* create (and connect) new ports */
- return 0;
-}
+ _main_outs->defer_pan_reset ();
+
+ if (left.length()) {
+ _output->add_port (left, this, DataType::AUDIO);
+ }
+
+ if (right.length()) {
+ _output->add_port (right, this, DataType::AUDIO);
+ }
+
+ _main_outs->allow_pan_reset ();
+ _main_outs->reset_panner ();
-Auditioner::~Auditioner ()
-{
+ } else {
+
+ /* reconnect existing ports */
+
+ boost::shared_ptr<Port> oleft (_output->nth (0));
+ boost::shared_ptr<Port> oright (_output->nth (1));
+ if (oleft) {
+ oleft->connect (left);
+ }
+ if (oright) {
+ oright->connect (right);
+ }
+ }
+
+ }
+
+ return 0;
}
AudioPlaylist&
@@ -167,6 +206,8 @@ Auditioner::audition_region (boost::shared_ptr<Region> region)
_main_outs->reset_panner();
+ _seek_frame = -1;
+ _seeking = false;
length = the_region->length();
int dir;
@@ -196,14 +237,44 @@ Auditioner::play_audition (framecnt_t nframes)
return 0;
}
- this_nframes = min (nframes, length - current_frame);
+#if 0 // TODO
+ if (_seeking && _seek_complete) {
+ // set FADE-IN
+ } else if (_seek_frame >= 0 && _seek_frame < length && !_seeking) {
+ // set FADE-OUT -- use/override amp? || use region-gain ?
+ }
+#endif
- if ((ret = roll (this_nframes, current_frame, current_frame + nframes, false, need_butler)) != 0) {
+ if (_seeking && _seek_complete) {
+ _seek_complete = false;
+ _seeking = false;
+ _seek_frame = -1;
+ }
+
+ if(!_seeking) {
+ /* process audio */
+ this_nframes = min (nframes, length - current_frame);
+
+ if ((ret = roll (this_nframes, current_frame, current_frame + nframes, false, need_butler)) != 0) {
+ silence (nframes);
+ return ret;
+ }
+
+ current_frame += this_nframes;
+
+ } else {
silence (nframes);
- return ret;
}
- current_frame += this_nframes;
+ if (_seek_frame >= 0 && _seek_frame < length && !_seeking) {
+ _seek_complete = false;
+ _seeking = true;
+ need_butler = true;
+ }
+
+ if (!_seeking) {
+ AuditionProgress(current_frame, length); /* emit */
+ }
if (current_frame >= length) {
_session.cancel_audition ();
diff --git a/libs/ardour/buffer_set.cc b/libs/ardour/buffer_set.cc
index e67aee6be7..9db99d20ce 100644
--- a/libs/ardour/buffer_set.cc
+++ b/libs/ardour/buffer_set.cc
@@ -167,7 +167,7 @@ BufferSet::ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capac
// If there's not enough or they're too small, just nuke the whole thing and
// rebuild it (so I'm lazy..)
if (bufs.size() < num_buffers
- || (bufs.size() > 0 && bufs[0]->capacity() < buffer_capacity)) {
+ || (bufs.size() > 0 && bufs[0]->capacity() < buffer_capacity)) {
// Nuke it
for (BufferVec::iterator i = bufs.begin(); i != bufs.end(); ++i) {
@@ -179,7 +179,7 @@ BufferSet::ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capac
for (size_t i = 0; i < num_buffers; ++i) {
bufs.push_back(Buffer::create(type, buffer_capacity));
}
-
+
_available.set(type, num_buffers);
_count.set (type, num_buffers);
}
@@ -468,16 +468,5 @@ BufferSet::silence (framecnt_t nframes, framecnt_t offset)
}
}
-void
-BufferSet::set_is_silent (bool yn)
-{
- for (std::vector<BufferVec>::iterator i = _buffers.begin(); i != _buffers.end(); ++i) {
- for (BufferVec::iterator b = i->begin(); b != i->end(); ++b) {
- (*b)->set_is_silent (yn);
- }
- }
-
-}
-
} // namespace ARDOUR
diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc
index 1fe1524618..c9eb55a472 100644
--- a/libs/ardour/butler.cc
+++ b/libs/ardour/butler.cc
@@ -257,6 +257,14 @@ restart:
_session.butler_transport_work ();
}
+ frameoffset_t audition_seek;
+ if (should_run && _session.is_auditioning()
+ && (audition_seek = _session.the_auditioner()->seek_frame()) >= 0) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (_session.the_auditioner());
+ tr->seek(audition_seek);
+ _session.the_auditioner()->seek_response(audition_seek);
+ }
+
boost::shared_ptr<RouteList> rl = _session.get_routes();
RouteList rl_with_auditioner = *rl;
diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc
index 06c9c72cb4..d9cefb44f2 100644
--- a/libs/ardour/control_protocol_manager.cc
+++ b/libs/ardour/control_protocol_manager.cc
@@ -74,26 +74,54 @@ ControlProtocolManager::set_session (Session* s)
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->requested || (*i)->mandatory) {
-
- instantiate (**i);
- (*i)->requested = false;
-
- if ((*i)->protocol) {
- if ((*i)->state) {
- (*i)->protocol->set_state (*(*i)->state, Stateful::loading_state_version);
- } else {
- /* guarantee a call to
- set_state() whether we have
- existing state or not
- */
- (*i)->protocol->set_state (XMLNode(""), Stateful::loading_state_version);
- }
- }
+ (void) activate (**i);
}
}
}
}
+int
+ControlProtocolManager::activate (ControlProtocolInfo& cpi)
+{
+ ControlProtocol* cp;
+
+ cpi.requested = true;
+
+ if ((cp = instantiate (cpi)) == 0) {
+ return -1;
+ }
+
+ /* we split the set_state() and set_active() operations so that
+ protocols that need state to configure themselves (e.g. "What device
+ is connected, or supposed to be connected?") can get it before
+ actually starting any interaction.
+ */
+
+ if (cpi.state) {
+ /* force this by tweaking the internals of the state
+ * XMLNode. Ugh.
+ */
+ cp->set_state (*cpi.state, Stateful::loading_state_version);
+ } else {
+ /* guarantee a call to
+ set_state() whether we have
+ existing state or not
+ */
+ cp->set_state (XMLNode(""), Stateful::loading_state_version);
+ }
+
+ cp->set_active (true);
+
+ return 0;
+}
+
+int
+ControlProtocolManager::deactivate (ControlProtocolInfo& cpi)
+{
+ cpi.requested = false;
+ return teardown (cpi);
+}
+
void
ControlProtocolManager::session_going_away()
{
@@ -165,6 +193,12 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi)
if (cpi.mandatory) {
return 0;
}
+
+ /* save current state */
+
+ delete cpi.state;
+ cpi.state = new XMLNode (cpi.protocol->get_state());
+ cpi.state->add_property (X_("active"), "no");
cpi.descriptor->destroy (cpi.descriptor, cpi.protocol);
@@ -381,22 +415,21 @@ ControlProtocolManager::get_state ()
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
- XMLNode * child;
-
if ((*i)->protocol) {
- child = &((*i)->protocol->get_state());
- child->add_property (X_("active"), "yes");
- // should we update (*i)->state here? probably.
- root->add_child_nocopy (*child);
+ XMLNode& child_state ((*i)->protocol->get_state());
+ child_state.add_property (X_("active"), "yes");
+ root->add_child_nocopy (child_state);
} else if ((*i)->state) {
- // keep ownership clear
- root->add_child_copy (*(*i)->state);
+ XMLNode* child_state = new XMLNode (*(*i)->state);
+ child_state->add_property (X_("active"), "no");
+ root->add_child_nocopy (*child_state);
} else {
- child = new XMLNode (X_("Protocol"));
- child->add_property (X_("name"), (*i)->name);
- child->add_property (X_("active"), "no");
- root->add_child_nocopy (*child);
+ XMLNode* child_state = new XMLNode (X_("Protocol"));
+ child_state->add_property (X_("name"), (*i)->name);
+ child_state->add_property (X_("active"), "no");
+ root->add_child_nocopy (*child_state);
}
+
}
return *root;
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc
index 79c44ce94a..4a392a8145 100644
--- a/libs/ardour/delivery.cc
+++ b/libs/ardour/delivery.cc
@@ -58,7 +58,9 @@ Delivery::Delivery (Session& s, boost::shared_ptr<IO> io, boost::shared_ptr<Pann
, _no_panner_reset (false)
{
if (pannable) {
- _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable));
+ bool is_send = false;
+ if (r & (Delivery::Send|Delivery::Aux)) is_send = true;
+ _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable, is_send));
}
_display_to_user = false;
@@ -80,7 +82,9 @@ Delivery::Delivery (Session& s, boost::shared_ptr<Pannable> pannable, boost::sha
, _no_panner_reset (false)
{
if (pannable) {
- _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable));
+ bool is_send = false;
+ if (r & (Delivery::Send|Delivery::Aux)) is_send = true;
+ _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable, is_send));
}
_display_to_user = false;
@@ -329,6 +333,9 @@ Delivery::state (bool full_state)
if (_panshell) {
node.add_child_nocopy (_panshell->get_state ());
+ if (_panshell->pannable()) {
+ node.add_child_nocopy (_panshell->pannable()->get_state ());
+ }
}
return node;
@@ -358,6 +365,11 @@ Delivery::set_state (const XMLNode& node, int version)
reset_panner ();
+ XMLNode* pannnode = node.child (X_("Pannable"));
+ if (_panshell && _panshell->panner() && pannnode) {
+ _panshell->pannable()->set_state (*pannnode, version);
+ }
+
return 0;
}
@@ -385,12 +397,8 @@ Delivery::reset_panner ()
if (panners_legal) {
if (!_no_panner_reset) {
- if (_panshell) {
+ if (_panshell && _role != Insert) {
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
-
- if (_role == Main) {
- _panshell->pannable()->set_panner (_panshell->panner());
- }
}
}
@@ -403,12 +411,8 @@ Delivery::reset_panner ()
void
Delivery::panners_became_legal ()
{
- if (_panshell) {
+ if (_panshell && _role != Insert) {
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
-
- if (_role == Main) {
- _panshell->pannable()->set_panner (_panshell->panner());
- }
}
panner_legal_c.disconnect ();
diff --git a/libs/ardour/engine_slave.cc b/libs/ardour/engine_slave.cc
index eb55c9ba54..849b7320d3 100644
--- a/libs/ardour/engine_slave.cc
+++ b/libs/ardour/engine_slave.cc
@@ -21,6 +21,7 @@
#include <cerrno>
#include "ardour/audioengine.h"
+#include "ardour/audio_backend.h"
#include "ardour/slave.h"
using namespace std;
@@ -54,26 +55,13 @@ Engine_Slave::ok() const
bool
Engine_Slave::speed_and_position (double& sp, framepos_t& position)
{
- switch (engine.transport_state()) {
- case TransportStopped:
- speed = 0;
- _starting = false;
- break;
- case TransportRolling:
- speed = 1.0;
- _starting = false;
- break;
- case TransportLooping:
- speed = 1.0;
+ boost::shared_ptr<AudioBackend> backend = engine.current_backend();
+
+ if (backend) {
+ _starting = backend->speed_and_position (sp, position);
+ } else {
_starting = false;
- break;
- case TransportStarting:
- _starting = true;
- // don't adjust speed here, just leave it as it was
- break;
}
-
- sp = speed;
- position = engine.transport_frame();
+
return true;
}
diff --git a/libs/ardour/enums.cc b/libs/ardour/enums.cc
index 2a38cd2c8a..e32fe329af 100644
--- a/libs/ardour/enums.cc
+++ b/libs/ardour/enums.cc
@@ -95,7 +95,6 @@ setup_enum_writer ()
AutoState _AutoState;
AutoStyle _AutoStyle;
AutoConnectOption _AutoConnectOption;
- RouteSortOrderKey _RouteSortOrderKey;
Session::StateOfTheState _Session_StateOfTheState;
Route::Flag _Route_Flag;
Source::Flag _Source_Flag;
@@ -180,6 +179,7 @@ setup_enum_writer ()
REGISTER_ENUM (MeterKrms);
REGISTER_ENUM (MeterK20);
REGISTER_ENUM (MeterK14);
+ REGISTER_ENUM (MeterK12);
REGISTER_ENUM (MeterIEC1DIN);
REGISTER_ENUM (MeterIEC1NOR);
REGISTER_ENUM (MeterIEC2BBC);
@@ -281,8 +281,13 @@ setup_enum_writer ()
REGISTER_ENUM (UserOrdered);
REGISTER_ENUM (MixerOrdered);
- REGISTER_ENUM (EditorOrdered);
REGISTER (_RemoteModel);
+ /*
+ * EditorOrdered has been deprecated
+ * since the removal of independent
+ * editor / mixer ordering.
+ */
+ enum_writer.add_to_hack_table ("EditorOrdered", "MixerOrdered");
REGISTER_ENUM (FullCrossfade);
REGISTER_ENUM (ShortCrossfade);
@@ -434,10 +439,6 @@ setup_enum_writer ()
REGISTER_CLASS_ENUM (Route, MonitorOut);
REGISTER_BITS (_Route_Flag);
- REGISTER_ENUM (MixerSort);
- REGISTER_ENUM (EditorSort);
- REGISTER (_RouteSortOrderKey);
-
REGISTER_CLASS_ENUM (Source, Writable);
REGISTER_CLASS_ENUM (Source, CanRename);
REGISTER_CLASS_ENUM (Source, Broadcast);
diff --git a/libs/ardour/export_channel.cc b/libs/ardour/export_channel.cc
index 82e5d80244..296bfc9022 100644
--- a/libs/ardour/export_channel.cc
+++ b/libs/ardour/export_channel.cc
@@ -131,7 +131,7 @@ RegionExportChannelFactory::RegionExportChannelFactory (Session * session, Audio
mixdown_buffer.reset (new Sample [frames_per_cycle]);
gain_buffer.reset (new Sample [frames_per_cycle]);
- memset (gain_buffer.get(), 1.0, sizeof (Sample) * frames_per_cycle);
+ std::fill_n (gain_buffer.get(), frames_per_cycle, Sample (1.0));
break;
case Processed:
@@ -239,7 +239,11 @@ RouteExportChannel::read (Sample const *& data, framecnt_t frames) const
{
assert(processor);
AudioBuffer const & buffer = processor->get_capture_buffers().get_audio (channel);
+#ifndef NDEBUG
+ (void) frames;
+#else
assert (frames <= (framecnt_t) buffer.size());
+#endif
data = buffer.data();
}
diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc
index 5710ecc452..20abc80de1 100644
--- a/libs/ardour/export_handler.cc
+++ b/libs/ardour/export_handler.cc
@@ -26,12 +26,14 @@
#include "pbd/convert.h"
+#include "ardour/audiofile_tagger.h"
#include "ardour/export_graph_builder.h"
#include "ardour/export_timespan.h"
#include "ardour/export_channel_configuration.h"
#include "ardour/export_status.h"
#include "ardour/export_format_specification.h"
#include "ardour/export_filename.h"
+#include "ardour/session_metadata.h"
#include "i18n.h"
@@ -281,13 +283,18 @@ ExportHandler::finish_timespan ()
while (config_map.begin() != timespan_bounds.second) {
ExportFormatSpecPtr fmt = config_map.begin()->second.format;
+ std::string filename = config_map.begin()->second.filename->get_path(fmt);
if (fmt->with_cue()) {
- export_cd_marker_file (current_timespan, fmt, config_map.begin()->second.filename->get_path(fmt), CDMarkerCUE);
- }
+ export_cd_marker_file (current_timespan, fmt, filename, CDMarkerCUE);
+ }
if (fmt->with_toc()) {
- export_cd_marker_file (current_timespan, fmt, config_map.begin()->second.filename->get_path(fmt), CDMarkerTOC);
+ export_cd_marker_file (current_timespan, fmt, filename, CDMarkerTOC);
+ }
+
+ if (fmt->tag()) {
+ AudiofileTagger::tag_file(filename, *SessionMetadata::Metadata());
}
config_map.erase (config_map.begin());
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 84693af541..5874ac3b1b 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -539,8 +539,8 @@ ARDOUR::set_translations_enabled (bool yn)
c = '0';
}
- ::write (fd, &c, 1);
- ::close (fd);
+ (void) ::write (fd, &c, 1);
+ (void) ::close (fd);
return true;
}
diff --git a/libs/ardour/iec1ppmdsp.cc b/libs/ardour/iec1ppmdsp.cc
index 79a572da1c..842d33b8b5 100644
--- a/libs/ardour/iec1ppmdsp.cc
+++ b/libs/ardour/iec1ppmdsp.cc
@@ -41,7 +41,7 @@ Iec1ppmdsp::~Iec1ppmdsp (void)
}
-void Iec1ppmdsp::process (float *p, int n)
+void Iec1ppmdsp::process (float const *p, int n)
{
float z1, z2, m, t;
diff --git a/libs/ardour/iec2ppmdsp.cc b/libs/ardour/iec2ppmdsp.cc
index caca744c52..d65f51b3fa 100644
--- a/libs/ardour/iec2ppmdsp.cc
+++ b/libs/ardour/iec2ppmdsp.cc
@@ -41,7 +41,7 @@ Iec2ppmdsp::~Iec2ppmdsp (void)
}
-void Iec2ppmdsp::process (float *p, int n)
+void Iec2ppmdsp::process (float const *p, int n)
{
float z1, z2, m, t;
diff --git a/libs/ardour/instrument_info.cc b/libs/ardour/instrument_info.cc
index 725dc3b5e9..d6c18ebd4d 100644
--- a/libs/ardour/instrument_info.cc
+++ b/libs/ardour/instrument_info.cc
@@ -119,7 +119,7 @@ InstrumentInfo::get_controller_name (Evoral::Parameter param) const
}
boost::shared_ptr<ChannelNameSet> chan_names(
- dev_names->channel_name_set_by_device_mode_and_channel(
+ dev_names->channel_name_set_by_channel(
external_instrument_mode, param.channel()));
if (!chan_names) {
return "";
diff --git a/libs/ardour/internal_send.cc b/libs/ardour/internal_send.cc
index 8136985e1f..dac1839a5e 100644
--- a/libs/ardour/internal_send.cc
+++ b/libs/ardour/internal_send.cc
@@ -95,12 +95,22 @@ InternalSend::use_target (boost::shared_ptr<Route> sendto)
target_connections.drop_connections ();
_send_to->DropReferences.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_going_away, this));
- _send_to->PropertyChanged.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_property_changed, this, _1));;
+ _send_to->PropertyChanged.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_property_changed, this, _1));
+ _send_to->io_changed.connect_same_thread (target_connections, boost::bind (&InternalSend::target_io_changed, this));
return 0;
}
void
+InternalSend::target_io_changed ()
+{
+ assert (_send_to);
+ mixbufs.ensure_buffers (_send_to->internal_return()->input_streams(), _session.get_block_size());
+ mixbufs.set_count (_send_to->internal_return()->input_streams());
+ reset_panner();
+}
+
+void
InternalSend::send_to_going_away ()
{
target_connections.drop_connections ();
@@ -128,7 +138,19 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame
uint32_t const bufs_audio = bufs.count().get (DataType::AUDIO);
uint32_t const mixbufs_audio = mixbufs.count().get (DataType::AUDIO);
- assert (mixbufs.available().get (DataType::AUDIO) >= bufs_audio);
+ /* monitor-section has same number of channels as master-bus (on creation).
+ *
+ * There is no clear answer what should happen when trying to PFL or AFL
+ * a track that has more channels (bufs_audio from source-track is
+ * larger than mixbufs).
+ *
+ * There are two options:
+ * 1: discard additional channels (current)
+ * OR
+ * 2: require the monitor-section to have at least as many channels
+ * as the largest count of any route
+ */
+ //assert (mixbufs.available().get (DataType::AUDIO) >= bufs_audio);
/* Copy bufs into mixbufs, going round bufs more than once if necessary
to ensure that every mixbuf gets some data.
diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc
index ebd295411e..2cc213f797 100644
--- a/libs/ardour/io.cc
+++ b/libs/ardour/io.cc
@@ -1414,7 +1414,7 @@ IO::find_port_hole (const char* base)
std::vector<char> buf (AudioEngine::instance()->port_name_size());
PortSet::iterator i = _ports.begin();
- snprintf (&buf[0], jack_port_name_size(), _("%s %u"), base, n);
+ snprintf (&buf[0], buf.size()+1, _("%s %u"), base, n);
for ( ; i != _ports.end(); ++i) {
if (string(i->name()) == string(&buf[0])) {
diff --git a/libs/ardour/kmeterdsp.cc b/libs/ardour/kmeterdsp.cc
index 35c95c2daf..add026797d 100644
--- a/libs/ardour/kmeterdsp.cc
+++ b/libs/ardour/kmeterdsp.cc
@@ -42,7 +42,7 @@ void Kmeterdsp::init (int fsamp)
_omega = 9.72f / fsamp; // ballistic filter coefficient
}
-void Kmeterdsp::process (float *p, int n)
+void Kmeterdsp::process (float const *p, int n)
{
// Called by JACK's process callback.
//
diff --git a/libs/ardour/linux_vst_support.cc b/libs/ardour/linux_vst_support.cc
index 1fccf79968..9d36905f48 100644
--- a/libs/ardour/linux_vst_support.cc
+++ b/libs/ardour/linux_vst_support.cc
@@ -242,7 +242,15 @@ vstfx_load (const char *path)
/*Find the main entry point into the plugin*/
- if ((fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "main")) == 0)
+ fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "main");
+
+ if (fhandle->main_entry == 0) {
+ if ((fhandle->main_entry = (main_entry_t) dlsym(fhandle->dll, "VSTPluginMain")) != 0) {
+ PBD::warning << path << _(": is a VST >= 2.4 - this plugin may or may not function correctly with this version of Ardour.") << endmsg;
+ }
+ }
+
+ if (fhandle->main_entry == 0)
{
/*If it can't be found, unload the plugin and return a 0 handle*/
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index 6288616824..f24aa653bb 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -144,6 +144,8 @@ public:
LilvNode* ui_GtkUI;
LilvNode* ui_external;
LilvNode* ui_externalkx;
+ LilvNode* units_unit;
+ LilvNode* units_midiNote;
private:
bool _bundle_checked;
@@ -1092,7 +1094,14 @@ LV2Plugin::do_save_preset(string name)
lilv_state_free(state);
- return Glib::filename_to_uri(Glib::build_filename(bundle, file_name));
+ std::string uri = Glib::filename_to_uri(Glib::build_filename(bundle, file_name));
+ LilvNode *node_bundle = lilv_new_uri(_world.world, Glib::filename_to_uri(Glib::build_filename(bundle, "/")).c_str());
+ LilvNode *node_preset = lilv_new_uri(_world.world, uri.c_str());
+ lilv_world_load_bundle(_world.world, node_bundle);
+ lilv_world_load_resource(_world.world, node_preset);
+ lilv_node_free(node_bundle);
+ lilv_node_free(node_preset);
+ return uri;
}
void
@@ -1161,10 +1170,14 @@ LV2Plugin::write_from_ui(uint32_t index,
* e.g 48kSPS / 128fpp -> audio-periods = 375 Hz
* ui-periods = 25 Hz (SuperRapidScreenUpdate)
* default minimumSize = 32K (see LV2Plugin::allocate_atom_event_buffers()
- * -> 15 * 32K
- * it is safe to overflow (but the plugin state may be inconsistent).
+ *
+ * it is NOT safe to overflow (msg.size will be misinterpreted)
*/
- rbs = max((size_t) 32768 * 6, rbs);
+ uint32_t bufsiz = 32768;
+ if (_atom_ev_buffers && _atom_ev_buffers[0]) {
+ bufsiz = lv2_evbuf_get_capacity(_atom_ev_buffers[0]);
+ }
+ rbs = max((size_t) bufsiz * 8, rbs);
_from_ui = new RingBuffer<uint8_t>(rbs);
}
@@ -1193,8 +1206,12 @@ LV2Plugin::enable_ui_emmission()
{
if (!_to_ui) {
/* see note in LV2Plugin::write_from_ui() */
+ uint32_t bufsiz = 32768;
+ if (_atom_ev_buffers && _atom_ev_buffers[0]) {
+ bufsiz = lv2_evbuf_get_capacity(_atom_ev_buffers[0]);
+ }
size_t rbs = _session.engine().raw_buffer_size(DataType::MIDI) * NBUFS;
- rbs = max((size_t) 32768 * 8, rbs);
+ rbs = max((size_t) bufsiz * 8, rbs);
_to_ui = new RingBuffer<uint8_t>(rbs);
}
}
@@ -1329,8 +1346,10 @@ LV2Plugin::get_parameter_descriptor(uint32_t which, ParameterDescriptor& desc) c
{
const LilvPort* port = lilv_plugin_get_port_by_index(_impl->plugin, which);
+ LilvNodes* portunits;
LilvNode *def, *min, *max;
lilv_port_get_range(_impl->plugin, port, &def, &min, &max);
+ portunits = lilv_port_get_value(_impl->plugin, port, _world.units_unit);
desc.integer_step = lilv_port_has_property(_impl->plugin, port, _world.lv2_integer);
desc.toggled = lilv_port_has_property(_impl->plugin, port, _world.lv2_toggled);
@@ -1339,6 +1358,8 @@ LV2Plugin::get_parameter_descriptor(uint32_t which, ParameterDescriptor& desc) c
desc.label = lilv_node_as_string(lilv_port_get_name(_impl->plugin, port));
desc.lower = min ? lilv_node_as_float(min) : 0.0f;
desc.upper = max ? lilv_node_as_float(max) : 1.0f;
+ desc.midinote = lilv_nodes_contains(portunits, _world.units_midiNote);
+
if (desc.sr_dependent) {
desc.lower *= _session.frame_rate ();
desc.upper *= _session.frame_rate ();
@@ -1363,6 +1384,7 @@ LV2Plugin::get_parameter_descriptor(uint32_t which, ParameterDescriptor& desc) c
lilv_node_free(def);
lilv_node_free(min);
lilv_node_free(max);
+ lilv_nodes_free(portunits);
return 0;
}
@@ -1502,7 +1524,7 @@ LV2Plugin::allocate_atom_event_buffers()
return;
}
- DEBUG_TRACE(DEBUG::LV2, string_compose("allocate %1 atom_ev_buffers\n", total_atom_buffers));
+ DEBUG_TRACE(DEBUG::LV2, string_compose("allocate %1 atom_ev_buffers of %d bytes\n", total_atom_buffers, minimumSize));
_atom_ev_buffers = (LV2_Evbuf**) malloc((total_atom_buffers + 1) * sizeof(LV2_Evbuf*));
for (int i = 0; i < total_atom_buffers; ++i ) {
_atom_ev_buffers[i] = lv2_evbuf_new(minimumSize, LV2_EVBUF_ATOM,
@@ -1675,6 +1697,9 @@ LV2Plugin::connect_and_run(BufferSet& bufs,
}
} else if (!valid) {
// Nothing we understand or care about, connect to scratch
+ // see note for midi-buffer size above
+ scratch_bufs.ensure_lv2_bufsize((flags & PORT_INPUT),
+ 0, _port_minimumSize[port_index]);
_ev_buffers[port_index] = scratch_bufs.get_lv2_midi(
(flags & PORT_INPUT), 0, (flags & PORT_EVENT));
}
@@ -1966,10 +1991,14 @@ LV2World::LV2World()
ui_GtkUI = lilv_new_uri(world, LV2_UI__GtkUI);
ui_external = lilv_new_uri(world, "http://lv2plug.in/ns/extensions/ui#external");
ui_externalkx = lilv_new_uri(world, "http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget");
+ units_unit = lilv_new_uri(world, "http://lv2plug.in/ns/extensions/units#unit");
+ units_midiNote = lilv_new_uri(world, "http://lv2plug.in/ns/extensions/units#midiNote");
}
LV2World::~LV2World()
{
+ lilv_node_free(units_midiNote);
+ lilv_node_free(units_unit);
lilv_node_free(ui_externalkx);
lilv_node_free(ui_external);
lilv_node_free(ui_GtkUI);
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index 6c5470bbb9..80690bd744 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -108,8 +108,12 @@ PeakMeter::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end_fr
// Meter audio in to the rest of the peaks
for (uint32_t i = 0; i < n_audio; ++i, ++n) {
- _peak_signal[n] = compute_peak (bufs.get_audio(i).data(), nframes, _peak_signal[n]);
- if (_meter_type & (MeterKrms | MeterK20 | MeterK14)) {
+ if (bufs.get_audio(i).silent()) {
+ _peak_signal[n] = .0f;
+ } else {
+ _peak_signal[n] = compute_peak (bufs.get_audio(i).data(), nframes, _peak_signal[n]);
+ }
+ if (_meter_type & (MeterKrms | MeterK20 | MeterK14 | MeterK12)) {
_kmeter[i]->process(bufs.get_audio(i).data(), nframes);
}
if (_meter_type & (MeterIEC1DIN | MeterIEC1NOR)) {
@@ -289,7 +293,7 @@ PeakMeter::meter ()
/* 0.01f ^= 100 Hz update rate */
const float midi_meter_falloff = Config->get_meter_falloff() * 0.01f;
/* kmeters: 24dB / 2 sec */
- const float audio_meter_falloff = (_meter_type & (MeterK20 | MeterK14)) ? 0.12f : midi_meter_falloff;
+ const float audio_meter_falloff = (_meter_type & (MeterK20 | MeterK14 | MeterK12)) ? 0.12f : midi_meter_falloff;
for (size_t n = 0; n < limit; ++n) {
@@ -346,6 +350,7 @@ PeakMeter::meter_level(uint32_t n, MeterType type) {
case MeterKrms:
case MeterK20:
case MeterK14:
+ case MeterK12:
{
const uint32_t n_midi = current_meters.n_midi();
if (CHECKSIZE(_kmeter)) {
@@ -405,7 +410,7 @@ PeakMeter::set_type(MeterType t)
_meter_type = t;
- if (t & (MeterKrms | MeterK20 | MeterK14)) {
+ if (t & (MeterKrms | MeterK20 | MeterK14 | MeterK12)) {
const size_t n_audio = current_meters.n_audio();
for (size_t n = 0; n < n_audio; ++n) {
_kmeter[n]->reset();
diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc
index d75b861ea1..1a6cb7fa26 100644
--- a/libs/ardour/midi_buffer.cc
+++ b/libs/ardour/midi_buffer.cc
@@ -33,12 +33,12 @@ using namespace PBD;
// FIXME: mirroring for MIDI buffers?
MidiBuffer::MidiBuffer(size_t capacity)
- : Buffer(DataType::MIDI, capacity)
- , _data(0)
+ : Buffer (DataType::MIDI)
+ , _data (0)
{
if (capacity) {
- resize(_capacity);
- silence(_capacity);
+ resize (capacity);
+ silence (capacity);
}
}
@@ -50,17 +50,22 @@ MidiBuffer::~MidiBuffer()
void
MidiBuffer::resize(size_t size)
{
- assert(size > 0);
+ if (_data && size < _capacity) {
+
+ if (_size < size) {
+ /* truncate */
+ _size = size;
+ }
- if (size < _capacity) {
return;
}
- free(_data);
+ free (_data);
+
+ cache_aligned_malloc ((void**) &_data, size);
_size = 0;
_capacity = size;
- cache_aligned_malloc ((void**) &_data, _capacity);
assert(_data);
}
diff --git a/libs/ardour/midi_clock_slave.cc b/libs/ardour/midi_clock_slave.cc
index a52854d954..8c95272fde 100644
--- a/libs/ardour/midi_clock_slave.cc
+++ b/libs/ardour/midi_clock_slave.cc
@@ -44,7 +44,7 @@ using namespace PBD;
MIDIClock_Slave::MIDIClock_Slave (Session& s, MidiPort& p, int ppqn)
: ppqn (ppqn)
- , bandwidth (10.0 / 60.0) // 1 BpM = 1 / 60 Hz
+ , bandwidth (2.0 / 60.0) // 1 BpM = 1 / 60 Hz
{
session = (ISlaveSessionProxy *) new SlaveSessionProxy(s);
rebind (p);
@@ -54,7 +54,7 @@ MIDIClock_Slave::MIDIClock_Slave (Session& s, MidiPort& p, int ppqn)
MIDIClock_Slave::MIDIClock_Slave (ISlaveSessionProxy* session_proxy, int ppqn)
: session(session_proxy)
, ppqn (ppqn)
- , bandwidth (10.0 / 60.0) // 1 BpM = 1 / 60 Hz
+ , bandwidth (2.0 / 60.0) // 1 BpM = 1 / 60 Hz
{
reset ();
}
@@ -122,6 +122,8 @@ MIDIClock_Slave::update_midi_clock (Parser& /*parser*/, framepos_t timestamp)
return;
}
+ pframes_t cycle_offset = timestamp - session->sample_time_at_cycle_start();
+
calculate_one_ppqn_in_frames_at(should_be_position);
framepos_t elapsed_since_start = timestamp - first_timestamp;
@@ -133,6 +135,8 @@ MIDIClock_Slave::update_midi_clock (Parser& /*parser*/, framepos_t timestamp)
first_timestamp = timestamp;
elapsed_since_start = should_be_position;
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("first clock message after start received @ %1\n", timestamp));
+
// calculate filter coefficients
calculate_filter_coefficients();
@@ -152,7 +156,7 @@ MIDIClock_Slave::update_midi_clock (Parser& /*parser*/, framepos_t timestamp)
// we use session->transport_frame() instead of t1 here
// because t1 is used to calculate the transport speed,
// so the loop will compensate for accumulating rounding errors
- error = (double(should_be_position) - double(session->transport_frame()));
+ error = (double(should_be_position) - (double(session->transport_frame()) + double(cycle_offset)));
e = error / double(session->frame_rate());
current_delta = error;
@@ -162,21 +166,23 @@ MIDIClock_Slave::update_midi_clock (Parser& /*parser*/, framepos_t timestamp)
e2 += c * e;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("clock #%1 @ %2 arrived %3 (theoretical) audible %4 transport %5 error %6 "
- "read delta %7 should-be delta %8 t1-t0 %9 t0 %10 t1 %11 framerate %12 appspeed %13\n",
- midi_clock_count,
- elapsed_since_start,
- should_be_position,
- session->audible_frame(),
- session->transport_frame(),
- error,
- timestamp - last_timestamp,
- one_ppqn_in_frames,
- (t1 -t0) * session->frame_rate(),
- t0 * session->frame_rate(),
- t1 * session->frame_rate(),
- session->frame_rate(),
- ((t1 - t0) * session->frame_rate()) / one_ppqn_in_frames));
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("clock #%1 @ %2 should-be %3 transport %4 error %5 appspeed %6 "
+ "read-delta %7 should-be delta %8 t1-t0 %9 t0 %10 t1 %11 framerate %12 engine %13\n",
+ midi_clock_count, // #
+ elapsed_since_start, // @
+ should_be_position, // should-be
+ session->transport_frame(), // transport
+ error, // error
+ ((t1 - t0) * session->frame_rate()) / one_ppqn_in_frames, // appspeed
+ timestamp - last_timestamp, // read delta
+ one_ppqn_in_frames, // should-be delta
+ (t1 - t0) * session->frame_rate(), // t1-t0
+ t0 * session->frame_rate(), // t0
+ t1 * session->frame_rate(), // t1
+ session->frame_rate(), // framerate
+ session->frame_time()
+
+ ));
last_timestamp = timestamp;
}
@@ -184,7 +190,7 @@ MIDIClock_Slave::update_midi_clock (Parser& /*parser*/, framepos_t timestamp)
void
MIDIClock_Slave::start (Parser& /*parser*/, framepos_t timestamp)
{
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("MIDIClock_Slave got start message at time %1 engine time %2\n", timestamp, session->frame_time()));
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("MIDIClock_Slave got start message at time %1 engine time %2 transport_frame %3\n", timestamp, session->frame_time(), session->transport_frame()));
if (!_started) {
reset();
@@ -199,6 +205,8 @@ MIDIClock_Slave::start (Parser& /*parser*/, framepos_t timestamp)
void
MIDIClock_Slave::reset ()
{
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("MidiClock_Slave reset(): calculated filter bandwidth is %1 for period size %2\n", bandwidth, session->frames_per_cycle()));
+
should_be_position = session->transport_frame();
last_timestamp = 0;
@@ -344,7 +352,7 @@ MIDIClock_Slave::speed_and_position (double& speed, framepos_t& pos)
pos = should_be_position;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("speed_and_position: %1 & %2 <-> %3 (transport)\n", speed, pos, session->transport_frame()));
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("speed_and_position: speed %1 should-be %2 transport %3 \n", speed, pos, session->transport_frame()));
return true;
}
diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc
index 5c1f65d96b..716d511798 100644
--- a/libs/ardour/midi_model.cc
+++ b/libs/ardour/midi_model.cc
@@ -1018,6 +1018,7 @@ MidiModel::PatchChangeDiffCommand::change_channel (PatchChangePtr patch, uint8_t
c.patch = patch;
c.old_channel = patch->channel ();
c.new_channel = channel;
+ c.patch_id = patch->id();
_changes.push_back (c);
}
@@ -1030,6 +1031,7 @@ MidiModel::PatchChangeDiffCommand::change_program (PatchChangePtr patch, uint8_t
c.patch = patch;
c.old_program = patch->program ();
c.new_program = program;
+ c.patch_id = patch->id();
_changes.push_back (c);
}
diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc
index de2263fad6..55280eb942 100644
--- a/libs/ardour/midi_port.cc
+++ b/libs/ardour/midi_port.cc
@@ -158,13 +158,13 @@ MidiPort::resolve_notes (void* port_buffer, MidiBuffer::TimeType when)
*/
if (port_engine.midi_event_put (port_buffer, when, ev, 3) != 0) {
- cerr << "failed to deliver sustain-zero on channel " << channel << " on port " << name() << endl;
+ cerr << "failed to deliver sustain-zero on channel " << (int)channel << " on port " << name() << endl;
}
ev[1] = MIDI_CTL_ALL_NOTES_OFF;
if (port_engine.midi_event_put (port_buffer, 0, ev, 3) != 0) {
- cerr << "failed to deliver ALL NOTES OFF on channel " << channel << " on port " << name() << endl;
+ cerr << "failed to deliver ALL NOTES OFF on channel " << (int)channel << " on port " << name() << endl;
}
}
}
@@ -174,12 +174,21 @@ MidiPort::flush_buffers (pframes_t nframes)
{
if (sends_output ()) {
- void* port_buffer = port_engine.get_buffer (_port_handle, nframes);
+ void* port_buffer = 0;
if (_resolve_required) {
+ port_buffer = port_engine.get_buffer (_port_handle, nframes);
/* resolve all notes at the start of the buffer */
resolve_notes (port_buffer, 0);
_resolve_required = false;
+ }
+
+ if (_buffer->empty()) {
+ return;
+ }
+
+ if (!port_buffer) {
+ port_buffer = port_engine.get_buffer (_port_handle, nframes);
}
for (MidiBuffer::iterator i = _buffer->begin(); i != _buffer->end(); ++i) {
@@ -196,11 +205,16 @@ MidiPort::flush_buffers (pframes_t nframes)
<< ev.time() << " > " << _global_port_buffer_offset + _port_buffer_offset << endl;
}
} else {
- cerr << "drop flushed event on the floor, time " << ev
+ cerr << "drop flushed event on the floor, time " << ev.time()
<< " to early for " << _global_port_buffer_offset
<< " + " << _port_buffer_offset << endl;
}
}
+
+ /* done.. the data has moved to the port buffer, mark it so
+ */
+
+ _buffer->clear ();
}
}
diff --git a/libs/ardour/midi_ui.cc b/libs/ardour/midi_ui.cc
index e6d49175bd..06940c1e34 100644
--- a/libs/ardour/midi_ui.cc
+++ b/libs/ardour/midi_ui.cc
@@ -39,7 +39,6 @@ using namespace Glib;
#include "i18n.h"
-BaseUI::RequestType MidiControlUI::PortChange = BaseUI::new_request_type();
MidiControlUI* MidiControlUI::_instance = 0;
#include "pbd/abstract_ui.cc" /* instantiate the template */
@@ -60,25 +59,10 @@ MidiControlUI::~MidiControlUI ()
void
MidiControlUI::do_request (MidiUIRequest* req)
{
- if (req->type == PortChange) {
-
- /* restart event loop with new ports */
- DEBUG_TRACE (DEBUG::MidiIO, "reset ports\n");
- reset_ports ();
-
+ if (req->type == Quit) {
+ BaseUI::quit ();
} else if (req->type == CallSlot) {
-
-#ifndef NDEBUG
- if (getenv ("DEBUG_THREADED_SIGNALS")) {
- cerr << "MIDI UI calls a slot\n";
- }
-#endif
-
req->the_slot ();
-
- } else if (req->type == Quit) {
-
- BaseUI::quit ();
}
}
@@ -119,23 +103,37 @@ MidiControlUI::clear_ports ()
void
MidiControlUI::reset_ports ()
{
- if (port_sources.empty()) {
- AsyncMIDIPort* async = dynamic_cast<AsyncMIDIPort*> (_session.midi_input_port());
-
- if (!async) {
- return;
- }
-
- int fd;
+ if (!port_sources.empty()) {
+ return;
+ }
+
+ vector<AsyncMIDIPort*> ports;
+ AsyncMIDIPort* p;
+
+ if ((p = dynamic_cast<AsyncMIDIPort*> (_session.midi_input_port()))) {
+ ports.push_back (p);
+ }
+
+
+ if ((p = dynamic_cast<AsyncMIDIPort*> (_session.mmc_input_port()))) {
+ ports.push_back (p);
+ }
+
+ if (ports.empty()) {
+ return;
+ }
+
+ int fd;
+ for (vector<AsyncMIDIPort*>::const_iterator pi = ports.begin(); pi != ports.end(); ++pi) {
- if ((fd = async->selectable ()) >= 0) {
+ if ((fd = (*pi)->selectable ()) >= 0) {
Glib::RefPtr<IOSource> psrc = IOSource::create (fd, IO_IN|IO_HUP|IO_ERR);
- psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), async));
+ psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), *pi));
psrc->attach (_main_loop->get_context());
-
+
// glibmm hack: for now, store only the GSource*
-
+
port_sources.push_back (psrc->gobj());
g_source_ref (psrc->gobj());
}
diff --git a/libs/ardour/midiport_manager.cc b/libs/ardour/midiport_manager.cc
index d17401cee8..6de0436586 100644
--- a/libs/ardour/midiport_manager.cc
+++ b/libs/ardour/midiport_manager.cc
@@ -68,11 +68,11 @@ MidiPortManager::create_ports ()
return;
}
- _midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MIDI control in"), true);
- _midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MIDI control out"), true);
+ _midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI control in"), true);
+ _midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MIDI control out"), true);
- _mmc_in = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MMC in"), true);
- _mmc_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MMC out"), true);
+ _mmc_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MMC in"), true);
+ _mmc_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MMC out"), true);
/* XXX nasty type conversion needed because of the mixed inheritance
* required to integrate MIDI::IPMidiPort and ARDOUR::AsyncMIDIPort.
@@ -93,14 +93,14 @@ MidiPortManager::create_ports ()
boost::shared_ptr<ARDOUR::Port> p;
- p = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MTC in"));
+ p = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MTC in"));
_mtc_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
- p = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MTC out"));
+ p = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MTC out"));
_mtc_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
- p = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MIDI Clock in"));
+ p = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI Clock in"));
_midi_clock_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
- p = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MIDI Clock out"));
+ p = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MIDI Clock out"));
_midi_clock_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
/* These ports all need their incoming data handled in
diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc
index 0dee2a071b..1a1c5f2bec 100644
--- a/libs/ardour/mtc_slave.cc
+++ b/libs/ardour/mtc_slave.cc
@@ -309,11 +309,7 @@ MTC_Slave::update_mtc_time (const MIDI::byte *msg, bool was_full, framepos_t now
to use a timestamp indicating when this MTC time was received. example: when we received
a locate command via MMC.
*/
-#ifdef COMPILER_MSVC
- DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", ::pthread_self().p));
-#else
- DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", ::pthread_self()));
-#endif
+ DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", pthread_name()));
TimecodeFormat tc_format;
bool reset_tc = true;
diff --git a/libs/ardour/panner_manager.cc b/libs/ardour/panner_manager.cc
index 8611c7bc86..0084a62285 100644
--- a/libs/ardour/panner_manager.cc
+++ b/libs/ardour/panner_manager.cc
@@ -24,7 +24,8 @@
#include "pbd/error.h"
#include "pbd/compose.h"
-#include "pbd/file_utils.h"
+#include "pbd/pathscanner.h"
+#include "pbd/stl_delete.h"
#include "ardour/debug.h"
#include "ardour/panner_manager.h"
@@ -60,29 +61,31 @@ PannerManager::instance ()
return *_instance;
}
+static bool panner_filter (const string& str, void */*arg*/)
+{
+#ifdef __APPLE__
+ return str[0] != '.' && (str.length() > 6 && str.find (".dylib") == (str.length() - 6));
+#else
+ return str[0] != '.' && (str.length() > 3 && (str.find (".so") == (str.length() - 3) || str.find (".dll") == (str.length() - 4)));
+#endif
+}
+
void
PannerManager::discover_panners ()
{
- vector<std::string> panner_modules;
-
- Glib::PatternSpec so_extension_pattern("*.so");
- Glib::PatternSpec dylib_extension_pattern("*.dylib");
- Glib::PatternSpec dll_extension_pattern("*.dll");
-
- find_matching_files_in_search_path (panner_search_path (),
- so_extension_pattern, panner_modules);
-
- find_matching_files_in_search_path (panner_search_path (),
- dylib_extension_pattern, panner_modules);
+ PathScanner scanner;
+ std::vector<std::string *> *panner_modules;
+ std::string search_path = panner_search_path().to_string();
- find_matching_files_in_search_path (panner_search_path (),
- dll_extension_pattern, panner_modules);
+ DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), search_path));
- DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1"), panner_search_path().to_string()));
+ panner_modules = scanner (search_path, panner_filter, 0, false, true, 1, true);
- for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
- panner_discover (*i);
+ for (vector<std::string *>::iterator i = panner_modules->begin(); i != panner_modules->end(); ++i) {
+ panner_discover (**i);
}
+
+ vector_delete (panner_modules);
}
int
@@ -102,7 +105,7 @@ PannerManager::panner_discover (string path)
if (i == panner_info.end()) {
panner_info.push_back (pinfo);
- DEBUG_TRACE (DEBUG::Panning, string_compose(_("Panner discovered: \"%1\" in %2"), pinfo->descriptor.name, path));
+ DEBUG_TRACE (DEBUG::Panning, string_compose(_("Panner discovered: \"%1\" in %2\n"), pinfo->descriptor.name, path));
}
}
@@ -145,53 +148,109 @@ PannerManager::get_descriptor (string path)
}
PannerInfo*
-PannerManager::select_panner (ChanCount in, ChanCount out)
+PannerManager::select_panner (ChanCount in, ChanCount out, std::string const uri)
{
+ PannerInfo* rv = NULL;
PanPluginDescriptor* d;
int32_t nin = in.n_audio();
int32_t nout = out.n_audio();
+ uint32_t priority = 0;
+
+ /* look for user-preference -- check if channels match */
+ for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
+ d = &(*p)->descriptor;
+ if (d->panner_uri != uri) continue;
+ if (d->in != nin && d->in != -1) continue;
+ if (d->out != nout && d->out != -1) continue;
+ return *p;
+ }
/* look for exact match first */
for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
d = &(*p)->descriptor;
- if (d->in == nin && d->out == nout) {
- return *p;
+ if (d->in == nin && d->out == nout && d->priority > priority) {
+ priority = d->priority;
+ rv = *p;
}
}
+ if (rv) { return rv; }
/* no exact match, look for good fit on inputs and variable on outputs */
+ priority = 0;
for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
d = &(*p)->descriptor;
- if (d->in == nin && d->out == -1) {
- return *p;
+ if (d->in == nin && d->out == -1 && d->priority > priority) {
+ priority = d->priority;
+ rv = *p;
}
}
+ if (rv) { return rv; }
/* no exact match, look for good fit on outputs and variable on inputs */
+ priority = 0;
for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
d = &(*p)->descriptor;
- if (d->in == -1 && d->out == nout) {
- return *p;
+ if (d->in == -1 && d->out == nout && d->priority > priority) {
+ priority = d->priority;
+ rv = *p;
}
}
+ if (rv) { return rv; }
/* no exact match, look for variable fit on inputs and outputs */
+ priority = 0;
for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
d = &(*p)->descriptor;
- if (d->in == -1 && d->out == -1) {
- return *p;
+ if (d->in == -1 && d->out == -1 && d->priority > priority) {
+ priority = d->priority;
+ rv = *p;
}
}
+ if (rv) { return rv; }
warning << string_compose (_("no panner discovered for in/out = %1/%2"), nin, nout) << endmsg;
return 0;
}
+
+PannerInfo*
+PannerManager::get_by_uri (std::string uri) const
+{
+ PannerInfo* pi = NULL;
+ for (list<PannerInfo*>::const_iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
+ if ((*p)->descriptor.panner_uri != uri) continue;
+ pi = (*p);
+ break;
+ }
+ return pi;
+}
+
+PannerUriMap
+PannerManager::get_available_panners(uint32_t const a_in, uint32_t const a_out) const
+{
+ int const in = a_in;
+ int const out = a_out;
+ PannerUriMap panner_list;
+
+ if (out < 2 || in == 0) {
+ return panner_list;
+ }
+
+ /* get available panners for current configuration. */
+ for (list<PannerInfo*>::const_iterator p = panner_info.begin(); p != panner_info.end(); ++p) {
+ PanPluginDescriptor* d = &(*p)->descriptor;
+ if (d->in != -1 && d->in != in) continue;
+ if (d->out != -1 && d->out != out) continue;
+ if (d->in == -1 && d->out == -1 && out <= 2) continue;
+ panner_list.insert(std::pair<std::string,std::string>(d->panner_uri,d->name));
+ }
+ return panner_list;
+}
diff --git a/libs/ardour/panner_search_path.cc b/libs/ardour/panner_search_path.cc
index 100c406edd..c400aa6c3b 100644
--- a/libs/ardour/panner_search_path.cc
+++ b/libs/ardour/panner_search_path.cc
@@ -35,10 +35,11 @@ Searchpath
panner_search_path ()
{
Searchpath spath(user_config_directory ());
+
spath += ardour_dll_directory ();
spath.add_subdirectory_to_paths(panner_dir_name);
-
spath += Searchpath(Glib::getenv(panner_env_variable_name));
+
return spath;
}
diff --git a/libs/ardour/panner_shell.cc b/libs/ardour/panner_shell.cc
index 1aeb94eb7e..75543433c5 100644
--- a/libs/ardour/panner_shell.cc
+++ b/libs/ardour/panner_shell.cc
@@ -43,8 +43,10 @@
#include "evoral/Curve.hpp"
#include "ardour/audio_buffer.h"
+#include "ardour/audioengine.h"
#include "ardour/buffer_set.h"
#include "ardour/debug.h"
+#include "ardour/pannable.h"
#include "ardour/panner.h"
#include "ardour/panner_manager.h"
#include "ardour/panner_shell.h"
@@ -59,17 +61,31 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
-PannerShell::PannerShell (string name, Session& s, boost::shared_ptr<Pannable> p)
+PannerShell::PannerShell (string name, Session& s, boost::shared_ptr<Pannable> p, bool is_send)
: SessionObject (s, name)
- , _pannable (p)
+ , _pannable_route (p)
+ , _is_send (is_send)
+ , _panlinked (true)
, _bypassed (false)
+ , _current_panner_uri("")
+ , _user_selected_panner_uri("")
+ , _panner_gui_uri("")
+ , _force_reselect (false)
{
+ if (is_send) {
+ _pannable_internal.reset(new Pannable (s));
+ if (Config->get_link_send_and_route_panner()) {
+ _panlinked = true;
+ } else {
+ _panlinked = false;
+ }
+ }
set_name (name);
}
PannerShell::~PannerShell ()
{
- DEBUG_TRACE(DEBUG::Destruction, string_compose ("panner shell %3 for %1 destructor, panner is %4, pannable is %2\n", _name, _pannable, this, _panner));
+ DEBUG_TRACE(DEBUG::Destruction, string_compose ("panner shell %3 for %1 destructor, panner is %4, pannable is %2\n", _name, _pannable_route, this, _panner));
}
void
@@ -82,25 +98,33 @@ PannerShell::configure_io (ChanCount in, ChanCount out)
the config hasn't changed, we're done.
*/
- if (_panner && (_panner->in().n_audio() == nins) && (_panner->out().n_audio() == nouts)) {
+ if (!_force_reselect && _panner && (_panner->in().n_audio() == nins) && (_panner->out().n_audio() == nouts)) {
return;
}
+ _force_reselect = false;
if (nouts < 2 || nins == 0) {
/* no need for panning with less than 2 outputs or no inputs */
if (_panner) {
_panner.reset ();
+ _current_panner_uri = "";
+ _panner_gui_uri = "";
+ if (!_is_send || !_panlinked) {
+ pannable()->set_panner(_panner);
+ }
Changed (); /* EMIT SIGNAL */
}
return;
}
- PannerInfo* pi = PannerManager::instance().select_panner (in, out);
+ PannerInfo* pi = PannerManager::instance().select_panner (in, out, _user_selected_panner_uri);
if (!pi) {
cerr << "No panner found: check that panners are being discovered correctly during startup.\n";
assert (pi);
}
+ DEBUG_TRACE (DEBUG::Panning, string_compose (_("select panner: %1\n"), pi->descriptor.name.c_str()));
+
boost::shared_ptr<Speakers> speakers = _session.get_speakers ();
if (nouts != speakers->size()) {
@@ -112,11 +136,17 @@ PannerShell::configure_io (ChanCount in, ChanCount out)
speakers.reset (s);
}
- Panner* p = pi->descriptor.factory (_pannable, speakers);
+ /* TODO don't allow to link _is_send if internal & route panners are different types */
+ Panner* p = pi->descriptor.factory (pannable(), speakers);
// boost_debug_shared_ptr_mark_interesting (p, "Panner");
_panner.reset (p);
_panner->configure_io (in, out);
+ _current_panner_uri = pi->descriptor.panner_uri;
+ _panner_gui_uri = pi->descriptor.gui_uri;
+ if (!_is_send || !_panlinked) {
+ pannable()->set_panner(_panner);
+ }
Changed (); /* EMIT SIGNAL */
}
@@ -126,8 +156,10 @@ PannerShell::get_state ()
XMLNode* node = new XMLNode ("PannerShell");
node->add_property (X_("bypassed"), _bypassed ? X_("yes") : X_("no"));
+ node->add_property (X_("user-panner"), _user_selected_panner_uri);
+ node->add_property (X_("linked-to-route"), _panlinked ? X_("yes") : X_("no"));
- if (_panner) {
+ if (_panner && _is_send) {
node->add_child_nocopy (_panner->get_state ());
}
@@ -146,12 +178,43 @@ PannerShell::set_state (const XMLNode& node, int version)
set_bypassed (string_is_affirmative (prop->value ()));
}
+ if ((prop = node.property (X_("linked-to-route"))) != 0) {
+ _panlinked = string_is_affirmative (prop->value ());
+ }
+
+ if ((prop = node.property (X_("user-panner"))) != 0) {
+ _user_selected_panner_uri = prop->value ();
+ }
+
_panner.reset ();
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
if ((*niter)->name() == X_("Panner")) {
+ if ((prop = (*niter)->property (X_("uri")))) {
+ PannerInfo* p = PannerManager::instance().get_by_uri(prop->value());
+ if (p) {
+ _panner.reset (p->descriptor.factory (
+ _is_send ? _pannable_internal : _pannable_route, _session.get_speakers ()));
+ _current_panner_uri = p->descriptor.panner_uri;
+ _panner_gui_uri = p->descriptor.gui_uri;
+ if (_is_send) {
+ if (!_panlinked) {
+ _pannable_internal->set_panner(_panner);
+ } else {
+ _force_reselect = true;
+ }
+ } else {
+ _pannable_route->set_panner(_panner);
+ }
+ if (_panner->set_state (**niter, version) == 0) {
+ return -1;
+ }
+ }
+ }
+
+ else /* backwards compatibility */
if ((prop = (*niter)->property (X_("type")))) {
list<PannerInfo*>::iterator p;
@@ -165,7 +228,10 @@ PannerShell::set_state (const XMLNode& node, int version)
assumption, but it's still an assumption.
*/
- _panner.reset ((*p)->descriptor.factory (_pannable, _session.get_speakers ()));
+ _panner.reset ((*p)->descriptor.factory (
+ _is_send ? _pannable_internal : _pannable_route, _session.get_speakers ()));
+ _current_panner_uri = (*p)->descriptor.panner_uri;
+ _panner_gui_uri = (*p)->descriptor.gui_uri;
if (_panner->set_state (**niter, version) == 0) {
return -1;
@@ -339,6 +405,7 @@ PannerShell::set_bypassed (bool yn)
}
_bypassed = yn;
+ _session.set_dirty ();
Changed (); /* EMIT SIGNAL */
}
@@ -347,3 +414,72 @@ PannerShell::bypassed () const
{
return _bypassed;
}
+
+/* set custom-panner config
+ *
+ * This function is intended to be only called from
+ * Route::set_custom_panner()
+ * which will trigger IO-reconfigutaion if this fn return true
+ */
+bool
+PannerShell::set_user_selected_panner_uri (std::string const uri)
+{
+ if (uri == _user_selected_panner_uri) return false;
+ _user_selected_panner_uri = uri;
+ if (uri == _current_panner_uri) return false;
+ _force_reselect = true;
+ return true;
+}
+
+bool
+PannerShell::select_panner_by_uri (std::string const uri)
+{
+ if (uri == _user_selected_panner_uri) return false;
+ _user_selected_panner_uri = uri;
+ if (uri == _current_panner_uri) return false;
+ _force_reselect = true;
+ if (_panner) {
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
+ ChanCount in = _panner->in();
+ ChanCount out = _panner->out();
+ configure_io(in, out);
+ if (!_is_send || !_panlinked) {
+ pannable()->set_panner(_panner);
+ }
+ _session.set_dirty ();
+ }
+ return true;
+}
+
+void
+PannerShell::set_linked_to_route (bool onoff)
+{
+ assert(_is_send);
+ if (onoff == _panlinked) {
+ return;
+ }
+
+ /* set _pannable-_has_state = true
+ * this way the panners will pick it up
+ * when it is re-created
+ */
+ if (pannable()) {
+ XMLNode state = pannable()->get_state();
+ pannable()->set_state(state, 3000);
+ }
+
+ _panlinked = onoff;
+
+ _force_reselect = true;
+ if (_panner) {
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
+ ChanCount in = _panner->in();
+ ChanCount out = _panner->out();
+ configure_io(in, out);
+ if (!_panlinked) {
+ pannable()->set_panner(_panner);
+ }
+ _session.set_dirty ();
+ }
+ PannableChanged();
+}
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index b191cf4890..f2689bf998 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -346,9 +346,8 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of
/* XXX: audio only */
uint32_t first_idx = in_map.get (DataType::AUDIO, 0, &valid);
if (valid) {
- Sample const * mono = bufs.get_audio (first_idx).data (offset);
for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) {
- memcpy (bufs.get_audio (in_map.get (DataType::AUDIO, i, &valid)).data (offset), mono, sizeof (Sample) * nframes);
+ bufs.get_audio(in_map.get (DataType::AUDIO, i, &valid)).read_from(bufs.get_audio(first_idx), nframes, offset, offset);
}
}
}
@@ -490,8 +489,9 @@ PluginInsert::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end
/* not active, but something has make up for any channel count increase */
- for (uint32_t n = out - in; n < out; ++n) {
- memcpy (bufs.get_audio (n).data(), bufs.get_audio(in - 1).data(), sizeof (Sample) * nframes);
+ // TODO: option round-robin (n % in) or silence additional buffers ??
+ for (uint32_t n = in; n < out; ++n) {
+ bufs.get_audio(n).read_from(bufs.get_audio(in - 1), nframes);
}
}
@@ -505,7 +505,6 @@ PluginInsert::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end
* all buffers appropriately.
*/
- bufs.set_is_silent (false);
}
void
@@ -651,6 +650,8 @@ bool
PluginInsert::configure_io (ChanCount in, ChanCount out)
{
Match old_match = _match;
+ ChanCount old_in = input_streams ();
+ ChanCount old_out = output_streams ();
/* set the matching method and number of plugins that we will use to meet this configuration */
_match = private_can_support_io_configuration (in, out);
@@ -658,9 +659,12 @@ PluginInsert::configure_io (ChanCount in, ChanCount out)
return false;
}
- /* a signal needs emitting if we start or stop splitting */
- if (old_match.method != _match.method && (old_match.method == Split || _match.method == Split)) {
- SplittingChanged (); /* EMIT SIGNAL */
+ if ( (old_match.method != _match.method && (old_match.method == Split || _match.method == Split))
+ || old_in != in
+ || old_out != out
+ )
+ {
+ PluginIoReConfigure (); /* EMIT SIGNAL */
}
/* configure plugins */
@@ -715,6 +719,10 @@ PluginInsert::can_support_io_configuration (const ChanCount& in, ChanCount& out)
PluginInsert::Match
PluginInsert::private_can_support_io_configuration (ChanCount const & inx, ChanCount& out)
{
+ if (_plugins.empty()) {
+ return Match();
+ }
+
PluginInfoPtr info = _plugins.front()->get_info();
ChanCount in; in += inx;
midi_bypass.reset();
@@ -1208,10 +1216,23 @@ double
PluginInsert::PluginControl::internal_to_interface (double val) const
{
if (_logarithmic) {
+ /* some plugins have a log-scale range "0.."
+ * ideally we'd map the range down to infinity somehow :)
+ *
+ * one solution could be to use
+ * val = exp(lower + log(range) * value);
+ * (log(val) - lower) / range)
+ * This approach would require access to the actual range (ie
+ * Plugin::ParameterDescriptor) and also require handling
+ * of unbound ranges..
+ *
+ * currently an arbitrarly low number is assumed to represnt
+ * log(0) as hot-fix solution.
+ */
if (val > 0) {
val = log (val);
} else {
- val = 0;
+ val = -8; // ~ -70dB = 20 * log10(exp(-8))
}
}
@@ -1222,7 +1243,12 @@ double
PluginInsert::PluginControl::interface_to_internal (double val) const
{
if (_logarithmic) {
- val = exp (val);
+ if (val <= -8) {
+ /* see note in PluginInsert::PluginControl::internal_to_interface() */
+ val= 0;
+ } else {
+ val = exp (val);
+ }
}
return val;
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index 8d209cc78e..e93566068b 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -643,6 +643,10 @@ PluginManager::lxvst_discover_from_path (string path)
vector<string *>::iterator x;
int ret = 0;
+#ifndef NDEBUG
+ (void) path;
+#endif
+
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Discovering linuxVST plugins along %1\n", path));
plugin_objects = scanner (lxvst_path, lxvst_filter, 0, false, true);
diff --git a/libs/ardour/po/cs.po b/libs/ardour/po/cs.po
index 6df4ac1894..9554921194 100644
--- a/libs/ardour/po/cs.po
+++ b/libs/ardour/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-06-13 22:47+0200\n"
"Last-Translator: Pavel Fric <pavelfric@seznam.cz>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@ -134,7 +134,7 @@ msgstr "Seznamy zvukových skladeb (nepoužívané)"
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "Chyba v programování: %1"
@@ -203,65 +203,21 @@ msgstr "Nelze nahrát přídavný modul VAMP \"%1\""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr "Přídavný modul VAMP \"%1\" se nepodařilo nahrát"
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-"tato verze JACK je stará - Měl byste provést povýšení na novější verzi, "
-"která podporuje jack_port_type_get_buffer_size()"
-
-#: audioengine.cc:190
-msgid "Connect session to engine"
-msgstr "Spojit sezení se strojem"
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-"Přípojka s názvem \"%1\" již existuje: Prověřte na zdvojené názvy stop/"
-"sběrnic"
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-"Nejsou dostupné další přípojky JACK. Pokud potřebujete tolik stop, musíte "
-"zastavit %1 a spustit JACK znovu s více přípojkami."
-
-#: audioengine.cc:848
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "AudioEngine: Nelze zaregistrovat přípojku \"%1\": %2"
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr "Nelze vytvořit přípojku: %1"
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr "Zavolání connect (spojení) před spuštěním stroje"
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "AudioEngine: Nelze spojit %1 (%2) s %3 (%4)"
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
-msgstr "Zavolání disconnect (odpojení) před spuštěním stroje"
-
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
-msgstr "Zavolání get_port_by_name() před spuštěním stroje"
-
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr "Zavolání get_ports před spuštěním stroje"
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "Nepodařilo se spojit se s JACK"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
+msgstr ""
#: audioregion.cc:1643
msgid ""
@@ -462,7 +418,7 @@ msgstr "Nelze nalézt takt CPU (MHz) v /proc/cpuinfo"
msgid "audio"
msgstr "Zvuk"
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr "MIDI"
@@ -577,7 +533,7 @@ msgstr "Trojúhelníkový"
msgid "Rectangular"
msgstr "Obdélníkový"
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr "Žádný"
@@ -688,7 +644,7 @@ msgid ""
msgstr ""
"% podporuje jen %2 kanály, ale ve vašem nastavení kanálů se nachází %3 kanál"
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr "Je již 1000 souborů s názvem, jako je %1; verzování skonÄeno"
@@ -790,25 +746,25 @@ msgstr "Nelze urÄit nynÄ›jší pracovní adresář (%1)"
msgid "unknown file type for session %1"
msgstr "Neznámý typ souboru pro sezení %1"
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
"Nepodařilo se nastavit systémové omezení pro otevřené soubory na \"neomezeno"
"\""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr "Nepodařilo se nastavit systémové omezení pro otevřené soubory na %1"
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr "Vaše systémové nastavení omezuje %1 na jen %2 otevřené soubory"
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr "Nepodařilo se dostat systémové omezení pro otevřené soubory (%1)"
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr "Nahrává se nastavení"
@@ -929,47 +885,47 @@ msgstr "IO: Špatně utvořený řetězec v uzlu XML pro výstupy \"%1\""
msgid "IO: bad output string in XML node \"%1\""
msgstr "IO: Špatný řetězec pro výstup v uzlu XML \"%1\""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr "%s %u"
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr "%s vstup"
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr "%s výstup"
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr "Mono"
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr "L"
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr "P"
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr "%d"
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr "LADSPA: Modul nemá žádnou funkci popisu"
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr "LADSPA: Přídavný modul už není více nalezitelný!"
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
"LADSPA: \"%1\" nemůže být použit, neboť nedělá žádný \"inplace processing\""
@@ -1050,7 +1006,7 @@ msgstr "Locations: Pokus o použití neznámé polohy jako vybrané polohy"
msgid "incorrect XML mode passed to Locations::set_state"
msgstr "Nesprávný uzel XML předán dál Locations::set_state"
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr "Sezení"
@@ -1227,11 +1183,11 @@ msgstr "Ovládání polarity"
msgid "solo control"
msgstr "Ovládání sóla"
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr "MTC Slave: Chyba pÅ™i atomickém Ätení nynÄ›jšího Äasu, spánek!"
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
@@ -1239,11 +1195,11 @@ msgstr ""
"Neznámá hodnota %1 pro rychlost snímkování/zahozené snímky v příchozím "
"datovém proudu MTC, místo ní se používají hodnoty sezení"
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr "Rychlost snímkování sezení změněna z %1 na MTC: %2"
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr "Rychlost snímkování sezení a MTC se neshodují: MTC: %1 %2:%3."
@@ -1307,19 +1263,19 @@ msgstr "Cíli vyvážení předána data XML pro %1 - přehlíží se"
msgid "looking for panners in %1"
msgstr "Hledání vyvážení v %1"
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr "Vyvážení nalezeno: \"%1\" v %2"
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr "SprávceVyvážení: Nelze nahrát modul \"%1\" (%2)"
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr "SprávceVyvážení: Modul \"%1\" nemá žádnou funkci popisu"
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr "Nenalezeno žádné vyvážení pro vstupy/výstupy %1/%2"
@@ -1439,11 +1395,7 @@ msgstr ""
msgid "unknown plugin type \"%1\" - ignored"
msgstr "Neznámý typ přídavného modulu \"%1\" - přehlíží se"
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr "Zavolání get_connected_latency_range() během odpojení od JACK"
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "Nepodařilo se znovu zaregistrovat %1"
@@ -1460,6 +1412,36 @@ msgid "non-port insert XML used for port plugin insert"
msgstr ""
"XML pro vložení ne-přípojky použito ke vložení přídavného modulu přípojky"
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+"Přípojka s názvem \"%1\" již existuje: Prověřte na zdvojené názvy stop/"
+"sběrnic"
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr "AudioEngine: Nelze zaregistrovat přípojku \"%1\": %2"
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr "Nelze vytvořit přípojku: %1"
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: Nelze spojit %1 (%2) s %3 (%4)"
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr "Žádný příznak pro vlastnost \"%1\" v prvku %2"
@@ -1468,19 +1450,19 @@ msgstr "Žádný příznak pro vlastnost \"%1\" v prvku %2"
msgid "No child node with active property"
msgstr "Žádný uzel potomka s vlastností \"Äinný\""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr "Nahrává se soubor s nastavením systému %1"
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr "%1: Nelze pÅ™eÄíst soubor s nastavením systému \"%2\""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr "%1: Soubor s nastavením systému \"%2\" se nepodařilo nahrát."
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
@@ -1488,23 +1470,23 @@ msgstr ""
"Váš soubor s nastavením systému %1 je prázdný. To zřejmě znamená, že při "
"instalaci %1 se vyskytla chyba."
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr "Nahrává se soubor s uživatelovým nastavením %1"
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr "%1: Nelze pÅ™eÄíst soubor s nastavením\"%2\""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr "%1: Soubor s uživatelovým nastavením \"%2\" se nepodařilo nahrát."
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr "Váš soubor s nastavením %1 je prázdný. To není obvyklé."
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "Soubor s nastavením %1 nebyl uložen"
@@ -1544,38 +1526,42 @@ msgstr "Zavedení: Chyba v src_new() : %1"
msgid "return %1"
msgstr "Vrácená hodnota: %1"
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr "Neznámý typ procesoru \"%1\"; přehlíží se"
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr "Procesor se nepodařilo vytvořit. Přehlíží se."
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr "Špatný uzel poslán Route::set_state() [%1]"
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
"Nalezen stav cíle vyvážení pro cestu (%1), aniž by bylo nalezeno vyvážení!"
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
"Å patnÄ› utvoÅ™ený Å™etÄ›zec znaků pro klÃ­Ä poÅ™adí roztřídÄ›ní v souboru sezení! "
"[%1] ... Přehlíží se."
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr "Stopy MIDI nelze nyní sdružit do podskupin"
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr "tempoize: Chyba pÅ™i Ätení dat z %1 v %2 (žádáno %3, obdrženo %4)"
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr "Chyba při zápisu dat s upraveným tempem do %1"
@@ -1591,104 +1577,80 @@ msgstr "Poslání (send) %1"
msgid "programming error: send created using role %1"
msgstr "Chyba v programování: Poslání vytvořeno pomocí role %1"
-#: session.cc:347
-msgid "Set block size and sample rate"
-msgstr "Nastavit velikost bloku a vzorkovací kmitoÄet"
-
-#: session.cc:352
-msgid "Using configuration"
-msgstr "Používané nastavení"
+#: session.cc:344
+msgid "Connect to engine"
+msgstr "Spojit se strojem"
-#: session.cc:377
-msgid "LTC In"
-msgstr "Vstup LTC"
+#: session.cc:349
+msgid "Session loading complete"
+msgstr "Nahrání sezení dokonÄeno"
-#: session.cc:378
-msgid "LTC Out"
-msgstr "Výstup LTC"
+#: session.cc:421
+msgid "Set up LTC"
+msgstr ""
-#: session.cc:404
-msgid "LTC-in"
-msgstr "Vstup LTC"
+#: session.cc:423
+msgid "Set up Click"
+msgstr ""
-#: session.cc:405
-msgid "LTC-out"
-msgstr "Výstup LTC"
+#: session.cc:425
+msgid "Set up standard connections"
+msgstr "Nastavit standardní spojení"
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "Nepodařilo se nastavit vstup/výstup metronomu"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "Nelze nastavit vstup/výstup metronomu"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr "VypoÄítat prodlevy vstupu/výstupu"
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr "Nastavit standardní spojení"
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr "Výstup %<PRIu32>"
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr "Výstup %<PRIu32>+%<PRIu32>"
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr "Vstup %<PRIu32>"
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr "Vstup %<PRIu32>+%<PRIu32>"
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr "Nastavit signálový tok a přídavné moduly"
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr "Spojit se strojem"
-
-#: session.cc:645
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr "Nelze spojit hlavní výstup %1 s %2"
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr "Sledování"
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr "Nelze spojit vstup ovládání %1 s %2"
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr "Upřednostňovaný vstup/výstup pro sledovací sběrnici (%1) nelze najít"
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr "Nelze spojit výstup ovládání %1 s %2"
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr "Nelze vytvořit poslechový systém: Žádný poslech oblastí není možný"
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
"Sezení: Tuto polohu nelze pro automatický pÅ™epis použít (ZaÄátek <= Konec) "
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
@@ -1696,83 +1658,91 @@ msgstr ""
"Tuto polohu nelze pro automatickou smyÄku použít, protože nemá žádnou, nebo "
"má zápornou délku"
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr "SmyÄka zpÄ›tné vazby rozpoznána mezi %1 a %2"
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr "Sezení: Nepodařilo se vytvořit novou stopu MIDI"
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+"Nejsou dostupné další přípojky JACK. Pokud potřebujete tolik stop, musíte "
+"zastavit %1 a spustit JACK znovu s více přípojkami."
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr "Zvuk"
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr "Nelze nastavit %1 nastavení vstup/%2 výstup pro novou zvukovou stopu"
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr "Sezení: Nepodařilo se vytvořit novou zvukovou stopu"
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr "Sběrnice"
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr "Sezení: Nepodařilo se vytvořit novou zvukovou cestu"
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr "Sezení: Cesty UINT_MAX? Nemožné!"
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr "Sezení: Nelze vytvořit stopu/sběrnici z popisu předlohy"
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr "Sezení: Nepodařilo se vytvořit novou cestu z předlohy"
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr "Chyba při přidávání nové stopy/sběrnice"
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr "OSUDOVà CHYBA! Nepodařilo se najít vhodnou verzi %1 pro přejmenování"
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr "Již je %1 nahrávek pro %2, což je příliš mnoho."
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr "Zdá se, že ID poslání (send) %1, se již používá"
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr "Zdá se, že ID pomocného-poslání (aux-send) %1, se již používá"
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr "Zdá se, že ID vrácení (return) %1, se již používá"
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr "Zdá se, že ID vložení (insert) %1, se již používá"
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr "Nelze zapsat oblast s Konec <= ZaÄátek (napÅ™. %1 <= %2)"
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr "Příliš mnoho odhozených verzí seznamu skladeb \"%1\""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "Nelze vytvořit nový zvukový soubor \"%1\" pro %2"
@@ -1815,11 +1785,11 @@ msgstr "Adresář se sezením v cestě %1 neexistuje"
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr "Sezení: Není možné mít ve stejném snímku (%2) dvě události typu %1."
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr "%1: Polohu souboru %2 nelze vyhledat pro vyvedení"
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr "Vyvedení skonÄilo neoÄekávanÄ›: %1"
@@ -1831,10 +1801,6 @@ msgstr ""
"Kodér LTC: Neplatná rychlost snímkování - Kódování LTC je pro zbývající Äást "
"tohoto sezení zakázáno."
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr "Sezení: NepodaÅ™ilo se poslat úplný Äasový kód MIDI"
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr "Sezení: Nelze poslat quarter-frame MTC (%1)"
@@ -1843,92 +1809,96 @@ msgstr "Sezení: Nelze poslat quarter-frame MTC (%1)"
msgid "Session: cannot create Playlist from XML description."
msgstr "Sezení: Nelze vytvořit seznam skladeb z popisu XML"
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr "Sezení: Chyba v no_roll pro %1"
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr "Chyba v programování: Neplatný typ události v process_event (%1)"
-#: session_state.cc:139
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
msgstr "Nepodařilo se použít cestu %1 (%2)"
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr "Nastavení Solo Cut (dB)"
-#: session_state.cc:360
+#: session_state.cc:208
+msgid "Set block size and sample rate"
+msgstr "Nastavit velikost bloku a vzorkovací kmitoÄet"
+
+#: session_state.cc:213
+msgid "Using configuration"
+msgstr "Používané nastavení"
+
+#: session_state.cc:325
msgid "Reset Remote Controls"
msgstr "Nastavit dálkové ovládání znovu"
-#: session_state.cc:385
-msgid "Session loading complete"
-msgstr "Nahrání sezení dokonÄeno"
-
-#: session_state.cc:452
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku Peakfile \"%1\" (%2)"
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit adresář sezení pro zvuková data \"%1\" (%2)"
-#: session_state.cc:466
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit adresář sezení pro MIDI \"%1\" (%2)"
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
"Sezení: Nelze vytvořit odpadkový koš sezení pro zahozený zvuk \"%1\" (%2)"
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku sezení pro vyvedené soubory \"%1\" (%2)"
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku sezení pro data rozboru \"%1\" (%2)"
-#: session_state.cc:494
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku sezení pro přídavné moduly \"%1\" (%2)"
-#: session_state.cc:501
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku sezení pro vnější \"%1\" (%2)"
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit složku sezení \"%1\" (%2)"
-#: session_state.cc:548
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
msgstr "Nepodařilo se otevřít %1 pro zápis předlohy sezení"
-#: session_state.cc:554
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
msgstr "NepodaÅ™ilo se otevřít pÅ™edlohu sezení %1 pro Ätení"
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr "Master"
-#: session_state.cc:636
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
msgstr "Nepodařilo se odstranit předběžný stav nahrávání v cestě \"%1\" (%2)"
-#: session_state.cc:660
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
msgstr "Nepodařilo se přejmenovat snímek obrazovky %1 na %2 (%3)"
-#: session_state.cc:688
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
msgstr "Nepodařilo se odstranit soubor se sezením v cestě \"%1\" (%2)"
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
@@ -1936,134 +1906,134 @@ msgstr ""
"Zvukový stroj %1 není spojen, a při ukládání stavu by došlo ke ztrátě všech "
"spojení vstup/výstup. Sezení neuloženo"
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr "Stav se do %1 uložit nepodařilo"
-#: session_state.cc:814 session_state.cc:825
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
msgstr "NepodaÅ™ilo se odstranit doÄasný soubor se sezením v cestÄ› \"%1\" (%2)"
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr "NepodaÅ™ilo se pÅ™ejmenovat doÄasný soubor se sezením %1 na %2"
-#: session_state.cc:890
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr "%1: Soubor se sezením \"%2\" neexistuje!"
-#: session_state.cc:902
+#: session_state.cc:810
msgid "Could not understand session file %1"
msgstr "Nepodařilo se porozumět souboru se sezením\"%1\""
-#: session_state.cc:911
+#: session_state.cc:819
msgid "Session file %1 is not a session"
msgstr "Soubor se sezením %1 není sezením"
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr "Chyba v programování: Sezení: Nesprávný uzel XML poslán set_state()"
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr "Sezení: XML nemá žádnou Äást \"options\""
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr "Sezení: XML nemá žádnou Äást \"metadata\""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr "Sezení: XML nemá žádnou Äást \"sources\""
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr "Sezení: XML nemá žádnou Äást \"Tempo Map\""
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr "Sezení: XML nemá žádnou Äást \"locations\""
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr "Sezení: XML nemá žádnou Äást \"Regions\""
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr "Sezení: XML nemá žádnou Äást \"playlists\""
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr "Sezení: XML nemá žádnou Äást \"bundles\""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr "Sezení: XML nemá žádnou Äást \"diskstreams\""
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr "Sezení: XML nemá žádnou Äást \"routes\""
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr "Sezení: XML nemá žádnou Äást \"route groups\""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr "Sezení: XML nemá žádnou Äást \"edit groups\""
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr "Sezení: XML nemá žádnou Äást \"mix groups\""
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr "Sezení: XML nemá žádnou Äást \"click\""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr "Sezení: Nelze vytvořit cestu z popisu XML"
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr "Byla nahrána stopa/sběrnice %1"
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr "Nepodařilo se najít Diskstream pro cestu"
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr "Sezení: Nelze vytvořit oblast z popisu XML"
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr "Nelze nahrát stav pro oblast '%1'"
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr "Oblasti ve spojeném popisu nenalezeny (ID %1 a %2): přehlíží se"
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
"Vnořený zdroj nemá v souboru se sezením žádné informace ID! (přehlíží se)"
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr "Nelze obnovit vnořený zdroj pro oblast %1"
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr "Sezení: Uzel XML k popisu zvukové oblasti je neúplný (chybí zdroj)"
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
"Sezení: Uzel XML k popisu zvukové oblasti odkazuje na ID neznámého zdroje =%1"
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
@@ -2071,7 +2041,7 @@ msgstr ""
"Sezení: Uzel XML k popisu zvukové oblasti odkazuje na ID nezvukového zdroje ="
"%1"
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
@@ -2079,23 +2049,23 @@ msgstr ""
"Sezení: Uzlu XML k popisu zvukové oblasti chybí některé hlavní zdroje; "
"přehlíží se"
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr "Sezení: Uzel XML k popisu oblasti MIDI je neúplný (chybí zdroj)"
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
"Sezení: Uzel XML k popisu oblasti MIDI odkazuje na ID neznámého zdroje =%1"
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
"Sezení: Uzel XML k popisu oblasti MIDI odkazuje na ID ne-MIDI zdroje =%1"
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
@@ -2103,122 +2073,122 @@ msgstr ""
"Nelze vytvořit nový soubor z názvu oblasti \"%1\" s ident = \"%2\": Je "
"příliš mnoho souborů s podobnými názvy"
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr "Sezení: Nelze vytvořit zdroj z popisu XML"
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr "Chybí zvukový soubor. Bude nahrazen tichem."
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
"Byl nalezen zvukový soubor, který není použitelný %1. Promluvte si s "
"programátory."
-#: session_state.cc:2033
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
msgstr "Nepodařilo se vytvořit adresář s předlohami \"%1\" (%2)"
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "Předloha \"%1\" již existuje - nová verze nebyla vytvořena"
-#: session_state.cc:2052
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
msgstr "Nepodařilo se vytvořit adresář pro předlohu sezení \"%1\" (%2)"
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr "Předloha neuložena"
-#: session_state.cc:2072
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
msgstr ""
"Nepodařilo se vytvořit adresář pro stav přídavného modulu předlohy sezení "
"\"%1\" (%2)"
-#: session_state.cc:2267
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr "Nalezen neznámý uzel \"%1\" v seznamu svazků souboru sezení"
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr "Nelze rozšířit cestu %1 (%2)"
-#: session_state.cc:2868
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr "Sezení: Nelze vytvořit odpadkový koš pro zahozen soubory \"%1\" (%2)"
-#: session_state.cc:2907
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr "Nelze přejmenovat nepoužívaný souborový zdroj z %1 na %2 (%3)"
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr "Nelze odstranit vrcholový soubor %1 pro %2 (%3)"
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
"NepodaÅ™ilo se vytvoÅ™it zálohu starého souboru se seznamem Äinností, nynÄ›jší "
"historie neuložena"
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr "NepodaÅ™ilo se uložit seznam Äinností do %1"
-#: session_state.cc:3243
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
msgstr ""
"NepodaÅ™ilo se odstranit soubor se seznamem Äinností v cestÄ› \"%1\" (%2)"
-#: session_state.cc:3247
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr "NepodaÅ™ilo se obnovit soubor se seznamem Äinností ze zálohy %1 (%2)"
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr "%1: Žádný soubor se seznamem Äinností \"%2\" pro toto sezení."
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr "NepodaÅ™ilo se porozumÄ›t souboru se seznamem Äinností sezení \"%1\""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr "Nepodařilo se najít MidiSource pro NoteDiffCommand"
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr "Nepodařilo se najít MidiSource pro SysExDiffCommand"
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr "Nepodařilo se najít MidiSource pro PatchChangeDiffCommand"
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr "Nepodařilo se rozpoznat žádný příkaz v uzlu XML \"%1\"."
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr "Sezení: Neznámý typ Diskstream v XML"
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr "Sezení: Nepodařilo se nahrát Diskstream pomocí stavu XML"
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
-msgstr "Neznámý stav transportu JACK v Sync-Callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
+msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr "Nelze pÅ™ehrávat ve smyÄce - Nestanovena žádná oblast smyÄky"
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
@@ -2226,7 +2196,7 @@ msgstr ""
"Souvislé pÅ™ehrávání ve smyÄce není možné, dokud %1 používá transport JACK.\n"
"DoporuÄuje se zmÄ›na volby v nastavení"
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2377,7 +2347,7 @@ msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
"Pokus o zápis zvukového zdrojového souboru chráněného proti zápisu (%1)"
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr "Chyba v programování: %1 %2"
@@ -2614,19 +2584,19 @@ msgstr "Zamknout"
msgid "programming error: unknown edit mode string \"%1\""
msgstr "Chyba v programování: neznámý řetězec pro režim úprav \"%1\""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr "Časový kód MIDI"
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr "MTC"
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr "Hodiny MIDI"
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr "JACK"
@@ -2634,50 +2604,18 @@ msgstr "JACK"
msgid "programming error: unknown sync source string \"%1\""
msgstr "Chyba v programování: neznámý řetězec pro zdroj seřízení \"%1\""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr "M-Clock"
-#: utils.cc:429
+#: utils.cc:432
msgid "LTC"
msgstr "LTC"
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr "Chyba v programování: neznámý nativní formát hlaviÄky: %1"
-#: utils.cc:614
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr "Nelze otevřít adresář %1 (%2)"
-
-#~ msgid "Session"
-#~ msgstr "Sezení"
-
-#~ msgid "midi"
-#~ msgstr "midi"
-
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "MidiDiskstream: PÅ™ekroÄení hodnoty masky kanálu vlastnosti XML"
-
-#~ msgid "timefx code failure. please notify ardour-developers."
-#~ msgstr "Chyba v kódu TimeFX. Vyrozumte, prosím, vývojáře Ardouru."
-
-#~ msgid ""
-#~ "Copying old session file %1 to %2\n"
-#~ "Use %2 with %3 versions before 2.0 from now on"
-#~ msgstr ""
-#~ "Kopíruje se starý soubor se sezením %1 do %2\n"
-#~ "Od nynějška dál používejte %2 s verzemi %3 před 2.0"
-
-#~ msgid "Session: you can't use a mark for auto loop"
-#~ msgstr "Session: Sie können diesen Marker nicht für Auto-Loop verwenden "
-
-#~ msgid ""
-#~ "No more JACK ports are available. You will need to stop %1 and restart "
-#~ "JACK with ports if you need this many tracks."
-#~ msgstr ""
-#~ "Keine JACK-Ports mehr verfügbar. Sie müssen %1 stoppen und JACK mit mehr "
-#~ "Ports neustarten, wenn Sie so viele Spuren benötigen."
-
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "Konnte die Projektdatei %1 nicht verstehen"
diff --git a/libs/ardour/po/de.po b/libs/ardour/po/de.po
index f92bf49d1e..8cf15b4488 100644
--- a/libs/ardour/po/de.po
+++ b/libs/ardour/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-26 16:09+0200\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-09-26 16:32+0200\n"
"Last-Translator: Edgar Aichinger <edogawa@aon.at>\n"
"Language-Team: German <ardour-dev@lists.ardour.org>\n"
@@ -137,7 +137,7 @@ msgstr "Audio-Wiedergabelisten (unbenutzt)"
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2606 session.cc:2639 session.cc:3784
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "Programmierfehler: %1"
@@ -206,19 +206,19 @@ msgstr "kann VAMP-Plugin \"%1\" nicht laden"
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr "VAMP-Plugin \"%1\" konnte nicht geladen werden"
-#: audioengine.cc:489
+#: audioengine.cc:488
msgid "looking for backends in %1\n"
msgstr "Suche nach Backends in %1\n"
-#: audioengine.cc:512
+#: audioengine.cc:511
msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr "AudioEngine: kann Modul \"%1\" nicht laden (%2)"
-#: audioengine.cc:518
+#: audioengine.cc:517
msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr "AudioEngine: Backend an \"%1\" hat keine Beschreibungsfunktion."
-#: audioengine.cc:580
+#: audioengine.cc:589
msgid "Could not create backend for %1: %2"
msgstr "Konnte Backend für %1 nicht erzeugen: %2"
@@ -272,8 +272,8 @@ msgstr "AudioSource: kann Pfad für Peaks (b) \"%1\" nicht öffnen (%2)"
msgid ""
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
msgstr ""
-"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht "
-"lesen(%5)"
+"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht lesen"
+"(%5)"
#: audiosource.cc:667
msgid "%1: could not write read raw data for peak computation (%2)"
@@ -423,7 +423,7 @@ msgstr "kann CPU-Takt in /proc/cpuinfo nicht finden"
msgid "audio"
msgstr "Audio"
-#: data_type.cc:28 session.cc:1781 session.cc:1784
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr "MIDI"
@@ -538,7 +538,7 @@ msgstr "Dreieck"
msgid "Rectangular"
msgstr "Rechteck"
-#: export_formats.cc:52 session.cc:5002 session.cc:5018
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr "Kein"
@@ -652,7 +652,7 @@ msgstr ""
"% unterstützt nur %2 Kanäle, in Ihrer Kanalkonfiguration befinden sich "
"jedoch %3 Kanäle"
-#: file_source.cc:198 session_state.cc:2813
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr ""
@@ -910,15 +910,15 @@ msgstr "%s in"
msgid "%s out"
msgstr "%s out"
-#: io.cc:1535 session.cc:676 session.cc:705
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr "Mono"
-#: io.cc:1537 session.cc:689 session.cc:719
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr "L"
-#: io.cc:1537 session.cc:691 session.cc:721
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr "R"
@@ -1019,7 +1019,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr "unkorrekter XML-Modus an Locations::set_state weitergereicht"
-#: location.cc:842 session.cc:4503 session_state.cc:1031
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr "Projekt"
@@ -1166,38 +1166,6 @@ msgstr "Fehlende Eigenschaft \"state\" bei AutomationState"
msgid "MIDI stretch created non-MIDI source"
msgstr "MIDI Streckung erzeugte Nicht-MIDI Quelle"
-#: midiport_manager.cc:71
-msgid "MIDI control in"
-msgstr "MIDI control in"
-
-#: midiport_manager.cc:72
-msgid "MIDI control out"
-msgstr "MIDI control out"
-
-#: midiport_manager.cc:74
-msgid "MMC in"
-msgstr "MMC in"
-
-#: midiport_manager.cc:75
-msgid "MMC out"
-msgstr "MMC out"
-
-#: midiport_manager.cc:96
-msgid "MTC in"
-msgstr "MTC in"
-
-#: midiport_manager.cc:98
-msgid "MTC out"
-msgstr "MTC out"
-
-#: midiport_manager.cc:101
-msgid "MIDI Clock in"
-msgstr "MIDI Clock in"
-
-#: midiport_manager.cc:103
-msgid "MIDI Clock out"
-msgstr "MIDI Clock out"
-
#: monitor_processor.cc:53
msgid "monitor dim"
msgstr "Monitor dämpfen"
@@ -1582,39 +1550,43 @@ msgstr "Import: Fehler in src_new() : %1"
msgid "return %1"
msgstr "Rückgabewert: %1"
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr "unbekannter Prozessortyp \"%1\"; ignoriert"
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr "Prozessor konnte nicht erzeugt werden. Ignoriert."
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr "Schlechter Knoten an Route::set_state() gesendet [%1]"
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr "Pannerziel-Status für Route (%1) ohne Panner gefunden!"
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
"schlecht geformte Zeichenkette für den Schlüssel der Sortierreihenfolge in "
"der Projektdatei! [%1] ... ignoriert"
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr "MIDI-Spuren können zur Zeit nicht zu Subgruppen zusammengefasst werden"
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
"tempoize: Fehler beim Lesen der Daten von %1 an %2 (%3 erwünscht, %4 "
"erhalten)"
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr "Fehler beim Schreiben der tempo-angepassten Daten nach %1"
@@ -1630,98 +1602,82 @@ msgstr "Send %1"
msgid "programming error: send created using role %1"
msgstr "Programmierfehler: Send erzeugt mittels Rolle %1"
-#: session.cc:343
+#: session.cc:344
msgid "Connect to engine"
msgstr "Verbinde zur Engine"
-#: session.cc:348
+#: session.cc:349
msgid "Session loading complete"
msgstr "Laden des Projektes abgeschlossen"
-#: session.cc:420
+#: session.cc:421
msgid "Set up LTC"
msgstr "LTC einrichten"
-#: session.cc:422
+#: session.cc:423
msgid "Set up Click"
msgstr "Klick einrichten"
-#: session.cc:424
+#: session.cc:425
msgid "Set up standard connections"
msgstr "Richte Standard-Verbindungen ein"
-#: session.cc:561
-msgid "LTC In"
-msgstr "LTC In"
-
-#: session.cc:562
-msgid "LTC Out"
-msgstr "LTC Out"
-
-#: session.cc:588
-msgid "LTC-in"
-msgstr "LTC-in"
-
-#: session.cc:589
-msgid "LTC-out"
-msgstr "LTC-out"
-
-#: session.cc:625
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "konnte Metronom-E/A nicht einrichten"
-#: session.cc:673
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr "out %<PRIu32>"
-#: session.cc:687
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr "out %<PRIu32>+%<PRIu32>"
-#: session.cc:702
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr "in %<PRIu32>"
-#: session.cc:716
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr "in %<PRIu32>+%<PRIu32>"
-#: session.cc:780
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr "kann Master-Ausgang %1 nicht mit %2 verbinden"
-#: session.cc:839
+#: session.cc:849
msgid "monitor"
msgstr "Monitor"
-#: session.cc:884
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr "kann Kontrolleingang %1 nicht mit %2 verbinden"
-#: session.cc:904
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr "Bevorzugte E/A für den Monitorbus (%1) kann nicht gefunden werden"
-#: session.cc:935
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr "kann Kontrollausgang %1 nicht mit %2 verbinden"
-#: session.cc:999
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
"Kann das Vorhör-System nicht einrichten: kein Vorhören von Regionen möglich"
-#: session.cc:1183
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
"Session: Sie können diese Position nicht für Auto-Punch verwenden (Start <= "
"Ende) "
-#: session.cc:1223
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
@@ -1729,15 +1685,15 @@ msgstr ""
"Sie können diese Position nicht für \"automatische Schleife\" verwenden, da "
"sie keine oder eine negative Länge hat"
-#: session.cc:1537
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr "Feedbackschleife zwischen %1 und %2 erkannt"
-#: session.cc:1833
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr "Session: konnte keine neue MIDI-Spur erzeugen."
-#: session.cc:1839
+#: session.cc:1849
msgid ""
"No more JACK ports are available. You will need to stop %1 and restart JACK "
"with more ports if you need this many tracks."
@@ -1745,76 +1701,76 @@ msgstr ""
"Keine JACK-Ports mehr verfügbar. Wenn Sie so viele Spuren benötigen, müssen "
"Sie %1 stoppen und JACK mit mehr Ports neu starten."
-#: session.cc:2016 session.cc:2019
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr "Audio"
-#: session.cc:2043 session.cc:2051 session.cc:2128 session.cc:2136
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr "kann %1 ein/%2 aus für neue Audiospur nicht konfigurieren"
-#: session.cc:2074
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr "Session: konnte keine neue Audios.pur erzeugen"
-#: session.cc:2106 session.cc:2109
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr "Bus"
-#: session.cc:2159
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr "Session: konnte keine neueAudio-Route erzeugen"
-#: session.cc:2218 session.cc:2228
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr "Session: UINT_MAX Routen? unmöglich!"
-#: session.cc:2250
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr "Session: Kann die Route aus der Vorlagenbeschreibung nicht erzeugen"
-#: session.cc:2276
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr "Session: konnte keine neue Route aus der Vorlage erzeugen."
-#: session.cc:2305
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr "Fehler beim Hinzufügen neuer Spuren/Busse"
-#: session.cc:3406
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
"FATALER FEHLER! Konnte keine passende Version von %1 zum Umbenennen finden"
-#: session.cc:3526 session.cc:3584
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr "Es gibt bereits %1 Aufnahmen für %2, was ich als zu viele erachte."
-#: session.cc:3974
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr "Send ID %1 ist offenbar schon in Gebrauch"
-#: session.cc:3986
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr "Aux-Send ID %1 ist offenbar schon in Gebrauch"
-#: session.cc:3998
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr "Return ID %1 ist offenbar schon in Gebrauch"
-#: session.cc:4010
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr "Insert ID %1 ist offenbar schon in Gebrauch"
-#: session.cc:4137
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr "Kann einen Bereich mit Ende <= Start nicht schreiben (z.B. %1 <= %2)"
-#: session.cc:4166
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr "zu viele gebouncete Versionen der Wiedergabeliste \"%1\""
-#: session.cc:4176
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "kann keine neue Audiodatei \"%1\" für %2 erzeugen"
@@ -2072,55 +2028,55 @@ msgstr "Session: XML hat keinen Abschnitt \"mix groups\""
msgid "Session: XML state has no click section"
msgstr "Session: XML hat keinen Abschnitt \"click\""
-#: session_state.cc:1366
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr "Session: Kann die Route aus der XML-Beschreibung nicht erzeugen"
-#: session_state.cc:1370
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr "Spur/Bus %1 wurde geladen"
-#: session_state.cc:1468
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr "Konnte Diskstream für Route nicht finden"
-#: session_state.cc:1522
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr "Session: kann Region nicht aus XML-Beschreibung erzeugen"
-#: session_state.cc:1526
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr "Kann Status für Region '%1' nicht laden"
-#: session_state.cc:1562
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
"Regionen der Verbindungsbeschreibung nicht gefunden (IDs %1 and %2): "
"ignoriert"
-#: session_state.cc:1590
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
"Verschachtelte Quelle hat keine ID-Information in Projektdatei! (ignoriert)"
-#: session_state.cc:1602
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr "Kann verschachtelte Quelle für Region %1 nicht wiederherstellen"
-#: session_state.cc:1664
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
"Session: XML-Knoten zur Beschreibung einer Audioregion ist unvollständig "
"(Quelle fehlt)"
-#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
"unbekannte Quell-ID =%1"
-#: session_state.cc:1678 session_state.cc:1699 session_state.cc:1719
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
@@ -2128,7 +2084,7 @@ msgstr ""
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
"Nicht-Audio Quell-ID =%1"
-#: session_state.cc:1742
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
@@ -2136,27 +2092,27 @@ msgstr ""
"Session: dem XML-Knoten zur Beschreibung einer Audioregion fehlen einige "
"Hauptquellen; ignoriert"
-#: session_state.cc:1776
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
"Session: XML-Knoten zur Beschreibung einer MIDI-Region ist unvollständig "
"(Quelle fehlt)"
-#: session_state.cc:1784
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
"unbekannte Quell-ID =%1"
-#: session_state.cc:1790
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
"Nicht-MIDI Quell-ID =%1"
-#: session_state.cc:1858
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
@@ -2164,109 +2120,109 @@ msgstr ""
"kann keine neue Datei aus dem Regionennamen \"%1\" mit ident = \"%2\" "
"erzeugen: zu viele Dateien mit ähnlichen Namen existieren"
-#: session_state.cc:1881
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr "Session: Kann Quelle aus der XML-Beschreibung nicht erzeugen"
-#: session_state.cc:1915
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr "Eine Audiodatei fehlt. Sie wird durch Stille ersetzt werden."
-#: session_state.cc:1938
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
"Eine nicht mit %1 benutzbare Audiodatei wurde gefunden. Sprechen Sie mit den "
"Programmierern."
-#: session_state.cc:1955
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
msgstr "Konnte Vorlagenverzeichnis \"%1\" nicht erzeugen (%2)"
-#: session_state.cc:1968
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "Vorlage \"%1\" existiert bereits - neue Version wurde nicht erzeugt"
-#: session_state.cc:1974
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
msgstr "Konnte kein Verzeichnis für Projektvorlage \"%1\" erzeugen (%2)"
-#: session_state.cc:1984
+#: session_state.cc:1978
msgid "template not saved"
msgstr "Vorlage nicht gesichert"
-#: session_state.cc:1994
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
msgstr ""
"Konnte Verzeichnis für Projektvorlagen-Pluginstatus \"%1\" nicht erzeugen "
"(%2)"
-#: session_state.cc:2189
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr "Unbekannter Knoten \"%1\" in Bündelliste der Projektdatei gefunden"
-#: session_state.cc:2731 session_state.cc:2737
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr "Kann Pfad %1 nicht expandieren (%2)"
-#: session_state.cc:2790
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr "Session: kann den Mülleimer \"%1\" nicht erzeugen (%2)"
-#: session_state.cc:2829
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr "kann unbenutzte Dateiquelle nicht von %1 nach %2 umbenennen (%3)"
-#: session_state.cc:2847
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr "kann Peakdatei %1 für %2 nicht entfernen (%3)"
-#: session_state.cc:3149
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
"konnte kein Backup der alten Aktionsliste erstellen, momentane Aktionsliste "
"ungesichert"
-#: session_state.cc:3162
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr "Aktionsliste konnte nicht nach %1 gesichert werden"
-#: session_state.cc:3165
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
msgstr "Konnte Aktionslistendatei im Pfad \"%1\" nicht entfernen (%2)"
-#: session_state.cc:3169
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr "konnte Aktionslistendatei nicht aus dem Backup %1 restaurieren (%2)"
-#: session_state.cc:3194
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr "%1: keine Aktionslistendatei \"%2\" für dieses Projekt."
-#: session_state.cc:3200
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr "Konnte Projekt-Aktionslistendatei \"%1\" nicht verstehen"
-#: session_state.cc:3242
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr "MidiSource für NoteDiffCommand nicht auffindbar"
-#: session_state.cc:3253
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr "MidiSource für SysExDiffCommand nicht auffindbar"
-#: session_state.cc:3264
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr "MidiSource für PatchChangeDiffCommand nicht auffindbar"
-#: session_state.cc:3272
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr "Konnte im XML-Knoten \"%1\" keinen Befehl erkennen."
-#: session_state.cc:3524
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr "Session: Unbekannter Diskstream im XML"
-#: session_state.cc:3529
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr "Session: konnte Diskstream nicht via XML-Status laden"
@@ -2710,56 +2666,3 @@ msgstr "Programmierfehler: unbekanntes natives Dateikopfformat: %1"
#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr "kann Verzeichnis %1 nicht öffnen (%2)"
-
-#~ msgid "Setup signal flow and plugins"
-#~ msgstr "Richte Signalfluss and Plugins ein"
-
-#~ msgid "cannot setup Click I/O"
-#~ msgstr "kann Metronom-E/A nicht einrichten"
-
-#~ msgid "Compute I/O Latencies"
-#~ msgstr "Berechne E/A-Latenzen"
-
-#~ msgid ""
-#~ "This version of JACK is old - you should upgrade to a newer version that "
-#~ "supports jack_port_type_get_buffer_size()"
-#~ msgstr ""
-#~ "Diese JACK-Version ist alt - Sie sollten auf eine Version upgraden, die "
-#~ "jack_port_type_get_buffer_size() unterstützt"
-
-#~ msgid "Connect session to engine"
-#~ msgstr "Verbinde Projekt mit Engine"
-
-#~ msgid "connect called before engine was started"
-#~ msgstr "Aufruf von connect vor dem Start der Engine"
-
-#~ msgid "disconnect called before engine was started"
-#~ msgstr "Aufruf von disconnect vor dem Start der Engine"
-
-#~ msgid "get_port_by_name() called before engine was started"
-#~ msgstr "Aufruf von get_port_by_name() vor dem Start der Engine"
-
-#~ msgid "get_ports called before engine was started"
-#~ msgstr "Aufruf von get_ports vor dem Start der Engine"
-
-#~ msgid "failed to connect to JACK"
-#~ msgstr "Verbindung zu JACK fehlgeschlagen"
-
-#~ msgid "get_connected_latency_range() called while disconnected from JACK"
-#~ msgstr "Aufruf von get_connected_latency_range(), während von JACK getrennt"
-
-#~ msgid "Session: could not send full MIDI time code"
-#~ msgstr "Session: konnte vollständigen MIDI-Timecode nicht senden"
-
-#~ msgid "Session"
-#~ msgstr "Projekt"
-
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "MidiDiskstream: Wertüberschreitung der XML-Eigenschaft Kanalmaske"
-
-#~ msgid ""
-#~ "Copying old session file %1 to %2\n"
-#~ "Use %2 with %3 versions before 2.0 from now on"
-#~ msgstr ""
-#~ "Kopiere alte Projektdatei %1 nach %2\n"
-#~ "Benutzen Sie von jetzt an %2 mit %3-Versionen vor 2.0"
diff --git a/libs/ardour/po/el.po b/libs/ardour/po/el.po
index 5801300003..b7b350bdd9 100644
--- a/libs/ardour/po/el.po
+++ b/libs/ardour/po/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour 0.664.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2007-04-16 00:38+0200\n"
"Last-Translator: Klearchos Gourgourinis <muadib@in.gr>\n"
"Language-Team: Hellenic(Greek)\n"
@@ -108,14 +108,12 @@ msgid "Audio Playlists"
msgstr ""
#: audio_playlist_importer.cc:161
-#, fuzzy
msgid "region"
-msgstr "Ï€Ïόσθεση πεÏιοχής"
+msgstr ""
#: audio_playlist_importer.cc:163
-#, fuzzy
msgid "regions"
-msgstr "Ï€Ïόσθεση πεÏιοχής"
+msgstr ""
#: audio_playlist_importer.cc:174 audio_track_importer.cc:245
msgid "A playlist with this name already exists, please rename it."
@@ -132,15 +130,14 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1"
#: audio_region_importer.cc:75
-#, fuzzy
msgid "Audio Regions"
-msgstr "χτίσιμο πεÏιοχών"
+msgstr ""
#: audio_region_importer.cc:145
msgid "Length: "
@@ -159,24 +156,20 @@ msgid ""
msgstr ""
#: audio_track.cc:167
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for input of %2"
-msgstr "Άγνωστη σÏνδεση \"%1\" στη λίστα εισόδου του %2"
+msgstr ""
#: audio_track.cc:169
msgid "in 1"
msgstr ""
#: audio_track.cc:170
-#, fuzzy
msgid "No input bundles available as a replacement"
-msgstr "Καμία διαθέσιμη input σÏνδεση ως εναλλακτική"
+msgstr ""
#: audio_track.cc:174
-#, fuzzy
msgid "Bundle %1 was not available - \"in 1\" used instead"
msgstr ""
-"Η ΣÏνδεση %1 δεν ήταν διαθέσιμη - Αντ'αυτής χÏησιμοποιήθηκε η \"in 1\" "
#: audio_track.cc:183
msgid "improper input channel list in XML node (%1)"
@@ -202,62 +195,22 @@ msgstr ""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr ""
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
-msgstr ""
-
-#: audioengine.cc:190
-msgid "Connect session to engine"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-#: audioengine.cc:848
-#, fuzzy
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "IO: δεν μποÏεί να καταχώÏηθεί η θÏÏα εισόδου %1"
-
-#: audioengine.cc:878
-msgid "unable to create port: %1"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
msgstr ""
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr "η σÏνδεση εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "AudioEngine: αδÏνατη η σÏνδεση %1 (%2) σε %3 (%4)"
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
-msgstr "η αποσÏνδεση εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#: audioengine.cc:1052
-#, fuzzy
-msgid "get_port_by_name() called before engine was started"
-msgstr "η Ïουτίνα get_port_by_name() εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr "η Ïουτίνα get_ports εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "Αποτυχία συνδέσεως με τον JACK"
-
#: audioregion.cc:1643
msgid ""
"You have requested an operation that requires audio analysis.\n"
@@ -287,22 +240,17 @@ msgstr ""
"δεν μποÏÏŽ να διαβάσω δεδομένα δείγματος για υπολογισμό μη-κλιμακώτου peak"
#: audiosource.cc:387
-#, fuzzy
msgid "AudioSource: cannot open peakpath (a) \"%1\" (%2)"
-msgstr "AudioSource: δεν μποÏÏŽ να ανοίξω το peakpath \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:463
-#, fuzzy
msgid "AudioSource: cannot open peakpath (b) \"%1\" (%2)"
-msgstr "AudioSource: δεν μποÏÏŽ να ανοίξω το peakpath \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:587
-#, fuzzy
msgid ""
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
msgstr ""
-"AudioSource[%1]: ανάγνωση peak - δεν μποÏÏŽ να διαβάσω %2 δείγματα στο "
-"(offset) %3"
#: audiosource.cc:667
msgid "%1: could not write read raw data for peak computation (%2)"
@@ -311,18 +259,16 @@ msgstr ""
"peak (%2)"
#: audiosource.cc:706
-#, fuzzy
msgid "AudioSource: cannot open peakpath (c) \"%1\" (%2)"
-msgstr "AudioSource: δεν μποÏÏŽ να ανοίξω το peakpath \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:773 audiosource.cc:886
msgid "%1: could not write peak file data (%2)"
msgstr "%1: δεν μπόÏεσα να γÏάψω δεδομένα του αÏχείου peak (%2)"
#: audiosource.cc:924
-#, fuzzy
msgid "could not truncate peakfile %1 to %2 (error: %3)"
-msgstr "δεν μποÏÏŽ να απαλοίψω το peakfile %1 για %2 (%3)"
+msgstr ""
#: auditioner.cc:87
msgid "no outputs available for auditioner - manual connection required"
@@ -337,26 +283,20 @@ msgid "Cannot setup auditioner processing flow for %1 channels"
msgstr ""
#: automatable.cc:81
-#, fuzzy
msgid "Automation node has no path property"
-msgstr "%1: Ο Κόμβος Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Î´ÎµÎ½ έχει οÏισμένο path"
+msgstr ""
#: automatable.cc:101
-#, fuzzy
msgid "cannot open %2 to load automation data (%3)"
-msgstr "%1: δεν μποÏÏŽ να ανοίξω %2 για ανάκληση δεδομένων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (%3)"
+msgstr ""
#: automatable.cc:129
-#, fuzzy
msgid "cannot load automation data from %2"
-msgstr "%1: δεν μποÏοÏν να ανακληθοÏν δεδομένα Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Î±Ï€ÏŒ %2"
+msgstr ""
#: automation_list.cc:353
-#, fuzzy
msgid "automation list: cannot load coordinates from XML, all points ignored"
msgstr ""
-"λίστα αυτοματισμοÏ: καμία x-συντεταγμένη αποθηκευμένη για σημείο ελέγχου (το "
-"σημείο αγνοήθηκε)"
#: automation_list.cc:399
msgid ""
@@ -394,9 +334,8 @@ msgid "poll on butler request pipe failed (%1)"
msgstr ""
#: butler.cc:163
-#, fuzzy
msgid "Error on butler thread request pipe: fd=%1 err=%2"
-msgstr "Σφάλμα στο butler thread request pipe"
+msgstr ""
#: butler.cc:201
msgid "Error reading from butler request pipe"
@@ -458,14 +397,13 @@ msgstr "δεν ευÏέθη το cpu MHz στο /proc/cpuinfo"
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
#: data_type.cc:29
-#, fuzzy
msgid "unknown"
-msgstr "Άγνωστο"
+msgstr ""
#: delivery.cc:114
msgid "main outs"
@@ -484,9 +422,8 @@ msgid "Could not get port for export channel \"%1\", dropping the channel"
msgstr ""
#: export_failed.cc:32
-#, fuzzy
msgid "Export failed: %1"
-msgstr "Εισαγωγή: src_new() απέτυχε : %1"
+msgstr ""
#: export_filename.cc:118
msgid "Existing export folder for this session (%1) does not exist - ignored"
@@ -545,18 +482,16 @@ msgid "Session rate"
msgstr ""
#: export_format_specification.cc:537
-#, fuzzy
msgid "normalize"
-msgstr "εξομαλÏνθηκε στα %.2fdB"
+msgstr ""
#: export_format_specification.cc:541
msgid "trim"
msgstr ""
#: export_format_specification.cc:543
-#, fuzzy
msgid "trim start"
-msgstr "Ï€ÏωταÏχική κατάσταση"
+msgstr ""
#: export_format_specification.cc:545
msgid "trim end"
@@ -574,7 +509,7 @@ msgstr ""
msgid "Rectangular"
msgstr ""
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -619,9 +554,8 @@ msgid "Editor: cannot open \"%1\" as export file for CD marker file"
msgstr ""
#: export_handler.cc:417 export_handler.cc:420
-#, fuzzy
msgid "an error occured while writing a TOC/CUE file: %1"
-msgstr "παÏουσιάστηκε σφάλμα κάτα την μετατÏοπή του ÏÏ…Î¸Î¼Î¿Ï Î´ÎµÎ¹Î³Î¼Î±Ï„Î¿Î»Î·ÏˆÎ¯Î±Ï‚: %1"
+msgstr ""
#: export_handler.cc:642 export_handler.cc:700
msgid "Cannot convert %1 to Latin-1 text"
@@ -632,29 +566,24 @@ msgid "Searching for export formats in %1"
msgstr ""
#: export_profile_manager.cc:99
-#, fuzzy
msgid "Unable to create export format directory %1: %2"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\"; αγνοήθηκε"
+msgstr ""
#: export_profile_manager.cc:257
-#, fuzzy
msgid "Unable to remove export preset %1: %2"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\"; αγνοήθηκε"
+msgstr ""
#: export_profile_manager.cc:347
-#, fuzzy
msgid "Selection"
-msgstr "ανάλυση"
+msgstr ""
#: export_profile_manager.cc:600
-#, fuzzy
msgid "Unable to rename export format %1 to %2: %3"
-msgstr "δεν μποÏÏŽ να μετονομάσω την πηγή του audio file από %1 σε %2 (%3)"
+msgstr ""
#: export_profile_manager.cc:632
-#, fuzzy
msgid "Unable to remove export profile %1: %2"
-msgstr "δεν μποÏÏŽ να ελέγξω το αÏχείο κατάστασεως %1 (%2)"
+msgstr ""
#: export_profile_manager.cc:649
msgid "empty format"
@@ -690,15 +619,14 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr "ΥπάÏχουν ήδη 1000 αÏχεία με ονόματα όπως %1; μη-συνεχές versioning"
#: file_source.cc:207
-#, fuzzy
msgid "cannot rename file source from %1 to %2 (%3)"
-msgstr "δεν μποÏÏŽ να μετονομάσω την πηγή του audio file από %1 σε %2 (%3)"
+msgstr ""
#: file_source.cc:250 file_source.cc:378
msgid "FileSource: search path not set"
@@ -732,14 +660,12 @@ msgid ""
msgstr ""
#: file_source.cc:540
-#, fuzzy
msgid "cannot rename file %1 to %2 (%3)"
-msgstr "δεν μποÏÏŽ να απαλοίψω το peakfile %1 για %2 (%3)"
+msgstr ""
#: filesystem_paths.cc:73
-#, fuzzy
msgid "Cannot create Configuration directory %1 - cannot run"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω τον φάκελο 'sounds' \"%1\"; αγνοήθηκε"
+msgstr ""
#: filesystem_paths.cc:78
msgid ""
@@ -760,16 +686,12 @@ msgid "ARDOUR_DATA_PATH not set in environment - exiting\n"
msgstr ""
#: filter.cc:66
-#, fuzzy
msgid "filter: error creating name for new file based on %1"
msgstr ""
-"audiofilter: σφάλμα στη δημιουÏγία ονόματος για νέο audio file βασισμένο σε "
-"%1"
#: filter.cc:78
-#, fuzzy
msgid "filter: error creating new file %1 (%2)"
-msgstr "audiofilter: σφάλμα στη δημιουÏγία νέου audio file %1 (%2)"
+msgstr ""
#: find_session.cc:51
msgid "Could not resolve path: %1 (%2)"
@@ -784,9 +706,8 @@ msgid "cannot check statefile %1 (%2)"
msgstr "δεν μποÏÏŽ να ελέγξω το αÏχείο κατάστασεως %1 (%2)"
#: find_session.cc:125
-#, fuzzy
msgid "%1 is not a snapshot file"
-msgstr "Το %1 δεν έιναι αÏχείο-στιγμιότυπο του Ardour"
+msgstr ""
#: find_session.cc:142
msgid "cannot determine current working directory (%1)"
@@ -796,28 +717,25 @@ msgstr "δεν μποÏÏŽ να καθοÏίσω τον Ï„Ïέχοντα ενεÏ
msgid "unknown file type for session %1"
msgstr "άγνωστος Ï„Ïπος αÏχείου για την συνεδÏία %1"
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
-#: globals.cc:207
-#, fuzzy
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
-msgstr "αδÏνατη η επαναφοÏά του state file από backup %1"
+msgstr ""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
-#, fuzzy
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
-msgstr "%1: δεν μπόÏεσα να γÏάψω δεδομένα του αÏχείου peak (%2)"
+msgstr ""
-#: globals.cc:266
-#, fuzzy
+#: globals.cc:268
msgid "Loading configuration"
-msgstr "Ανάκληση αÏχείου Ïυθμίσεων χÏήστη %1"
+msgstr ""
#: import.cc:207
msgid "Could not find a source for %1 even though we are updating this file!"
@@ -848,9 +766,8 @@ msgid "Import: cannot open input sound file \"%1\""
msgstr "Εισαγωγή: δεν μποÏÏŽ να ανοίξω το εισαγμένο αÏχείο ήχου \"%1\""
#: import.cc:510
-#, fuzzy
msgid "Import: error opening MIDI file"
-msgstr "Εισαγωγή: σφάλμα κατά την Ï„Ïοποποίηση αÏχείου \"%1\""
+msgstr ""
#: import.cc:549
msgid "Loading MIDI file %1"
@@ -861,9 +778,8 @@ msgid "Failed to remove some files after failed/cancelled import operation"
msgstr ""
#: instrument_info.cc:40 instrument_info.cc:61
-#, fuzzy
msgid "Unknown"
-msgstr "Άγνωστο"
+msgstr ""
#: instrument_info.cc:230
msgid "preset %1 (bank %2)"
@@ -874,9 +790,8 @@ msgid "%1 - cannot find any track/bus with the ID %2 to connect to"
msgstr ""
#: io.cc:208
-#, fuzzy
msgid "IO: cannot disconnect port %1 from %2"
-msgstr "IO: δεν μποÏει να αποσυνδεθεί η θÏÏα εισόδου %1 από %2"
+msgstr ""
#: io.cc:343 io.cc:428
msgid "IO: cannot register input port %1"
@@ -895,9 +810,8 @@ msgid "in"
msgstr ""
#: io.cc:706
-#, fuzzy
msgid "out"
-msgstr "κοπή"
+msgstr ""
#: io.cc:707
msgid "input"
@@ -908,20 +822,16 @@ msgid "output"
msgstr ""
#: io.cc:717
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for %2 of %3"
-msgstr "Άγνωστη σÏνδεση \"%1\" στη λίστα εισόδου του %2"
+msgstr ""
#: io.cc:783
-#, fuzzy
msgid "Bundle %1 was not available - \"%2\" used instead"
msgstr ""
-"Η ΣÏνδεση %1 δεν ήταν διαθέσιμη - Αντ'αυτής χÏησιμοποιήθηκε η \"in 1\" "
#: io.cc:786
-#, fuzzy
msgid "No %1 bundles available as a replacement"
-msgstr "Καμία διαθέσιμη input σÏνδεση ως εναλλακτική"
+msgstr ""
#: io.cc:889
msgid "%1: cannot create I/O ports"
@@ -943,61 +853,57 @@ msgstr "IO: δÏσμοÏφη γÏαμμή στον κόμβο XML για τις
msgid "IO: bad output string in XML node \"%1\""
msgstr "IO: κακή γÏαμμή εξόδουστον κόμβο XML \"%1\""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr ""
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr "LADSPA: το module δεν έχει ενδεικτική λειτουÏγία."
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr "LADSPA: το plugin την 'κοπάνισε' μετά την ανακάλυψη του!"
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
"LADSPA: \"%1\" δεν μποÏεί να χÏησιμοποιηθεί, εφ'όσον δεν μποÏεί να κάνει επι "
"τόπου επεξεÏγασία"
#: ladspa_plugin.cc:297
-#, fuzzy
msgid ""
"illegal parameter number used with plugin \"%1\". This may indicate a change "
"in the plugin design, and presets may be invalid"
msgstr ""
-"παÏάνομος αÏιθμός παÏαμέτÏου σε χÏήση με το plugin \"%1\". Ίσως να "
-"ενδείκνυται αλλαγή στο σχεδιασμό του plugin, και οι Ïυθμίσεις ίσως να είναι "
-"άκυÏες"
#: ladspa_plugin.cc:376 ladspa_plugin.cc:426
msgid "Bad node sent to LadspaPlugin::set_state"
@@ -1016,9 +922,8 @@ msgid "LADSPA: cannot load module from \"%1\""
msgstr "LADSPA: δεν μποÏÏŽ να φοÏτώσω module από \"%1\""
#: ladspa_plugin.cc:827
-#, fuzzy
msgid "Could not locate HOME. Preset not removed."
-msgstr "Δεν μπόÏεσα να βÏÏŽ το HOME. ΠÏο-ÏÏθμιση δεν αποθηκεÏθηκε."
+msgstr ""
#: ladspa_plugin.cc:864 ladspa_plugin.cc:870
msgid "Could not create %1. Preset not saved. (%2)"
@@ -1041,9 +946,8 @@ msgid "incorrect XML node passed to Location::set_state"
msgstr "λανθασμένος κόμβος XML πέÏασε στην Τοποθεσία::set_state"
#: location.cc:455
-#, fuzzy
msgid "XML node for Location has no ID information"
-msgstr "Ο κόμβος XML για την Τοποθεσία δεν έχει πληÏοφοÏίες τέλους"
+msgstr ""
#: location.cc:459
msgid "XML node for Location has no name information"
@@ -1071,7 +975,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr "λανθασμένο XML mode πέÏασε στις Τοποθεσίες::set_state"
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr ""
@@ -1136,45 +1040,32 @@ msgid ""
msgstr ""
#: midi_diskstream.cc:219
-#, fuzzy
msgid "MidiDiskstream: Playlist \"%1\" isn't a midi playlist"
-msgstr "AudioDiskStream: Η Λίστα \"%1\" δεν είναι ηχητική λίστα αναπαÏ/γής"
+msgstr ""
#: midi_diskstream.cc:270
-#, fuzzy
msgid "MidiDiskstream %1: there is no existing playlist to make a copy of!"
msgstr ""
-"AudioDiskstream %1: δεν υπάÏχει λίστα αναπαÏ/γής για να γίνει αντιγÏαφή!"
#: midi_diskstream.cc:699
-#, fuzzy
msgid "MidiDiskstream %1: cannot read %2 from playlist at frame %3"
msgstr ""
-"AudioDiskstream %1: δεν μπόÏεσα να διαβάσω %2 από τη λίστα αναπαÏ/γής στο "
-"frame %3"
#: midi_diskstream.cc:834
-#, fuzzy
msgid "MidiDiskstream %1: cannot write to disk"
-msgstr "AudioDiskstream %1: δεν μποÏÏŽ να γÏάψω στο δίσκο"
+msgstr ""
#: midi_diskstream.cc:868
-#, fuzzy
msgid "MidiDiskstream \"%1\": cannot flush captured data to disk!"
msgstr ""
-"AudioDiskstream \"%1\": αδÏνατη η εκκαθάÏιση δειγματοληπτικών δεδομένων στο "
-"δίσκο!"
#: midi_diskstream.cc:955
-#, fuzzy
msgid "%1: could not create region for complete midi file"
-msgstr "%1: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για ολόκληÏο audio file"
+msgstr ""
#: midi_diskstream.cc:992
-#, fuzzy
msgid "MidiDiskstream: could not create region for captured midi!"
msgstr ""
-"AudioDiskstream: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για δειγματοληψίες!"
#: midi_model.cc:634
msgid "No NoteID found for note property change - ignored"
@@ -1213,64 +1104,57 @@ msgid "MIDI stretch created non-MIDI source"
msgstr ""
#: monitor_processor.cc:53
-#, fuzzy
msgid "monitor dim"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:54
-#, fuzzy
msgid "monitor cut"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:55
-#, fuzzy
msgid "monitor mono"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:58
-#, fuzzy
msgid "monitor dim level"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:62
msgid "monitor solo boost level"
msgstr ""
#: monitor_processor.cc:512
-#, fuzzy
msgid "cut control %1"
-msgstr "[έλεγχος]"
+msgstr ""
#: monitor_processor.cc:513
-#, fuzzy
msgid "dim control"
-msgstr "[έλεγχος]"
+msgstr ""
#: monitor_processor.cc:514
msgid "polarity control"
msgstr ""
#: monitor_processor.cc:515
-#, fuzzy
msgid "solo control"
-msgstr "[έλεγχος]"
+msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
"MTC Slave: ατομική ανάγνωση του Ï„Ïέχοντος χÏόνου απέτυχε, πίσω για Ïπνο!"
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1283,52 +1167,44 @@ msgid "paste"
msgstr "επικόλληση"
#: operations.cc:26
-#, fuzzy
msgid "duplicate region"
-msgstr "αντικατάσταση πεÏιοχής"
+msgstr ""
#: operations.cc:27
msgid "insert file"
msgstr ""
#: operations.cc:28
-#, fuzzy
msgid "insert region"
-msgstr "χτίσιμο πεÏιοχής"
+msgstr ""
#: operations.cc:29
msgid "drag region brush"
msgstr ""
#: operations.cc:30
-#, fuzzy
msgid "region drag"
-msgstr "Ï€Ïόσθεση πεÏιοχής"
+msgstr ""
#: operations.cc:31
-#, fuzzy
msgid "selection grab"
-msgstr "ανάλυση"
+msgstr ""
#: operations.cc:32
-#, fuzzy
msgid "region fill"
-msgstr "Ï€Ïόσθεση πεÏιοχής"
+msgstr ""
#: operations.cc:33
-#, fuzzy
msgid "fill selection"
-msgstr "ανάλυση"
+msgstr ""
#: operations.cc:34
-#, fuzzy
msgid "create region"
-msgstr "αντικατάσταση πεÏιοχής"
+msgstr ""
#: operations.cc:35
-#, fuzzy
msgid "region copy"
-msgstr "Ï€Ïόσθεση πεÏιοχής"
+msgstr ""
#: operations.cc:36
msgid "fixed time region copy"
@@ -1342,21 +1218,19 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
-#, fuzzy
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
-msgstr "ControlProtocolManager: δεν μποÏÏŽ να φοÏτώσω το module \"%1\" (%2)"
+msgstr ""
-#: panner_manager.cc:123
-#, fuzzy
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
-msgstr "ControlProtocolManager: το module \"%1\" δεν έχει descriptor function."
+msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
@@ -1373,9 +1247,8 @@ msgid "region state node has no ID, ignored"
msgstr ""
#: playlist.cc:2088
-#, fuzzy
msgid "Playlist: cannot create region from XML"
-msgstr "Playlist: αδÏνατη η δημιουÏγία ΠεÏιοχής από αÏχείο καταστάσεως"
+msgstr ""
#: playlist_source.cc:99
msgid "No playlist ID in PlaylistSource XML!"
@@ -1402,9 +1275,8 @@ msgid "programming error: "
msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: "
#: plugin_insert.cc:926
-#, fuzzy
msgid "XML node describing plugin is missing the `type' field"
-msgstr "Στον κόμβο XML που πεÏιγÏάφει το insert λείπει το πεδίο `type'"
+msgstr ""
#: plugin_insert.cc:941
msgid "unknown plugin type %1 in plugin insert state"
@@ -1431,14 +1303,12 @@ msgid "PluginInsert: Auto: port id out of range"
msgstr "PluginInsert: Auto: το id θÏÏας είναι εκτός πεδίου"
#: plugin_insert.cc:1137
-#, fuzzy
msgid "PluginInsert: automatable control %1 not found - ignored"
-msgstr "αβέβαιο συμβάν Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÏ…Ïέθηκε (και αγνοήθηκε)"
+msgstr ""
#: plugin_manager.cc:161
-#, fuzzy
msgid "Discovering Plugins"
-msgstr "μετατÏοπή ήχου"
+msgstr ""
#: plugin_manager.cc:335
msgid "Could not parse rdf file: %1"
@@ -1453,38 +1323,26 @@ msgid "LADSPA: module \"%1\" has no descriptor function."
msgstr "LADSPA: το module \"%1\" δεν έχει λειτουÏγία πεÏιγÏαφής."
#: plugin_manager.cc:602
-#, fuzzy
msgid ""
"VST plugin %1 does not support processReplacing, and so cannot be used in %2 "
"at this time"
msgstr ""
-"Το VST plugin %1 δεν υποστηÏίζει processReplacing, και έτσι δεν μποÏεί να "
-"χÏησιμοποιηθεί στον ardour αυτή τη φοÏά"
#: plugin_manager.cc:709
-#, fuzzy
msgid ""
"linuxVST plugin %1 does not support processReplacing, and so cannot be used "
"in %2 at this time"
msgstr ""
-"Το VST plugin %1 δεν υποστηÏίζει processReplacing, και έτσι δεν μποÏεί να "
-"χÏησιμοποιηθεί στον ardour αυτή τη φοÏά"
#: plugin_manager.cc:870
-#, fuzzy
msgid "unknown plugin status type \"%1\" - all entries ignored"
-msgstr "άγνωστος Ï„Ïπος Λήψης(Insert) \"%1\"... αγνοήθηκε"
+msgstr ""
#: plugin_manager.cc:887
-#, fuzzy
msgid "unknown plugin type \"%1\" - ignored"
-msgstr "άγνωστος Ï„Ïπος Λήψης(Insert) \"%1\"... αγνοήθηκε"
-
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
msgstr ""
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "αδÏνατη η επανακαταγÏαφή %1"
@@ -1493,14 +1351,41 @@ msgid "insert %1"
msgstr ""
#: port_insert.cc:198
-#, fuzzy
msgid "XML node describing port insert is missing the `type' field"
-msgstr "Στον κόμβο XML που πεÏιγÏάφει το insert λείπει το πεδίο `type'"
+msgstr ""
#: port_insert.cc:203
msgid "non-port insert XML used for port plugin insert"
msgstr "εισαγωγή μη-θÏÏας XML για χÏήση σε εισαγωγή plugin θÏÏας"
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr ""
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr ""
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: αδÏνατη η σÏνδεση %1 (%2) σε %3 (%4)"
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1509,47 +1394,41 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr "Ανάκληση αÏχείου Ïυθμίσεων συστήματος %1"
-#: rc_configuration.cc:97
-#, fuzzy
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr ""
-"Ardour: δεν μποÏÏŽ να διαβάσω το αÏχείο διαÏÏυθμίσεως του συστήματος \"%1\""
-#: rc_configuration.cc:102
-#, fuzzy
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr ""
-"Ardour: το αÏχείο διαÏÏυθμίσεως του συστήματος \"%1\" δεν φοÏτώθηκε επιτυχώς."
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr "Ανάκληση αÏχείου Ïυθμίσεων χÏήστη %1"
-#: rc_configuration.cc:125
-#, fuzzy
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
-msgstr "Ardour: αÏχείο διαÏÏυθμίσεως μή αναγνώσιμο \"%1\""
+msgstr ""
-#: rc_configuration.cc:130
-#, fuzzy
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
-msgstr "Ardour: αÏχείο Ïυθμίσεων χÏήστη \"%1\" δεν φοÏτώθηκε επιτυχώς."
+msgstr ""
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr ""
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "ΑÏχείο Ïυθμίσεων %1 δεν αποθηκεÏθηκε"
@@ -1559,11 +1438,9 @@ msgstr "δεν μποÏÏŽ να ανοίξω το Ï€Ïόσφατο αÏχείο Ï
#: region_factory.cc:67 region_factory.cc:109 region_factory.cc:150
#: region_factory.cc:192
-#, fuzzy
msgid ""
"programming error: RegionFactory::create() called with unknown Region type"
msgstr ""
-"σφάλμα Ï€ÏογÏαμματισμοÏ: Playlist::createRegion εκλήθη με άγνωστο Ï„Ïπο Πε"
#: region_factory.cc:554
msgid "%1 compound-%2 (%3)"
@@ -1589,40 +1466,41 @@ msgstr "Εισαγωγή: src_new() απέτυχε : %1"
msgid "return %1"
msgstr ""
-#: route.cc:1105 route.cc:2581
-#, fuzzy
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
-msgstr "άγνωστος Ï„Ïπος Λήψης(Insert) \"%1\"... αγνοήθηκε"
+msgstr ""
-#: route.cc:1117
-#, fuzzy
+#: route.cc:1087
msgid "processor could not be created. Ignored."
-msgstr "εισαγωγή δεν μπόÏεσε να δημιουÏγηθεί. Αγνοήθηκε."
+msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr "Κακός κόμβος εστάλη στο Route::set_state() [%1]"
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
"δÏσμοÏφη γÏαμμή ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï„Î±Î¾Î¹Î½Î¿Î¼Î®ÏƒÎµÏ‰Ï‚ στο αÏχείο καταστάσεως ! [%1] ... "
"αγνοήθηκε."
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
-#, fuzzy
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
-msgstr "tempoize: σφάλμα στην ανάγνωση δεδομένων από %1"
+msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr "σφάλμα στην εγγÏαφή χÏονο-Ïυθμισμένων δεδομένων στο %1"
@@ -1635,199 +1513,172 @@ msgid "send %1"
msgstr ""
#: send.cc:65
-#, fuzzy
msgid "programming error: send created using role %1"
-msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος of Redirect διεγÏάφη!"
-
-#: session.cc:347
-msgid "Set block size and sample rate"
msgstr ""
-#: session.cc:352
-#, fuzzy
-msgid "Using configuration"
-msgstr "Ανάκληση αÏχείου Ïυθμίσεων χÏήστη %1"
+#: session.cc:344
+msgid "Connect to engine"
+msgstr ""
-#: session.cc:377
-msgid "LTC In"
+#: session.cc:349
+msgid "Session loading complete"
msgstr ""
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
+#: session.cc:425
+msgid "Set up standard connections"
msgstr ""
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "Δεν μπόÏεσα να διαμοÏφώσω το I/O του ΜετÏονόμου(click)"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "Δεν μποÏÏŽ να διαμοÏφώσω το I/O του ΜετÏονόμου(click)"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr ""
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr ""
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr ""
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr ""
-
-#: session.cc:645
-#, fuzzy
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
-msgstr "IO: δεν μποÏεί να συνδεθεί η θÏÏα εξόδου %1 στο %2"
+msgstr ""
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr "monitor"
-#: session.cc:749
-#, fuzzy
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
-msgstr "IO: δεν μποÏεί να συνδεθεί η θÏÏα εισόδου %1 στο %2"
+msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
-#, fuzzy
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
-msgstr "IO: δεν μποÏεί να συνδεθεί η θÏÏα εξόδου %1 στο %2"
+msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr "δεν μποÏÏŽ να δημιουÏγήσω τον ΑκÏοατή: καμία ακÏόαση πεÏιοχών δυνατή"
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
"ΣυνεδÏία: δεν μποÏείτε να χÏησιμοποιήσετε αυτήν την τοποθεσία για auto punch "
"(αÏχή <= τέλος)"
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr "διαμόÏφωση feedback loop ανάμεσα σε %1 και %2"
-#: session.cc:1692
-#, fuzzy
+#: session.cc:1843
msgid "Session: could not create new midi track."
-msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω νέο κανάλι ήχου."
+msgstr ""
+
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr "δεν μποÏÏŽ να διαμοÏφώσω %1 in/%2 out διάταξη για νέο κανάλι ήχου"
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω νέο κανάλι ήχου."
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2018
-#, fuzzy
+#: session.cc:2169
msgid "Session: could not create new audio route."
-msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω διαδÏομή."
+msgstr ""
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
-#, fuzzy
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω Πηγή από XML πεÏιγÏαφή."
+msgstr ""
-#: session.cc:2135
-#, fuzzy
+#: session.cc:2286
msgid "Session: could not create new route from template"
-msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω διαδÏομή."
+msgstr ""
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr "ΥπάÏχουν ήδη %1 εγγÏαφές για %2, τις οποίες θεωÏÏŽ πάÏα πολλές."
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr "πάÏα πολλές bounced εκδόσεις της Playlist \"%1\""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "δεν μποÏÏŽ να δημιουÏγήσω νέο αÏχείο ήχου \"%1\" για %2"
@@ -1855,9 +1706,8 @@ msgid ""
msgstr ""
#: session_directory.cc:59
-#, fuzzy
msgid "Cannot create Session directory at path %1 Error: %2"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\"; αγνοήθηκε"
+msgstr ""
#: session_directory.cc:76
msgid "Session subdirectory does not exist at path %1"
@@ -1869,11 +1719,11 @@ msgstr ""
"ΣυνεδÏία: δεν γίνεται να υπάÏχουν δÏο συμβάντα του Ï„Ïπου %1 στο ίδιο frame "
"(%2)."
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr "%1: δεν μποÏÏŽ να αναζητήσω στο %2 για εξαγωγή"
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1883,10 +1733,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr "ΣυνεδÏία: δεν μπόÏεσα να στείλω ολόκληÏο MIDI time code"
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να στείλω τέταÏτο-frame MTC μήνυμα (%1)"
@@ -1895,255 +1741,232 @@ msgstr "ΣυνεδÏία: δεν μποÏÏŽ να στείλω τέταÏτο-fra
msgid "Session: cannot create Playlist from XML description."
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω την Playlist από την XML πεÏιγÏαφή."
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr "ΣυνεδÏία: σφάλμα στο no roll για %1"
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
"Σφάλμα Ï€ÏογÏαμματισμοÏ: παÏάνομος Ï„Ïπος συμβάντος στο process_event (%1)"
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "ΑδÏνατη η χÏήση του path %1 (%s)"
+msgstr ""
-#: session_state.cc:267
-#, fuzzy
+#: session_state.cc:184
msgid "solo cut control (dB)"
-msgstr "[έλεγχος]"
+msgstr ""
-#: session_state.cc:360
-msgid "Reset Remote Controls"
+#: session_state.cc:208
+msgid "Set block size and sample rate"
msgstr ""
-#: session_state.cc:385
-msgid "Session loading complete"
+#: session_state.cc:213
+msgid "Using configuration"
msgstr ""
-#: session_state.cc:452
-#, fuzzy
+#: session_state.cc:325
+msgid "Reset Remote Controls"
+msgstr ""
+
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω peakfile dir συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο ήχων συνεδÏίας \"%1\" (%2)"
-#: session_state.cc:466
-#, fuzzy
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:473
-#, fuzzy
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-"ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο 'νεκÏών' ήχων συνεδÏίας \"%1\" (%2)"
-#: session_state.cc:480
-#, fuzzy
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:487
-#, fuzzy
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:494
-#, fuzzy
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:501
-#, fuzzy
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:515
-#, fuzzy
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:548
-#, fuzzy
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
-msgstr "Δεν μπόÏεσα να ανοίξω %1 για γÏάψιμο του Ï€Ïοσχεδίου μίξεως"
+msgstr ""
-#: session_state.cc:554
-#, fuzzy
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
-msgstr "Δεν μπόÏεσα να ανοίξω Ï€Ïοσχέδιο μίξεως %1 για ανάγνωση"
+msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr "master"
-#: session_state.cc:636
-#, fuzzy
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
-msgstr "ΑδÏνατη η εÏÏεση path: %1 (%2)"
+msgstr ""
-#: session_state.cc:660
-#, fuzzy
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
-msgstr "ΑδÏνατη η επανασÏνδεση %1 και %2 (err = %3)"
+msgstr ""
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "ΑδÏνατη η εÏÏεση path: %1 (%2)"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr "η κατάσταση δεν μποÏοÏσε να σωθεί στο %1"
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "ΑδÏνατη η εÏÏεση path: %1 (%2)"
+msgstr ""
-#: session_state.cc:822
-#, fuzzy
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
-msgstr "δεν μποÏÏŽ να μετονομάσω το audio file για το %1 σε %2"
+msgstr ""
-#: session_state.cc:890
-#, fuzzy
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
-msgstr "%1: το αÏχείο πληÏοφοÏιών καταστάσεως συνεδÏίας \"%2\" δεν υπάÏχει!"
+msgstr ""
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "Δεν μπόÏεσα να κατανοήσω το ardour αÏχείο %1"
+msgstr ""
-#: session_state.cc:911
-#, fuzzy
+#: session_state.cc:819
msgid "Session file %1 is not a session"
-msgstr "ΑÏχείο Ïυθμίσεων %1 δεν αποθηκεÏθηκε"
+msgstr ""
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
"σφάλμα Ï€ÏογÏαμματισμοÏ: ΣυνεδÏία: λανθασμένος κόμβος XML εστάλη στην "
"set_state()"
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα επιλογών(options)"
-#: session_state.cc:1262
-#, fuzzy
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
-msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα διαδÏομών"
+msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα πηγών"
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα Tempo Map"
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα τοποθεσιών"
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα ΠεÏιοχών"
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα playlists"
-#: session_state.cc:1340
-#, fuzzy
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
-msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα διαδÏομών"
+msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα diskstreams"
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα διαδÏομών"
-#: session_state.cc:1372
-#, fuzzy
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
-msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα διαδÏομών"
+msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα επεξεÏ/σίας ομάδων"
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα μίξεως ομάδων"
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα μετÏονόμου"
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω ΔιαδÏομή από XML πεÏιγÏαφή."
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr ""
-#: session_state.cc:1546
-#, fuzzy
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
-msgstr "Δεν ευÏέθη το αÏχείο μέλους"
+msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω ΠεÏιοχή από XML πεÏιγÏαφή."
-#: session_state.cc:1604
-#, fuzzy
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω νέο όνομα για την πεÏιοχή \"%1\""
+msgstr ""
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
-#, fuzzy
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω νέο όνομα για την πεÏιοχή \"%1\""
+msgstr ""
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
"ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή είναι ημιτελής (δίχως πηγή)"
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
"ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή αναφέÏει άγνωστο id πηγής ="
"%1"
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
@@ -2151,188 +1974,151 @@ msgstr ""
"ΣυνεδÏία: Ο XMLNode που πεÏιγÏάφει AudioRegion αναφέÏει μη-ηχητική πηγή με "
"id =%1"
-#: session_state.cc:1820
-#, fuzzy
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-"ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή είναι ημιτελής (δίχως πηγή)"
-#: session_state.cc:1854
-#, fuzzy
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-"ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή είναι ημιτελής (δίχως πηγή)"
-#: session_state.cc:1862
-#, fuzzy
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-"ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή αναφέÏει άγνωστο id πηγής ="
-"%1"
-#: session_state.cc:1868
-#, fuzzy
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-"ΣυνεδÏία: Ο XMLNode που πεÏιγÏάφει AudioRegion αναφέÏει μη-ηχητική πηγή με "
-"id =%1"
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω Πηγή από XML πεÏιγÏαφή."
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr ""
-#: session_state.cc:2016
-#, fuzzy
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
-"ΕυÏέθη sound file που δεν μποÏεί να χÏησιμοποιηθεί από τον Ardour. "
-"Επικοινωνήστε με τους Ï€ÏογÏαμματιστές."
-#: session_state.cc:2033
-#, fuzzy
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
-msgstr "Δεν μπόÏεσα να δημιουÏγήσω φάκελο Ï€Ïοσχεδίων μίξεως \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "Το Ï€Ïοσχέδιο \"%1\" ήδη υπάÏχει - νέα έκδοση δεν δημιουÏγήθηκε"
-#: session_state.cc:2052
-#, fuzzy
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
-msgstr "Δεν μπόÏεσα να δημιουÏγήσω φάκελο Ï€Ïοσχεδίων μίξεως \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2062
-#, fuzzy
+#: session_state.cc:1978
msgid "template not saved"
-msgstr "Ï€Ïοσχέδιο μίξεως δεν αποθηκεÏτηκε"
+msgstr ""
-#: session_state.cc:2072
-#, fuzzy
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
-msgstr "Δεν μπόÏεσα να δημιουÏγήσω φάκελο Ï€Ïοσχεδίων μίξεως \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2267
-#, fuzzy
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr ""
-"Άγνωστος κόμβος \"%1\" ευÏέθη στη λίστα 'Συνδέσεις' από το αÏχείο καταστάσεως"
-#: session_state.cc:2809 session_state.cc:2815
-#, fuzzy
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
-msgstr "δεν μποÏÏŽ να ελέγξω το μονοπάτι συνεδÏίας %1 (%2)"
+msgstr ""
-#: session_state.cc:2868
-#, fuzzy
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
-msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω peakfile dir συνεδÏίας \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2907
-#, fuzzy
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
-msgstr "δεν μποÏÏŽ να μετονομάσω την πηγή του audio file από %1 σε %2 (%3)"
+msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr "δεν μποÏÏŽ να απαλοίψω το peakfile %1 για %2 (%3)"
-#: session_state.cc:3227
-#, fuzzy
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-"δεν μπόÏεσα να διασώσω το παλαιό αÏχείο καταστάσεως, η Ï„Ïέχουσα κατάσταση "
-"δεν αποθηκεÏτηκε."
-#: session_state.cc:3240
-#, fuzzy
+#: session_state.cc:3156
msgid "history could not be saved to %1"
-msgstr "η κατάσταση δεν μποÏοÏσε να σωθεί στο %1"
+msgstr ""
-#: session_state.cc:3243
-#, fuzzy
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
-msgstr "αδÏνατη η επαναφοÏά του state file από backup %1"
+msgstr ""
-#: session_state.cc:3247
-#, fuzzy
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
-msgstr "αδÏνατη η επαναφοÏά του state file από backup %1"
+msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
-#, fuzzy
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
-msgstr "Δεν μπόÏεσα να κατανοήσω το ardour αÏχείο %1"
+msgstr ""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
-#, fuzzy
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
-msgstr "ΣυνεδÏία: δεν μπόÏεσα να φοÏτώσω diskstream μέσω καταστάσεως XML"
+msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr "ΣυνεδÏία: δεν μπόÏεσα να φοÏτώσω diskstream μέσω καταστάσεως XML"
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
-msgstr "Άγνωστη κατάσταση του JACK transport %1 στην ανάκληση sync"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
+msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr "Δεν γίνεται loop - κανένα διάστημα loop δεν Ï€ÏοσδιοÏίστηκε"
-#: session_transport.cc:728
-#, fuzzy
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-"Μονοκόμματο looping δεν υποστηÏίζεται ενώ ο Ardour χÏησιμοποιεί το JACK "
-"transport.\n"
-"ΣυνιστοÏμε την αλλαγή των διαμοÏφωμένων Ïυθμίσεων"
-#: session_transport.cc:1094
-#, fuzzy
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
msgstr ""
-"Η Global varispeed δεν μποÏεί να υποστηÏιχθεί ενώ ο Ardour είναι "
-"συνδεδεμένος με τον JACK transport control"
#: smf_source.cc:252
msgid "Unable to read event prefix, corrupt MIDI ring"
@@ -2351,9 +2137,8 @@ msgid "Skipping event with unordered time %1"
msgstr ""
#: smf_source.cc:410
-#, fuzzy
msgid "cannot open MIDI file %1 for write"
-msgstr "δεν μποÏÏŽ να δημιουÏγήσω νέο αÏχείο ήχου \"%1\" για %2"
+msgstr ""
#: sndfile_helpers.cc:32
msgid "WAV"
@@ -2428,18 +2213,16 @@ msgid "Signed 8 bit PCM"
msgstr ""
#: sndfile_helpers.cc:68
-#, fuzzy
msgid "32 bit float"
-msgstr "32 bit"
+msgstr ""
#: sndfile_helpers.cc:81
msgid "Little-endian (Intel)"
msgstr "Little-endian (Intel)"
#: sndfile_helpers.cc:82
-#, fuzzy
msgid "Big-endian (PowerPC)"
-msgstr "Big-endian (Mac)"
+msgstr ""
#: sndfilesource.cc:201
msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)"
@@ -2462,25 +2245,23 @@ msgstr ""
"info για αυτό το αÏχείο"
#: sndfilesource.cc:302
-#, fuzzy
msgid "could not allocate file %1 for reading."
-msgstr "Δεν μπόÏεσα να ανοίξω Ï€Ïοσχέδιο μίξεως %1 για ανάγνωση"
+msgstr ""
#: sndfilesource.cc:337
msgid "SndFileSource: could not seek to frame %1 within %2 (%3)"
msgstr "SndFileSource: δεν μποÏοÏσα να αναζητήσω στο frame %1 μέσα στο %2 (%3)"
#: sndfilesource.cc:347
-#, fuzzy
msgid ""
"SndFileSource: @ %1 could not read %2 within %3 (%4) (len = %5, ret was %6)"
-msgstr "SndFileSource: δεν μποÏοÏσα να αναζητήσω στο frame %1 μέσα στο %2 (%3)"
+msgstr ""
#: sndfilesource.cc:391 sndfilesource.cc:420
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1 %2"
@@ -2506,20 +2287,16 @@ msgid "attempt to set BWF info for an un-opened audio file source (%1)"
msgstr ""
#: sndfilesource.cc:614
-#, fuzzy
msgid "%1: cannot seek to %2 (libsndfile error: %3)"
-msgstr "%1: δεν μποÏÏŽ να αναζητήσω στο %2 για εξαγωγή"
+msgstr ""
#: sndfilesource.cc:727
-#, fuzzy
msgid "SndFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)"
msgstr ""
-"ΚαταστÏεπτικήΠηγήΑÏχείου: \"%1\" κακή ανάγνωση retval: %2 of %5 (%3: %4)"
#: sndfilesource.cc:740 sndfilesource.cc:790 sndfilesource.cc:797
-#, fuzzy
msgid "SndFileSource: \"%1\" bad write (%2)"
-msgstr "FileSource: \"%1\" κακή εγγÏαφή (%2)"
+msgstr ""
#: sndfilesource.cc:820
msgid ""
@@ -2560,18 +2337,16 @@ msgid "TempoSection XML node has an illegal \"beats_per_minute\" value"
msgstr "Κόμβος του TempoSection XML έχει αθέμιτη \"κτÏπων_ανά_λεπτό\" αξία"
#: tempo.cc:108
-#, fuzzy
msgid "TempoSection XML node has an illegal \"note-type\" value"
-msgstr "Κόμβος του MeterSection XML έχει αθέμιτη \"Ï„Ïπος-νότας\" αξία"
+msgstr ""
#: tempo.cc:114
msgid "TempoSection XML node has no \"movable\" property"
msgstr "Κόμβος του TempoSection XML δεν έχει \"κινητή\" ιδιότητα"
#: tempo.cc:124
-#, fuzzy
msgid "TempoSection XML node has an illegal \"bar-offset\" value"
-msgstr "Κόμβος του TempoSection XML έχει αθέμιτη αξία \"έναÏξη\""
+msgstr ""
#: tempo.cc:201
msgid "MeterSection XML node has no \"start\" property"
@@ -2582,18 +2357,16 @@ msgid "MeterSection XML node has an illegal \"start\" value"
msgstr "Κόμβος του MeterSection XML έχει αθέμιτη \"έναÏξη\" αξία"
#: tempo.cc:219
-#, fuzzy
msgid ""
"MeterSection XML node has no \"beats-per-bar\" or \"divisions-per-bar\" "
"property"
-msgstr "Κόμβος του MeterSection XML δεν έχει \"κτÏπων-ανά-μπάÏα\" ιδιότητα"
+msgstr ""
#: tempo.cc:225
-#, fuzzy
msgid ""
"MeterSection XML node has an illegal \"beats-per-bar\" or \"divisions-per-bar"
"\" value"
-msgstr "Κόμβος του MeterSection XML έχει αθέμιτη \"κτÏπων-ανά-μπάÏα\" αξία"
+msgstr ""
#: tempo.cc:230
msgid "MeterSection XML node has no \"note-type\" property"
@@ -2671,9 +2444,8 @@ msgid ""
msgstr ""
#: user_bundle.cc:47
-#, fuzzy
msgid "Node for Bundle has no \"name\" property"
-msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν έχει \"όνομα\" ιδιότητα"
+msgstr ""
#: user_bundle.cc:59 user_bundle.cc:80
#, c-format
@@ -2681,24 +2453,20 @@ msgid "Unknown node \"%s\" in Bundle"
msgstr ""
#: user_bundle.cc:64
-#, fuzzy
msgid "Node for Channel has no \"name\" property"
-msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν έχει \"όνομα\" ιδιότητα"
+msgstr ""
#: user_bundle.cc:70
-#, fuzzy
msgid "Node for Channel has no \"type\" property"
-msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν έχει \"όνομα\" ιδιότητα"
+msgstr ""
#: user_bundle.cc:85
-#, fuzzy
msgid "Node for Port has no \"name\" property"
-msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν έχει \"όνομα\" ιδιότητα"
+msgstr ""
#: utils.cc:358 utils.cc:382
-#, fuzzy
msgid "Splice"
-msgstr "αντιγÏαφή"
+msgstr ""
#: utils.cc:360 utils.cc:375
msgid "Slide"
@@ -2709,1027 +2477,41 @@ msgid "Lock"
msgstr ""
#: utils.cc:365
-#, fuzzy
msgid "programming error: unknown edit mode string \"%1\""
-msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος of Redirect διεγÏάφη!"
+msgstr ""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr ""
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr ""
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr ""
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr ""
#: utils.cc:401
-#, fuzzy
msgid "programming error: unknown sync source string \"%1\""
-msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος Εισόδου εδημιουÏγήθη!"
+msgstr ""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr ""
-#: utils.cc:429
+#: utils.cc:432
msgid "LTC"
msgstr ""
-#: utils.cc:599
-#, fuzzy
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
-msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος Redirect εδημιουÏγήθη!"
+msgstr ""
-#: utils.cc:614
-#, fuzzy
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
-msgstr "δεν μποÏÏŽ να ανοίξω το Ï€Ïόσφατο αÏχείο συνεδÏίας %1 (%2)"
-
-#, fuzzy
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "AudioDiskstream: κανάλι %1 εκτός διαστήματος"
-
-#~ msgid "timefx code failure. please notify ardour-developers."
-#~ msgstr ""
-#~ "αποτυχία κώδικα timefx. παÏακαλώ ειδοποιήστε τους Ï€ÏογÏαμματιστές του "
-#~ "ardour."
-
-#~ msgid "Session: you can't use a mark for auto loop"
-#~ msgstr "ΣυνεδÏία: δεν μποÏείτε να χÏησιμοποιήσετε στίγμα για auto loop"
-
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "Δεν μπόÏεσα να κατανοήσω το ardour αÏχείο %1"
-
-#, fuzzy
-#~ msgid "control protocol XML node has no name property. Ignored."
-#~ msgstr "Το όνομα Ï€Ïωτοκόλλου ελέγχου \"%1\" δεν έχει descriptor"
-
-#, fuzzy
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr "Το όνομα Ï€Ïωτοκόλλου ελέγχου \"%1\" δεν έχει descriptor"
-
-#~ msgid ""
-#~ "programming error: non-audio Region passed to remove_overlap in audio "
-#~ "playlist"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: μη-ηχητική ΠεÏιοχή πέÏασε σε remove_overlap στην "
-#~ "audio playlist"
-
-#~ msgid ""
-#~ "programming error: non-audio Region tested for overlap in audio playlist"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: μη-ηχητική ΠεÏιοχή ελέγχθη για υπεÏπήδηση"
-#~ "(overlap) στην λίστα αναπαÏ/γής του ήχου"
-
-#~ msgid "Crossfade: no \"in\" region in state"
-#~ msgstr "Crossfade: χωÏίς \"in\" πεÏιοχή σε κατάσταση"
-
-#, fuzzy
-#~ msgid ""
-#~ "Crossfade: no \"in\" region %1 found in playlist %2 nor in region map"
-#~ msgstr "Crossfade: no \"in\" πεÏιοχή %1 δεν ευÏέθη στη λίστα αναπαÏ/γής %2"
-
-#~ msgid "Crossfade: no \"out\" region in state"
-#~ msgstr "Crossfade: χωÏίς \"out\" πεÏιοχή σε κατάσταση"
-
-#, fuzzy
-#~ msgid ""
-#~ "Crossfade: no \"out\" region %1 found in playlist %2 nor in region map"
-#~ msgstr ""
-#~ "Crossfade: no \"out\" πεÏιοχή %1 δεν ευÏέθη στη λίστα αναπαÏ/γής %2"
-
-#~ msgid "old-style crossfade information - no position information"
-#~ msgstr "παλαιοÏ-Ï„Ïπου crossfade πληÏοφοÏία - καμία πληÏοφοÏία θέσεως"
-
-#~ msgid "Chunk %1 uses an unknown playlist \"%2\""
-#~ msgstr "Το κομμάτι %1 χÏησιμοποιεί άγνωστη λίστα αναπαÏ/γής \"%2\""
-
-#~ msgid "Chunk %1 contains malformed playlist information"
-#~ msgstr ""
-#~ "Το κομμάτι %1 πεÏιέχει δÏσμοÏφες πληÏοφοÏίες για τη λίστα αναπαÏ/γής"
-
-#~ msgid "signal"
-#~ msgstr "σήμα"
-
-#, fuzzy
-#~ msgid "editor"
-#~ msgstr "monitor"
-
-#, fuzzy
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr "Το Ï€Ïοσχέδιο \"%1\" ήδη υπάÏχει - νέα έκδοση δεν δημιουÏγήθηκε"
-
-#~ msgid "Session: cannot create Named Selection from XML description."
-#~ msgstr ""
-#~ "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω την ονομασμένη επιλογή από την XML "
-#~ "πεÏιγÏαφή."
-
-#, fuzzy
-#~ msgid "Unable to create a backup copy of file %1 (%2)"
-#~ msgstr "audiofilter: σφάλμα στη δημιουÏγία νέου audio file %1 (%2)"
-
-#, fuzzy
-#~ msgid "programming error: realpath(%1) failed, errcode %2"
-#~ msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1 %2"
-
-#~ msgid "illegal or badly-formed string used for path (%1)"
-#~ msgstr "αθέμιτη ή κακοσχηματισμένη γÏαμμή για το μονοπάτι (%1)"
-
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "Το μονοπάτι (%1) είναι αμφίβολο"
-
-#, fuzzy
-#~ msgid "Could not move capture file from %1"
-#~ msgstr "αδÏνατη η επαναφοÏά του state file από backup %1"
-
-#~ msgid "cannot open click emphasis soundfile %1 (%2)"
-#~ msgstr "δεν μποÏÏŽ να ανοίξω το soundfile εμφάσεως μετÏονόμου %1 (%2)"
-
-#~ msgid "cannot read data from click emphasis soundfile"
-#~ msgstr "δεν μποÏÏŽ να διαβάσω δεδομένα από το soundfile εμφάσεως μετÏονόμου"
-
-#, fuzzy
-#~ msgid "Reset Control Protocols"
-#~ msgstr "ΠÏωτόκολλο ελέγχου %1 μη χÏησιμοποιήσιμο"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub sounds dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο ήχων συνεδÏίας \"%1\" (%2)"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub midi dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο ήχων συνεδÏίας \"%1\" (%2)"
-
-#, fuzzy
-#~ msgid "Session: XML state has no speakers section - assuming simple stereo"
-#~ msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα πηγών"
-
-#, fuzzy
-#~ msgid "could not allocate file %1"
-#~ msgstr "αδÏνατη η διαγÏαφή αÏχείου διεφθαÏμένης state %1"
-
-#~ msgid ""
-#~ "badly formatted pan automation event record at line %1 of %2 (ignored) "
-#~ "[%3]"
-#~ msgstr ""
-#~ "δÏσμοÏφη εγγÏαφή συμβάντος pan Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÏ„Î· γÏαμμή %1 of %2 "
-#~ "(αγνοήθηκε) [%3]"
-
-#~ msgid "badly-formed positional data for Multi2dPanner - ignored"
-#~ msgstr "δÏσμοÏφα δεδομένα θέσεως για το Multi2dPanner - αγνοήθηκε"
-
-#~ msgid "programming error:"
-#~ msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ:"
-
-#~ msgid "cannot open pan automation file %1 (%2)"
-#~ msgstr "δεν μποÏÏŽ να ανοίξω αÏχείο Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Ï„Î¿Ï… pan %1 (%2)"
-
-#~ msgid "badly formed version number in pan automation event file \"%1\""
-#~ msgstr ""
-#~ "δÏσμοÏφος αÏιθμός εκδόσεως στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Ï„Î¿Ï… pan "
-#~ "\"%1\""
-
-#~ msgid ""
-#~ "no version information in pan automation event file \"%1\" (first line = "
-#~ "%2)"
-#~ msgstr ""
-#~ "καμία πληÏοφοÏία εκδόσεως στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Ï„Î¿Ï… pan "
-#~ "\"%1\" (Ï€Ïώτη γÏαμμή = %2)"
-
-#~ msgid "too many panner states found in pan automation file %1"
-#~ msgstr ""
-#~ "πάÏα πολλές καταστάσεις panner ευÏέθησαν στο αÏχείο των αυτοματισμών pan "
-#~ "%1"
-
-#~ msgid "AudioDiskstream: Session doesn't know about a Playlist called \"%1\""
-#~ msgstr ""
-#~ "AudioDiskStream: Η ΣυνεδÏία δεν γνωÏίζει για λίστα ΑναπαÏ/γής με όνομα "
-#~ "\"%1\""
-
-#~ msgid "%1: cannot create region from pending capture sources"
-#~ msgstr "%1: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για τις απαιτοÏμενες πηγές"
-
-#~ msgid "xfade change"
-#~ msgstr "αλλαγή xfade"
-
-#~ msgid "region modified"
-#~ msgstr "η πεÏιοχή μετεβλήθη"
-
-#~ msgid "AudioTrack: diskstream \"%1\" not known by session"
-#~ msgstr ""
-#~ "AudioTrack: το diskstream \"%1\" είναι μή αναγνωÏίσιμο από τη συνεδÏία"
-
-#~ msgid ""
-#~ "MIDI rec_enable control specification for %1 is incomplete, so it has "
-#~ "been ignored"
-#~ msgstr ""
-#~ "Η Ï€ÏοδιαγÏαφή ελέγχου του MIDI rec_enable για το %1 είναι ημιτελής, με "
-#~ "αποτέλεσμα να αγνοηθεί"
-
-#~ msgid "programming error: AudioTrack given state without diskstream!"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: εδόθη κατάσταση στην AudioTrack δίχως diskstream!"
-
-#~ msgid "cannot activate JACK client"
-#~ msgstr "Ο JACK δεν μποÏεί να ενεÏγοποιηθεί"
-
-#~ msgid "register audio input port called before engine was started"
-#~ msgstr "η register audio input port εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#~ msgid "register audio output port called before engine was started"
-#~ msgstr "η register audio output port εκλήθη Ï€Ïίν να εκκινηθεί η engine"
-
-#~ msgid "get_nth_physical called before engine was started"
-#~ msgstr "η Ïουτίνα get_nth_physical εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#~ msgid "get_port_total_latency() called with no JACK client connection"
-#~ msgstr ""
-#~ "η Ïουτίνα get_port_total_latency() εκλήθη χωÏίς την εκκίνηση κάποιου JACK "
-#~ "client"
-
-#~ msgid "get_port_total_latency() called before engine was started"
-#~ msgstr ""
-#~ "η Ïουτίνα get_port_total_latency() εκλήθη Ï€Ïιν να εκκινηθεί η engine"
-
-#~ msgid "Unable to connect to JACK server"
-#~ msgstr "ΑδÏνατη η σÏνδεση στον JACK server"
-
-#~ msgid "Could not connect to JACK server as \"%1\""
-#~ msgstr "ΑδÏνατη η σÏνδεση στον JACK server ως \"%1\""
-
-#~ msgid "JACK server started"
-#~ msgstr "ΈναÏξη JACK server"
-
-#~ msgid "cannot shutdown connection to JACK"
-#~ msgstr "ΑδÏνατος ο τεÏματισμός συνδέσεως με τον JACK"
-
-#~ msgid "fade in change"
-#~ msgstr "αλλαγή fade in"
-
-#~ msgid "envelope change"
-#~ msgstr "αλλαγή envelope"
-
-#~ msgid "Error on peak thread request pipe"
-#~ msgstr "Σφάλμα στο peak thread request pipe"
-
-#~ msgid "Error reading from peak request pipe"
-#~ msgstr "Σφάλμα στην ανάγνωση από peak request pipe"
-
-#~ msgid "UI: cannot set O_NONBLOCK on peak request pipe (%1)"
-#~ msgstr "UI: δεν μποÏÏŽ να θέσω O_NONBLOCK στο peak read pipe (%1)"
-
-#~ msgid "AudioSource: could not create peak thread"
-#~ msgstr "AudioSource: δεν μπόÏεσα να δημιουÏγήσω peak thread"
-
-#~ msgid "initial"
-#~ msgstr "Ï€ÏωταÏχικό"
-
-#~ msgid "cleared"
-#~ msgstr "εκκαθαÏίσθη"
-
-#~ msgid "added event"
-#~ msgstr "συμβάν Ï€Ïοστέθηκε"
-
-#~ msgid "removed event"
-#~ msgstr "συμβάν απαλοίφθηκε"
-
-#~ msgid "removed multiple events"
-#~ msgstr "πολλαπλά συμβάντα απαλοίφθηκαν"
-
-#~ msgid "removed range"
-#~ msgstr "διάστημα απαλοίφθηκε"
-
-#~ msgid "event range adjusted"
-#~ msgstr "διάστημα συμβάντων Ïυθμίστηκε"
-
-#~ msgid "event adjusted"
-#~ msgstr "συμβάν Ïυθμίστηκε"
-
-#~ msgid "cut/copy/clear"
-#~ msgstr "κοπή/αντιγÏαφή/εκκαθάÏιση"
-
-#~ msgid "copy"
-#~ msgstr "αντιγÏαφή"
-
-#~ msgid "ill-formed MIDI port specification in ardour rcfile (ignored)"
-#~ msgstr ""
-#~ "κακοσχηματισμένος καθοÏισμός MIDI θÏÏας στο ardour rcfile (αγνοήθηκε)"
-
-#~ msgid "Node for Connection has no \"connections\" property"
-#~ msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν έχει \"συνδέσεις\" ιδιότητα"
-
-#~ msgid "active changed"
-#~ msgstr "αλλαγή ενεÏγοÏ"
-
-#~ msgid "DestructiveFileSource: \"%1\" bad write (%2)"
-#~ msgstr "DestructiveFileSource: \"%1\" κακή εγγÏαφή (%2)"
-
-#~ msgid "no MIDI ports specified: no MMC or MTC control possible"
-#~ msgstr "καμία MIDI θÏÏα δεν επελέχθη: έλεγχος MMC ή MTC αδÏνατος"
-
-#~ msgid "MIDI port specifications for \"%1\" are not understandable."
-#~ msgstr "Οι Ï€ÏοδιαγÏαφές της θÏÏας MIDI για το \"%1\" δεν είναι κατανοητές."
-
-#~ msgid "default"
-#~ msgstr "Ï€ÏοκαθοÏισμένο"
-
-#~ msgid "No MMC control (MIDI port \"%1\" not available)"
-#~ msgstr "ΧωÏίς έλεγχο MMC (θÏÏα MIDI \"%1\" μη διαθέσιμη)"
-
-#~ msgid "No MTC support (MIDI port \"%1\" not available)"
-#~ msgstr "ΧωÏίς έλεγχο MTC (θÏÏα MIDI \"%1\" μη διαθέσιμη)"
-
-#~ msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
-#~ msgstr "ΧωÏίς υποστήÏιξη MIDI παÏαμέτÏων (θÏÏα MIDI \"%1\" μη διαθέσιμη)"
-
-#~ msgid "resampling audio"
-#~ msgstr "επανά-ληψη(resampling) ήχου"
-
-#~ msgid "Import: cannot open converted sound file \"%1\""
-#~ msgstr "Εισαγωγή: δεν μποÏÏŽ να ανοίξω το Ï„Ïοποποιημένο αÏχείο ήχου \"%1\""
-
-#~ msgid ""
-#~ "Session::import_audiofile: cannot open new file source for channel %1"
-#~ msgstr ""
-#~ "ΣυνεδÏία::εισαγωγή_αÏχείου: δεν μποÏÏŽ να ανοίξω νέα πηγή αÏχείου για το "
-#~ "κανάλι %1"
-
-#~ msgid "Import: could not open temp file: %1"
-#~ msgstr "Εισαγωγή: δεν μπόÏεσα να ανοίξω το temp αÏχείο: %1"
-
-#~ msgid "XML node describing insert is missing the `id' field"
-#~ msgstr "Στον κόμβο XML που πεÏιγÏάφει το insert λείπει το πεδίο `id'"
-
-#~ msgid "XML node describing insert is missing a Redirect node"
-#~ msgstr "Στον κόμβο XML που πεÏιγÏάφει το insert λείπει ένας κόμβος Redirect"
-
-#~ msgid "XML node describing a plugin insert is missing the `%1' information"
-#~ msgstr ""
-#~ "Στον κόμβο XML που πεÏιγÏάφει ένα plugin insert λείπουν οι πληÏοφοÏίες `"
-#~ "%1' "
-
-#~ msgid ""
-#~ "XML node describing a port automation is missing the `%1' information"
-#~ msgstr ""
-#~ "Στον κόμβο XML που πεÏιγÏάφει έναν αυτοματισμό θÏÏας λείπουν οι "
-#~ "πληÏοφοÏίες `%1' "
-
-#~ msgid "PortInsert: cannot add input port"
-#~ msgstr "PortInsert: δεν μποÏεί να Ï€Ïοστεθει θÏÏα εισόδου"
-
-#~ msgid "PortInsert: cannot add output port"
-#~ msgstr "PortInsert: δεν μποÏεί να Ï€Ïοστεθεί θÏÏα εξόδου"
-
-#~ msgid "IO: cannot disconnect output port %1 from %2"
-#~ msgstr "IO: δεν μποÏεί να αποσυνδεθεί η θÏÏα εξόδου %1 από %2"
-
-#~ msgid "%s/out"
-#~ msgstr "%s/out"
-
-#~ msgid "%s/out %u"
-#~ msgstr "%s/out %u"
-
-#~ msgid "%s/in"
-#~ msgstr "%s/in"
-
-#~ msgid "%s/in %u"
-#~ msgstr "%s/in %u"
-
-#~ msgid "IO::connecting_became_legal() called without a pending state node"
-#~ msgstr ""
-#~ "IO::connecting_became_legal() εκλήθη χωÏίς κόμβο καταστάσεως εν αναμονή"
-
-#~ msgid "IO::ports_became_legal() called without a pending state node"
-#~ msgstr "IO::ports_became_legal() εκλήθη χωÏίς κόμβο καταστάσεως εν αναμονή"
-
-#~ msgid ""
-#~ "MIDI gain control specification for %1 is incomplete, so it has been "
-#~ "ignored"
-#~ msgstr ""
-#~ "Η Ï€ÏοδιαγÏαφή ελέγχου του MIDI gain για το %1 είναι ημιτελής, με "
-#~ "αποτέλεσμα να αγνοηθεί"
-
-#~ msgid "Unknown connection \"%1\" listed for output of %2"
-#~ msgstr "Άγνωστη σÏνδεση \"%1\" καταχωÏήθη για την έξοδο του %2"
-
-#~ msgid "No output connections available as a replacement"
-#~ msgstr "Καμία σÏνδεση output διαθέσιμη σαν εναλλακτική"
-
-#~ msgid "Connection %1 was not available - \"out 1\" used instead"
-#~ msgstr ""
-#~ "Η σÏνδεση %1 δεν ήταν διαθέσιμη - αντ'αυτής χÏησιμοποιήθηκε η \"out 1\" "
-
-#~ msgid "improper output channel list in XML node (%1)"
-#~ msgstr "ασαφής λίστα καναλιών εξόδου στον κόμβο XML (%1)"
-
-#~ msgid "%1: could not open automation event file \"%2\""
-#~ msgstr "%1: δεν μπόÏεσα να ανοίξω το αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%2\""
-
-#~ msgid "%1: cannot open automation event file \"%2\""
-#~ msgstr "%1: δεν μποÏÏŽ να ανοίξω το αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%2\""
-
-#~ msgid "badly formed version number in automation event file \"%1\""
-#~ msgstr "δÏσμοÏφος αÏιθμός εκδόσεως στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%1\""
-
-#~ msgid "no version information in automation event file \"%1\""
-#~ msgstr ""
-#~ "δεν υπάÏχουν πληÏοφοÏίες πεÏί εκδόσεων στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï "
-#~ "\"%1\""
-
-#~ msgid "mismatched automation event file version (%1)"
-#~ msgstr "αταίÏιαστη έκδοση αÏχείου συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (%1)"
-
-#~ msgid "badly formatted automation event record at line %1 of %2 (ignored)"
-#~ msgstr ""
-#~ "κακώς φοÏμαÏισμένη καταγÏαφή συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÏ„Î· γÏαμμή %1 of %2 "
-#~ "(αγνοήθηκε)"
-
-#~ msgid "loaded from disk"
-#~ msgstr "φοÏτώθηκε από το δίσκο"
-
-#~ msgid "automation write/touch"
-#~ msgstr "αυτοματισμός εγγÏαφή/αφή(write/touch)"
-
-#~ msgid ""
-#~ "LADSPA LadspaPlugin MIDI control specification for port %1 is incomplete, "
-#~ "so it has been ignored"
-#~ msgstr ""
-#~ "Ο καθοÏισμός ελέγχου LADSPA LadspaPlugin για MIDI για την θÏÏα %1 είναι "
-#~ "ημιτελής, έτσι αγνοήθηκε."
-
-#~ msgid "clear"
-#~ msgstr "εκκαθάÏιση"
-
-#~ msgid "clear markers"
-#~ msgstr "εκκαθάÏιση στιγμάτων"
-
-#~ msgid "clear ranges"
-#~ msgstr "εκκαθάÏιση διαστημάτων"
-
-#~ msgid "add"
-#~ msgstr "Ï€Ïόσθεση"
-
-#~ msgid "remove"
-#~ msgstr "απαλοιφή"
-
-#~ msgid "MIDI pan control specification is incomplete, so it has been ignored"
-#~ msgstr ""
-#~ "Η Ï€ÏοδιαγÏαφή ελέγχου του MIDI pan είναι ημιτελής, με αποτέλεσμα να "
-#~ "αγνοηθεί"
-
-#~ msgid "automation write pass"
-#~ msgstr "πέÏασμα εγγÏαφής αυτοματισμοÏ"
-
-#~ msgid "error writing pan automation file (%s)"
-#~ msgstr "σφάλμα στην εγγÏαφή του pan στο αÏχείο Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (%s)"
-
-#~ msgid "cannot open pan automation file \"%1\" for saving (%s)"
-#~ msgstr ""
-#~ "δεν μποÏÏŽ να ανοίξω αÏχείο Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Ï„Î¿Ï… pan \"%1\" για αποθήκευση (%s)"
-
-#~ msgid "mismatched pan automation event file version (%1)"
-#~ msgstr "αταίÏιαστη έκδοση αÏχείου συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Î³Î¹Î± το pan (%1)"
-
-#~ msgid "playlist const copy constructor called"
-#~ msgstr "λίστα αναπαÏ/γής const εκλήθη από κατασκευαστή αντιγÏάφου"
-
-#~ msgid "playlist non-const copy constructor called"
-#~ msgstr "λίστα αναπαÏ/γής non-const εκλήθη από κατασκευαστή αντιγÏάφου"
-
-#~ msgid "remove region"
-#~ msgstr "απαλοιφή πεÏιοχής"
-
-#~ msgid "separate"
-#~ msgstr "ξεχωÏιστό"
-
-#~ msgid "split"
-#~ msgstr "διαχωÏισμός"
-
-#~ msgid "%1: bounds changed received for region (%2)not in playlist"
-#~ msgstr ""
-#~ "%1: τα αλλαγμένα ÏŒÏια που ελήφθησαν για την πεÏιοχή (%2)δεν είναι στη "
-#~ "λίστα αναπαÏ/γής"
-
-#~ msgid "nudged"
-#~ msgstr "νυχθέν"
-
-#~ msgid ""
-#~ "programming error: Playlist::copyPlaylist called with unknown Playlist "
-#~ "type"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: Playlist::copyPlaylist με άγνωστο Ï„Ïπο Playlist"
-
-#~ msgid "VST: cannot load module from \"%1\""
-#~ msgstr "VST: δεν μποÏÏŽ να φοÏτώσω module από \"%1\""
-
-#~ msgid "You asked ardour to not use any VST plugins"
-#~ msgstr "Ζητήσατε απ'το Ardour να μή χÏησιμοποιήσει VST plugins"
-
-#~ msgid "This version of ardour has no support for VST plugins"
-#~ msgstr "Η παÏοÏσα έκδοση του ardour δεν υποστηÏίζει VST plugins"
-
-#~ msgid "programming error: unknown Redirect type in Redirect::Clone!\n"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος Redirect στο Redirect::Clone!\n"
-
-#~ msgid "pre"
-#~ msgstr "pre"
-
-#~ msgid "post"
-#~ msgstr "post"
-
-#~ msgid "Redirect: unknown placement string \"%1\" (ignored)"
-#~ msgstr "Redirect: άγνωστη γÏαμμή τοποθετήσεως \"%1\" (αγνοήθηκε)"
-
-#~ msgid "%1: cannot open %2 to store automation data (%3)"
-#~ msgstr ""
-#~ "%1: δεν μποÏÏŽ να ανοίξω %2 για αποθήκευση δεδομένων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (%3)"
-
-#~ msgid "%1: could not save automation state to %2"
-#~ msgstr "%1: δεν μπόÏεσα να αποθηκεÏσω την κατάσταση Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÏ„Î¿ %2"
-
-#~ msgid ""
-#~ "Could not get state from Redirect (%1). Problem with save_automation"
-#~ msgstr ""
-#~ "Δεν μπόÏεσα να πάÏω κατάσταση από το Redirect (%1). ΠÏόβλημα με την "
-#~ "αποθήκευση_αυτοματισμοÏ"
-
-#~ msgid "incorrect XML node \"%1\" passed to Redirect object"
-#~ msgstr "λανθασμένος κόμβος XML \"%1\" πέÏασε στο αντικείμενο Redirect"
-
-#~ msgid "XML node describing an IO is missing an IO node"
-#~ msgstr "Στον κόμβο XML που πεÏιγÏάφει I/O λείπει ένας κόμβος IO"
-
-#~ msgid "XML node describing a redirect is missing the `active' field"
-#~ msgstr ""
-#~ "Στον κόμβο XML που πεÏιγÏάφει ένα redirect λείπει το πεδίο "
-#~ "`ενεÏγό'(active)"
-
-#~ msgid "XML node describing a redirect is missing the `placement' field"
-#~ msgstr ""
-#~ "Στον κόμβο XML που πεÏιγÏάφει ένα redirect λείπει το πεδίο "
-#~ "`τοποθέτηση'(placement)"
-
-#~ msgid "active_changed"
-#~ msgstr "αλλαγή_ενεÏγοÏ"
-
-#~ msgid "Session: XMLNode describing a Region is incomplete (no id)"
-#~ msgstr ""
-#~ "ΣυνεδÏία: XMLΚόμβος που πεÏιγÏάφει ΠεÏιοχή είναι ημιτελής (χωÏίς id)"
-
-#~ msgid "Session: XMLNode describing a Region is incomplete (no name)"
-#~ msgstr ""
-#~ "ΣυνεδÏία: XMLΚόμβος που πεÏιγÏάφει ΠεÏιοχή είναι ημιτελής (χωÏίς όνομα)"
-
-#~ msgid "Could not get state of route. Problem with save_automation"
-#~ msgstr ""
-#~ "Δεν μπόÏεσα να πάÏω κατάσταση διαδÏομής. ΠÏόβλημα με "
-#~ "αποθήκευση_αυτοματισμοÏ"
-
-#~ msgid "Send construction failed"
-#~ msgstr "Αποστολή κατασκευής απέτυχε"
-
-#~ msgid "Insert XML node has no type property"
-#~ msgstr "Εισηχθέντας κόμβος XML δεν έχει στοιχεία Ï„Ïπου"
-
-#~ msgid "Route %1: unknown edit group \"%2 in saved state (ignored)"
-#~ msgstr ""
-#~ "Route %1: άγνωστη ομάδα επεξεÏγασίας \"%2 στην αποθηκευμένη κατάσταση "
-#~ "(αγνοήθηκε)"
-
-#~ msgid "Route %1: unknown mix group \"%2 in saved state (ignored)"
-#~ msgstr ""
-#~ "Route %1: άγνωστη ομάδα μίξεως \"%2 στην αποθηκευμένη κατάσταση "
-#~ "(αγνοήθηκε)"
-
-#~ msgid ""
-#~ "MIDI mute control specification for %1 is incomplete, so it has been "
-#~ "ignored"
-#~ msgstr ""
-#~ "Η Ï€ÏοδιαγÏαφή ελέγχου του MIDI mute για το %1 είναι ημιτελής, με "
-#~ "αποτέλεσμα να αγνοηθεί"
-
-#~ msgid "XML node describing a send is missing a Redirect node"
-#~ msgstr ""
-#~ "Στον κόμβο XML όπου πεÏιγÏάφεται ένα send λείπει ένας κόμβος Redirect"
-
-#~ msgid "cannot setup master inputs"
-#~ msgstr "δεν μποÏÏŽ να διαμοÏφώσω τις master εισόδους"
-
-#~ msgid "cannot setup master outputs"
-#~ msgstr "δεν μποÏÏŽ να διαμοÏφώσω τις master εξόδους"
-
-#~ msgid "cannot setup control inputs"
-#~ msgstr "δεν μποÏÏŽ να διαμοÏφώσω τις εισόδους ελέγχου"
-
-#~ msgid "cannot set up master outputs"
-#~ msgstr "δεν μποÏÏŽ να διαμοÏφώσω τις εξόδους ελέγχου"
-
-#~ msgid "too many regions with names like %1"
-#~ msgstr "πάÏα πολλές πεÏιοχές με ονόματα σαν %1"
-
-#~ msgid "programming error: unknown type of Insert deleted!"
-#~ msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος of Insert διεγÏάφη!"
-
-#~ msgid "Export: no output file specified"
-#~ msgstr "Εξαγωγή: κανένα αÏχείο εξόδου δεν Ï€ÏοσδιοÏίστηκε"
-
-#~ msgid "illegal frame range in export specification"
-#~ msgstr "παÏάνομο διάστημα frame στον Ï€ÏοσδιοÏισμό εξαγωγής"
-
-#~ msgid "Bad data width size. Report me!"
-#~ msgstr "Κακό μέγεθος εÏÏους δεδομένων. ΑνάφεÏέ με!"
-
-#~ msgid "Export: cannot open output file \"%1\" (%2)"
-#~ msgstr "Εξαγωγή: δεν μποÏÏŽ να ανοίξω αÏχείο εξόδου \"%1\" (%2)"
-
-#~ msgid "cannot initialize sample rate conversion: %1"
-#~ msgstr "δεν μποÏÏŽ να καλέσω την μετατÏοπή του ÏÏ…Î¸Î¼Î¿Ï Î´ÎµÎ¹Î³Î¼Î±Ï„Î¿Î»Î·ÏˆÎ¯Î±Ï‚: %1"
-
-#~ msgid "warning, leftover frames overflowed, glitches might occur in output"
-#~ msgstr ""
-#~ "Ï€Ïοσοχή, παÏατημένα frames διέÏÏευσαν, πιθανόν να παÏουσιαστοÏν ατέλειες "
-#~ "στην έξοδο"
-
-#~ msgid "Export: could not write data to output file (%1)"
-#~ msgstr "Εξαγωγή: δεν μπόÏεσα να γÏάψω δεδομένα στο αÏχείο εξόδου (%1)"
-
-#~ msgid "Ardour is slaved to MTC - port cannot be reset"
-#~ msgstr "Το Ardour υπακοÏει το MTC - η θÏÏα δεν γίνεται reset"
-
-#~ msgid "unknown port %1 requested for MTC"
-#~ msgstr "Εζητήθη άγνωστη θÏÏα %1 για το MTC"
-
-#~ msgid "Error reading from MIDI port %1"
-#~ msgstr "Σφάλμα στην ανάγνωση της θÏÏας MIDI %1"
-
-#~ msgid "MMC: cannot send command %1%2%3"
-#~ msgstr "MMC: δεν μποÏÏŽ να στείλω την εντολή %1%2%3"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal read pipe (%1)"
-#~ msgstr "UI: δεν μποÏÏŽ να θέσω O_NONBLOCK στο signal read pipe (%1)"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal write pipe (%1)"
-#~ msgstr "UI: δεν μποÏÏŽ να θέσω O_NONBLOCK στο signal write pipe (%1)"
-
-#~ msgid "Session: could not create transport thread"
-#~ msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω δέσμη με transport"
-
-#~ msgid "cannot send signal to midi thread! (%1)"
-#~ msgstr "δεν μποÏÏŽ να στείλω σήμα στη δέσμη midi! (%1)"
-
-#~ msgid "MIDI thread poll failed (%1)"
-#~ msgstr "Αίτηση δέσμης MIDI απέτυχε (%1)"
-
-#~ msgid "Error on transport thread request pipe"
-#~ msgstr "Σφάλμα στο transport thread request pipe"
-
-#~ msgid "Error reading from transport request pipe"
-#~ msgstr "Σφάλμα στην ανάγνωση από transport request pipe"
-
-#~ msgid "end"
-#~ msgstr "τέλος"
-
-#~ msgid "Session: cannot create session tape dir \"%1\" (%2)"
-#~ msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω tape dir συνεδÏίας \"%1\" (%2)"
-
-#~ msgid "Session: cannot create session automation dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο αυτοματισμών της συνεδÏίας "
-#~ "\"%1\" (%2)"
-
-#~ msgid "Session already exists. Not overwriting"
-#~ msgstr "Η ΣυνεδÏία ήδη υπάÏχει. ΑκÏÏωση overwriting"
-
-#~ msgid "Session: XML state has no connections section"
-#~ msgstr "ΣυνεδÏία: η XML κατάσταση δεν έχει τομέα συνδέσεων"
-
-#~ msgid "cannot create dead sounds directory \"%1\"; ignored"
-#~ msgstr "δεν μποÏÏŽ να δημιουÏγήσω τον φάκελο 'dead sounds' \"%1\"; αγνοήθηκε"
-
-#~ msgid "cannot create peak file directory \"%1\"; ignored"
-#~ msgstr "αδÏνατη η δημιουÏγία φακέλου peak file \"%1\"; αγνοήθηκε"
-
-#~ msgid "cannot remove dead sound file %1 (%2)"
-#~ msgstr "δεν μποÏÏŽ να απαλοίψω το 'νεκÏο' ηχο-αÏχείο %1 (%2)"
-
-#~ msgid "tempoize: error creating name for new audio file based on %1"
-#~ msgstr ""
-#~ "tempoize: σφάλμα στη δημιουÏγία ονόματος για νέο αÏχείο ήχου βασισμένο σε "
-#~ "%1"
-
-#~ msgid "tempoize: error creating new audio file %1 (%2)"
-#~ msgstr "tempoize: σφάλμα στη δημιουÏγία νέου αÏχείου ήχου %1 (%2)"
-
-#~ msgid "please stop the transport before adjusting slave settings"
-#~ msgstr ""
-#~ "παÏακαλώ σταματήστε το transport Ï€Ïιν την ÏÏθμιση των επιλογων εξαÏτήσεως"
-
-#~ msgid "No MTC port defined: MTC slaving is impossible."
-#~ msgstr ""
-#~ "Καμμία θÏÏα MTC δεν Ï€ÏοσδιοÏίστηκε: η εξάÏτηση του MTC (slaving) είναι "
-#~ "αδÏνατη."
-
-#~ msgid "PAF (Ensoniq Paris)"
-#~ msgstr "PAF (Ensoniq Paris)"
-
-#~ msgid "AU (Sun/NeXT)"
-#~ msgstr "AU (Sun/NeXT)"
-
-#~ msgid "IRCAM"
-#~ msgstr "IRCAM"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bit"
-
-#~ msgid "24 bit"
-#~ msgstr "24 bit"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bit"
-
-#~ msgid "FileSource: cannot get host information for BWF header (%1)"
-#~ msgstr ""
-#~ "FileSource: δεν μποÏÏŽ να βÏÏŽ πληÏοφοÏίες οικοδεσπότη(host) για "
-#~ "επικεφαλίδα BWF (%1)"
-
-#~ msgid ""
-#~ "cannot set broadcast info for audio file %1; Dropping broadcast info for "
-#~ "this file"
-#~ msgstr ""
-#~ "Δεν ετέθησαν broadcast info για το audio file %1; ΑπόÏÏιψη broadcast info "
-#~ "για αυτό το αÏχείο"
-
-#~ msgid "%1: cannot seek to %2"
-#~ msgstr "%1: αδÏνατη η αναζήτηση στο %2"
-
-#~ msgid "cleared history"
-#~ msgstr "εκκαθάÏιση ιστοÏικοÏ"
-
-#~ msgid ""
-#~ "programming error: illegal state ID (%1) passed to StateManager::set_state"
-#~ "() (range = 0-%2)"
-#~ msgstr ""
-#~ "σφάλμα Ï€ÏογÏαμματισμοÏ: αθέμιτη κατάσταση ID (%1) πέÏασε στον "
-#~ "StateManager::set_state() (range = 0-%2)"
-
-#~ msgid "Error: could not write %1"
-#~ msgstr "Σφάλμα: δεν μπόÏεσα να γÏάψω %1"
-
-#~ msgid "Could not understand XML file %1"
-#~ msgstr "Δεν μπόÏεσα να κατανοήσω το XML αÏχείο %1"
-
-#~ msgid "move metric"
-#~ msgstr "μετακίνηση μετÏικοÏ"
-
-#~ msgid "metric removed"
-#~ msgstr "μετÏικό απεσÏÏθη"
-
-#~ msgid "add tempo"
-#~ msgstr "Ï€Ïόσθεση ÏυθμοÏ"
-
-#~ msgid "replace tempo"
-#~ msgstr "αντικατάσταση ÏυθμοÏ"
-
-#~ msgid "add meter"
-#~ msgstr "Ï€Ïόσθεση μετÏητή"
-
-#~ msgid "replaced meter"
-#~ msgstr "αντικατεστημένος μετÏητής"
-
-#~ msgid "load XML data"
-#~ msgstr "ΦόÏτωμα δεδομένων XML"
-
-#~ msgid "cannot create VST chunk directory: %1"
-#~ msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο κομματιών VST: %1"
-
-#~ msgid "cannot check VST chunk directory: %1"
-#~ msgstr "δεν μποÏÏŽ να ελέγξω το φάκελο κομματιών VST: %1"
-
-#~ msgid "%1 exists but is not a directory"
-#~ msgstr "%1 υπάÏχει αλλά δεν είναι φάκελος"
-
-#~ msgid "Bad node sent to VSTPlugin::set_state"
-#~ msgstr "Κακός κόμβος εστάλη στο VSTPlugin::set_state"
-
-#~ msgid "no support for presets using chunks at this time"
-#~ msgstr ""
-#~ "καμμία υποστήÏιξη αυτή τη στιγμή για Ïυθμίσεις που χÏησιμοποιοÏν κομμάτια"
-
-#~ msgid ""
-#~ "CoreAudioSource: file only contains %1 channels; %2 is invalid as a "
-#~ "channel number"
-#~ msgstr ""
-#~ "CoreAudioSource: το αÏχείο πεÏιέχει μόνο %1 κανάλια; το %2 δεν έχει αξία "
-#~ "σαν αÏιθμός καναλιών"
-
-#~ msgid "CoreAudioSource: could not seek to frame %1 within %2 (%3)"
-#~ msgstr ""
-#~ "CoreAudioSource: δεν μποÏοÏσα να αναζητήσω στο frame %1 μέσα στο %2 (%3)"
-
-#~ msgid "FileSource: \"%1\" not found when searching %2 using %3"
-#~ msgstr "FileSource: \"%1\" δεν ευÏέθη όταν αναζητείτο %2 χÏησιμοποιώντας %3"
-
-#~ msgid "FileSource: could not open \"%1\": (%2)"
-#~ msgstr "FileSource: δεν μπόÏεσα να ανοίξω \"%1\": (%2)"
-
-#~ msgid "FileSource: cannot write header in %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να γÏάψω επικεφαλίδα στο %1"
-
-#~ msgid "FileSource: cannot locate chunks in %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να ανιχνεÏσω κομμάτια στο %1"
-
-#~ msgid "FileSource: cannot read header in %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω επικεφαλίδα στο %1"
-
-#~ msgid "FileSource: cannot check header in %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να ελέγξω επικεφαλίδα στο %1"
-
-#, fuzzy
-#~ msgid "FileSource: cannot initialize peakfile for %1 as %2"
-#~ msgstr "FileSource: δεν μποÏÏŽ να εκκινήσω το peakfile για %1"
-
-#~ msgid "FileSource: cannot seek to end of file"
-#~ msgstr "FileSource: δεν μποÏÏŽ να ανιχνεÏσω το τέλος του αÏχείου"
-
-#~ msgid "FileSource: cannot read RIFF/WAVE chunk from file"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω κομμάτι RIFF/WAVE από το αÏχείο"
-
-#~ msgid "FileSource %1: not a RIFF/WAVE file"
-#~ msgstr "FileSource %1: δεν είναι RIFF/WAVE αÏχείο"
-
-#~ msgid "FileSource: can't read a chunk"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω κομμάτι"
-
-#~ msgid "FileSource: cannot get user information for BWF header (%1)"
-#~ msgstr ""
-#~ "FileSource: δεν μποÏÏŽ να βÏÏŽ πληÏοφοÏίες χÏήστη για επικεφαλίδα BWF (%1)"
-
-#~ msgid "FileSource[%1]: cannot update data size: %2"
-#~ msgstr "FileSource[%1]: δεν μποÏÏŽ να ανανεώσω το μέγεθος δεδομένων: %2"
-
-#~ msgid "FileSource: can't find RIFF chunk info"
-#~ msgstr "FileSource: δεν ευÏέθησαν πληÏοφοÏίες για RIFF κομμάτι"
-
-#, fuzzy
-#~ msgid "FileSource: can't find RIFX chunk info"
-#~ msgstr "FileSource: δεν ευÏέθησαν πληÏοφοÏίες για RIFF κομμάτι"
-
-#~ msgid "FileSource: can't read RIFF chunk"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω RIFF κομμάτι"
-
-#~ msgid "FileSource: can't find format chunk info"
-#~ msgstr "FileSource: δεν ευÏέθησαν πληÏοφοÏίες για το κομμάτι φοÏμαÏίσματος"
-
-#~ msgid "FileSource: can't read format chunk"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω το κομμάτι φοÏμαÏίσματος"
-
-#~ msgid "FileSource: can't find data chunk info"
-#~ msgstr "FileSource: δεν μποÏÏŽ να βÏÏŽ πληÏοφοÏίες για το κομμάτι δεδομένων"
-
-#~ msgid "FileSource: can't read data chunk"
-#~ msgstr "FileSource: δεν μποÏÏŽ να διαβάσω το κομμάτι δεδομένων"
-
-#~ msgid ""
-#~ "FileSource: cannot read Broadcast Wave data from existing audio file "
-#~ "\"%1\" (%2)"
-#~ msgstr ""
-#~ "FileSource: δεν μποÏÏŽ να διαβάσω δεδομένα Broadcast Wave από το υπάÏχον "
-#~ "αÏχείο \"%1\" (%2)"
-
-#~ msgid ""
-#~ "FileSource: cannot read Broadcast Wave coding history from audio file "
-#~ "\"%1\" (%2)"
-#~ msgstr ""
-#~ "FileSource: δεν μποÏÏŽ να διαβάσω το ιστοÏικό του κώδικα Broadcast Wave "
-#~ "από το αÏχείο \"%1\" (%2)"
-
-#, fuzzy
-#~ msgid ""
-#~ "FileSource \"%1\" does not use valid sample format.\n"
-#~ "This is probably a programming error."
-#~ msgstr ""
-#~ "FileSource \"%1\" δεν χÏησιμοποιεί format μεταβλητής υποδιαστολής.\n"
-#~ "Αυτό πιθανόν να είναι σφάλμα Ï€ÏογÏαμματισμοÏ."
-
-#~ msgid "FileSource \"%1\" has no \"data\" chunk"
-#~ msgstr "FileSource \"%1\" δεν έχει \"data\" κομμάτι"
-
-#~ msgid ""
-#~ "%1: data length in header (%2) differs from implicit size in file (%3)"
-#~ msgstr ""
-#~ "%1: το μέγεθος δεδομένων της επικεφαλίδας (%2) διαφέÏει από το δεδηλωμένο "
-#~ "μέγεθος στο αÏχείο (%3)"
-
-#~ msgid "\"%1\" has a sample rate of %2 instead of %3 as used by this session"
-#~ msgstr ""
-#~ "\"%1\" έχει Ïυθμό δειγματοληψίας %2 αντί του %3 όπως στην παÏοÏσα συνεδÏία"
-
-#~ msgid "FileSource: cannot write WAVE chunk: %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να γÏάψω WAVE κομμάτι: %1"
-
-#~ msgid "FileSource: cannot write format chunk: %1"
-#~ msgstr "FileSource: δεν μποÏÏŽ να γÏάψω format κομμάτι: %1"
-
-#~ msgid "FileSource: cannot data chunk: %1"
-#~ msgstr "FileSource: cδεν μποÏÏŽ να γÏάψω κομμάτι δεδομένων: %1"
-
-#, fuzzy
-#~ msgid "cannot create feedback request pipe (%1)"
-#~ msgstr "Δεν μποÏÏŽ να δημιουÏγήσω transport request signal pipe (%1)"
-
-#, fuzzy
-#~ msgid "Session: could not create feedback thread"
-#~ msgstr "ΣυνεδÏία: δεν μπόÏεσα να δημιουÏγήσω δέσμη με τον butler"
-
-#, fuzzy
-#~ msgid "Feedback thread poll failed (%1)"
-#~ msgstr "Αίτηση δέσμης MIDI απέτυχε (%1)"
-
-#, fuzzy
-#~ msgid "Error on feedback thread request pipe"
-#~ msgstr "Σφάλμα στο transport thread request pipe"
-
-#, fuzzy
-#~ msgid "Error reading from feedback request pipe"
-#~ msgstr "Σφάλμα στην ανάγνωση από transport request pipe"
-
-#~ msgid "could not create crossfade object in playlist %1"
-#~ msgstr "δεν έγινε δημιουÏγία αντικειμένου crossfade στη λίστα αναπαÏ/γής%1"
-
-#~ msgid ""
-#~ "There are too many frozen versions of playlist \"%1\" to create another "
-#~ "one"
-#~ msgstr ""
-#~ "ΠάÏα πολλές εκδόσεις λίστας αναπαÏ/γής \"%1\" για τη δημιουÏγία άλλης"
-
-#~ msgid "alsa_pcm:playback_1"
-#~ msgstr "alsa_pcm:playback_1"
-
-#~ msgid "alsa_pcm:playback_2"
-#~ msgstr "alsa_pcm:playback_2"
-
-#, fuzzy
-#~ msgid "Could not find a template called %1 in %2"
-#~ msgstr "Δεν μπόÏεσα να ανοίξω Ï€Ïοσχέδιο μίξεως %1 για ανάγνωση"
-
-#, fuzzy
-#~ msgid "Source: cannot stat peakfile \"%1\" or \"%2\""
-#~ msgstr "Source: δεν μποÏÏŽ να μετÏήσω το αυτοστιγμεί peakfile \"%1\""
-
-#~ msgid "Transport: error polling extra MIDI port #1 (revents =%1%2%3"
-#~ msgstr ""
-#~ "Transport: σφάλμα στην αίτηση επιπλέον θÏÏας MIDI #1 (revents =%1%2%3"
-
-#~ msgid "Transport: error polling extra MIDI port #2 (revents =%1%2%3"
-#~ msgstr ""
-#~ "Transport: σφάλμα στην αίτηση επιπλέον θÏÏας MIDI #2 (revents =%1%2%3"
-
-#~ msgid "Source: cannot seek to frame %1 in peakfile!"
-#~ msgstr "Source: δεν μποÏÏŽ να αναζητήσω το frame %1 στο peakfile!"
-
-#~ msgid "Source[%1]: cannot seek to frame %2 in peakfile!"
-#~ msgstr "Source[%1]: δεν μποÏÏŽ να αναζητήσω το frame %2 στο peakfile!"
-
-#~ msgid "%1: could not seek to byte %2 in peakfile (%3"
-#~ msgstr "%1: δεν μποÏÏŽ να αναζητήσω σε byte %2 στο peakfile (%3"
-
-#~ msgid "could not register an input port called \"%1\""
-#~ msgstr "δεν μπόÏεσα να register μία θÏÏα εισόδου με όνομα \"%1\""
-
-#~ msgid "could not register an output port called \"%1\""
-#~ msgstr "δεν μπόÏεσα να register μία θÏÏα εξόδου με όνομα \"%1\""
-
-#~ msgid "%1: disk stream error at frame %2 (%3)"
-#~ msgstr "%1: σφάλμα disk stream στο frame %2 (%3)"
-
-#~ msgid "Playlist: cannot create from state."
-#~ msgstr "Playlist: δεν μποÏÏŽ να δημιουÏγήσω από κατάσταση."
-
-#~ msgid ""
-#~ "for various reasons, it is no longer valid to use one of the plugins "
-#~ "listed for this session. it will be ignored"
-#~ msgstr ""
-#~ "για διάφοÏους λόγους, δεν είναι πλέον χÏήσιμο να χÏησιμοποιηθεί ένα από "
-#~ "τα καταχωÏημένα pluginsγια αυτή τη συνεδÏία. Θα αγνοηθεί."
-
-#~ msgid "cannot connect click track to %1"
-#~ msgstr "δεν μποÏÏŽ να διασυνδέσω το κανάλι MετÏονόμου(click track) στο %1"
-
-#~ msgid "out %lu+%lu"
-#~ msgstr "out %lu+%lu"
-
-#~ msgid "in %lu+%lu"
-#~ msgstr "in %lu+%lu"
-
-#~ msgid "Session: error for %1 at frame %2 (%3)"
-#~ msgstr "ΣυνεδÏία: σφάλμα για %1 στο frame %2 (%3)"
+msgstr ""
diff --git a/libs/ardour/po/es.po b/libs/ardour/po/es.po
index e8f43cea11..758dcd2bbb 100644
--- a/libs/ardour/po/es.po
+++ b/libs/ardour/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: \n"
"Last-Translator: Pablo Fernández <pablo.fbus@gmail.com>\n"
"Language-Team: Grupo de Traducción al Español <traductores@teklibre.com>\n"
@@ -131,7 +131,7 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "error de programación: %1"
@@ -200,63 +200,21 @@ msgstr "no se puede cargar el plugin VAMP \"%1\""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr "el plugin VAMP \"%1\" no pudo ser cargado"
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:190
-msgid "Connect session to engine"
-msgstr "Conectar sesión al motor"
-
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-"ya existe un puerto con el nombre \"%1\": compruebe si hay nombres de pistas/"
-"buses duplicados"
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-"JACK no dispone de más puertos. Debes salir de %1 y reiniciar JACK con más "
-"puertos si necesitas tantas pistas."
-
-#: audioengine.cc:848
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "AudioEngine: no se puede registrar el puerto \"%1\": %2"
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr "Incapaz de crear puerto: %1"
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr "conexión invocada antes de que se inicie el motor"
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "AudioEngine: no se puede conectar %1 (%2) a %3 (%4)"
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
-msgstr "desconexión invocada antes de que se inicie el motor"
-
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
-msgstr "get_port_by_name() invocada antes de que se inicie el motor"
-
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr "get_ports invocada antes de que se inicie el motor"
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "falló la conexión a JACK"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
+msgstr ""
#: audioregion.cc:1643
msgid ""
@@ -427,9 +385,8 @@ msgid "Control protocol %1 not usable"
msgstr "Protocolo de control %1 no usable."
#: control_protocol_manager.cc:264
-#, fuzzy
msgid "Control surface protocol discovered: \"%1\"\n"
-msgstr "Se descubrió protocolo de superficie de control: \"%1\""
+msgstr ""
#: control_protocol_manager.cc:282
msgid "ControlProtocolManager: cannot load module \"%1\" (%2)"
@@ -455,7 +412,7 @@ msgstr ""
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
@@ -568,7 +525,7 @@ msgstr ""
msgid "Rectangular"
msgstr ""
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -678,7 +635,7 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr "ya hay 1000 archivos con nombres como %1; se discontinúa el versionado"
@@ -776,23 +733,23 @@ msgstr ""
msgid "unknown file type for session %1"
msgstr "tipo de archivo desconocido para la sesión %1"
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr "No se pudo establecer el límite de archivos abiertos a \"unlimited\""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr "No se pudo establecer el límite de archivos abiertos a \"unlimited\""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr "No se pudo obtener el límite de archivos abiertos del sistema (%1) "
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr "Cargando configuración"
@@ -912,47 +869,47 @@ msgstr ""
msgid "IO: bad output string in XML node \"%1\""
msgstr ""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr "%s %u"
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr ""
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr ""
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
@@ -1030,7 +987,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr "sesión"
@@ -1097,11 +1054,8 @@ msgid ""
msgstr ""
#: midi_diskstream.cc:219
-#, fuzzy
msgid "MidiDiskstream: Playlist \"%1\" isn't a midi playlist"
msgstr ""
-"AudioDiskstream: La lista de reproducción \"%1\" no es una lista de "
-"reproducción de audio."
#: midi_diskstream.cc:270
msgid "MidiDiskstream %1: there is no existing playlist to make a copy of!"
@@ -1199,21 +1153,21 @@ msgstr ""
msgid "solo control"
msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1277,19 +1231,19 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr ""
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
@@ -1401,11 +1355,7 @@ msgstr "unknown plugin status type \"%1\" - all entries ignored"
msgid "unknown plugin type \"%1\" - ignored"
msgstr "Tipo de plugin desconocido \"%1\" - ignorado"
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr ""
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "no se pudo registrar %1"
@@ -1421,6 +1371,36 @@ msgstr ""
msgid "non-port insert XML used for port plugin insert"
msgstr ""
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+"ya existe un puerto con el nombre \"%1\": compruebe si hay nombres de pistas/"
+"buses duplicados"
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr "AudioEngine: no se puede registrar el puerto \"%1\": %2"
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr "Incapaz de crear puerto: %1"
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: no se puede conectar %1 (%2) a %3 (%4)"
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1429,46 +1409,45 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr "Cargando el archivo de configuración del sistema %1"
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr "%1: No pude leer archivo de configuración del sistema \"%2\""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr ""
"%1: El archivo de configuración del sistema \"%2\" no se ha cargado con "
"éxito."
-#: rc_configuration.cc:106
-#, fuzzy
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
-msgstr "Tu archivo de configuración de %1 está vacío. Esto no es normal."
+msgstr ""
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr "Cargando el archivo de configuración de usuario %1"
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr "%1: No pude leer archivo de configuración \"%2\""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr ""
"%1: El archivo de configuración de usuario \"%2\" no se ha cargado con "
"éxito."
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr "Tu archivo de configuración de %1 está vacío. Esto no es normal."
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "Archivo de configuración %1 no guardado"
@@ -1506,35 +1485,39 @@ msgstr ""
msgid "return %1"
msgstr "retorno %1"
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr ""
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr ""
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1550,185 +1533,169 @@ msgstr "send %1"
msgid "programming error: send created using role %1"
msgstr ""
-#: session.cc:347
-msgid "Set block size and sample rate"
-msgstr ""
-
-#: session.cc:352
-msgid "Using configuration"
-msgstr ""
+#: session.cc:344
+msgid "Connect to engine"
+msgstr "Conectar a motor"
-#: session.cc:377
-msgid "LTC In"
-msgstr ""
+#: session.cc:349
+msgid "Session loading complete"
+msgstr "Carga de sesión completada"
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
-msgstr ""
+#: session.cc:425
+msgid "Set up standard connections"
+msgstr "Configurar las conexiones estándar"
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "no se pudo configurar la E/S del click"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "no se puede configurar la E/S del click"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr "Calcular las latencias de E/S"
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr "Configurar las conexiones estándar"
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr "Configurar rutas de señales y plugins"
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr "Conectar a motor"
-
-#: session.cc:645
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr "no se puede conectar salida master %1 a %2"
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr ""
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+"JACK no dispone de más puertos. Debes salir de %1 y reiniciar JACK con más "
+"puertos si necesitas tantas pistas."
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr ""
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr "Sesión: No se pudo crear la ruta del nuevo audio"
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr ""
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr "Sesión: No se pudo crear la nueva ruta desde plantilla"
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr ""
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "no se puede crear nuevo archivo de audio"
@@ -1767,11 +1734,11 @@ msgstr ""
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr ""
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr ""
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1781,10 +1748,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr ""
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr ""
@@ -1793,373 +1756,373 @@ msgstr ""
msgid "Session: cannot create Playlist from XML description."
msgstr ""
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr ""
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "No se pudo usar la ruta %1 (%s)"
+msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr ""
-#: session_state.cc:360
+#: session_state.cc:208
+msgid "Set block size and sample rate"
+msgstr ""
+
+#: session_state.cc:213
+msgid "Using configuration"
+msgstr ""
+
+#: session_state.cc:325
msgid "Reset Remote Controls"
msgstr "Restablecer controles remotos"
-#: session_state.cc:385
-msgid "Session loading complete"
-msgstr "Carga de sesión completada"
-
-#: session_state.cc:452
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:466
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:494
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:501
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:548
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
msgstr ""
-#: session_state.cc:554
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr ""
-#: session_state.cc:636
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
msgstr "Could not remove pending capture state at path \"%1\" (%2)"
-#: session_state.cc:660
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
msgstr ""
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "Could not remove state file at path \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr ""
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "Could not remove history file at path \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr ""
-#: session_state.cc:890
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr ""
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "No se pudo interpretar el archivo de historial de sesión \"%1\"."
+msgstr ""
-#: session_state.cc:911
+#: session_state.cc:819
msgid "Session file %1 is not a session"
msgstr "El archivo de sesión %1 no es una sesión"
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr ""
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr ""
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr ""
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr ""
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr ""
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr ""
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr ""
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr ""
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr ""
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr ""
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr ""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr ""
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr "Pista/bus %1 cargado"
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr ""
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr "No se puede cargar el estado de la región '%1'"
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr ""
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
msgstr ""
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr ""
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr "No se encuentra un archivo de audio. Será reemplazado por silencio."
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr "Found a sound file that cannot be used by %1. Talk to the progammers."
-#: session_state.cc:2033
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "La plantilla \"%1\" ya existe - no se creará una nueva versión"
-#: session_state.cc:2052
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
msgstr "Could not create directory for Session template\"%1\" (%2)"
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr "plantilla no guardada"
-#: session_state.cc:2072
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
msgstr ""
"Could not create directory for Session template plugin state\"%1\" (%2)"
-#: session_state.cc:2267
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr ""
-#: session_state.cc:2868
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:2907
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr ""
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr "No se pudo guardar el historial a %1"
-#: session_state.cc:3243
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
msgstr "Could not remove history file at path \"%1\" (%2)"
-#: session_state.cc:3247
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr "No se pudo interpretar el archivo de historial de sesión \"%1\"."
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr "No se puede reproducir en bucle - no se definió un rango de bucle."
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2302,7 +2265,7 @@ msgstr ""
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr "error de programación: %1 %2"
@@ -2520,19 +2483,19 @@ msgstr "Bloquear"
msgid "programming error: unknown edit mode string \"%1\""
msgstr ""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr ""
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr "MTC"
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr ""
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr "JACK"
@@ -2540,137 +2503,18 @@ msgstr "JACK"
msgid "programming error: unknown sync source string \"%1\""
msgstr ""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr ""
-#: utils.cc:429
+#: utils.cc:432
msgid "LTC"
msgstr "LTC"
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr ""
-#: utils.cc:614
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr ""
-
-#~ msgid "Session"
-#~ msgstr "Sesión"
-
-#~ msgid ""
-#~ "No more JACK ports are available. You will need to stop %1 and restart "
-#~ "JACK with ports if you need this many tracks."
-#~ msgstr ""
-#~ "JACK no disponde de más puertos. Debes salir de %1 y reiniciar JACK con "
-#~ "más puertos si necesitas tantas pistas"
-
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr "el protocolo de control \"%1\" no existe. No hecho caso."
-
-#~ msgid "Removed open file count limit. Excellent!"
-#~ msgstr "Suprimido el límite del contador de archivos abiertos. ¡Excelente!"
-
-#~ msgid "%1 will be limited to %2 open files"
-#~ msgstr "%1 será limitado a %2 archivos abiertos"
-
-#~ msgid "signal"
-#~ msgstr "señal"
-
-#~ msgid "editor"
-#~ msgstr "editor"
-
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr "La plantilla \"%1\" ya existe - plantilla no renombrada"
-
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "la ruta (%1) es ambigua"
-
-#~ msgid "Reset Control Protocols"
-#~ msgstr "Restablecer protocolos de control"
-
-#~ msgid "%1: cannot create region from pending capture sources"
-#~ msgstr ""
-#~ "%1: no se puede crear la región desde las fuentes de captura pendientes"
-
-#~ msgid "register input port called before engine was started"
-#~ msgstr ""
-#~ "registro de puerto de entrada invocado antes de que se inicie el motor"
-
-#~ msgid "register output port called before engine was started"
-#~ msgstr ""
-#~ "registro de puerto de salida invocado antes de que se inicie el motor"
-
-#~ msgid "AudioEngine: connection already exists: %1 (%2) to %3 (%4)"
-#~ msgstr "AudioEngine: la conexión ya existe: %1 (%2) a %3 (%4)"
-
-#~ msgid "Disconnected from JACK while reconnecting. You should quit %1 now."
-#~ msgstr ""
-#~ "Se desconectó de JACK mientras se reconectaba. Deberías salir de %1 ahora"
-
-#~ msgid ""
-#~ "This is an old session that does not have\n"
-#~ "sufficient information for rendered FX"
-#~ msgstr ""
-#~ "Esta es una sesión antigua que no tiene\n"
-#~ "información suficiente para efectos renderizados"
-
-#~ msgid "programming error:"
-#~ msgstr "error de programación:"
-
-#~ msgid "Starting OSC"
-#~ msgstr "Iniciando OSC"
-
-#~ msgid "no MIDI ports specified: no MMC or MTC control possible"
-#~ msgstr ""
-#~ "no se han especificado puertos MIDI: no es posible control MMC ni MTC "
-
-#~ msgid "Configuring MIDI ports"
-#~ msgstr "Configurando puertos MIDI"
-
-#~ msgid "default"
-#~ msgstr "default"
-
-#~ msgid "No MMC control (MIDI port \"%1\" not available)"
-#~ msgstr "No MMC control (MIDI port \"%1\" not available)"
-
-#~ msgid "No MTC support (MIDI port \"%1\" not available)"
-#~ msgstr "No hay soporte MTC (puerto MIDI \"%1\" no disponible)"
-
-#~ msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "No hay soporte de parámetros MIDI (puerto MIDI \"%1\" no disponible)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(resample from %2KHz to %3KHz)\n"
-#~ "(%4 of %5)"
-#~ msgstr ""
-#~ "convirtiendo %1\n"
-#~ "(remuestreo desde %2KHz a %3KHz)\n"
-#~ "(%4 de %5)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(%2 of %3)"
-#~ msgstr ""
-#~ "convirtiendo %1\n"
-#~ "(%2 de %3)"
-
-#~ msgid "cannot setup master inputs"
-#~ msgstr "no se pueden configurar las entradas principales"
-
-#~ msgid "OSC startup"
-#~ msgstr "Inicio de OSC"
-
-#~ msgid "Export: no output file specified"
-#~ msgstr "Exportación: No se ha especificado archivo de salida"
-
-#~ msgid "Export: could not write data to output file (%1)"
-#~ msgstr ""
-#~ "Exportación: No se pudieron escribir datos al archivo de salida (%1)"
-
-#~ msgid "cannot create dead sounds directory \"%1\"; ignored"
-#~ msgstr ""
-#~ "No se puede crear el directorio para archivos purgados \"%1\"; ignorado."
diff --git a/libs/ardour/po/it.po b/libs/ardour/po/it.po
index 532e23c348..9eaa00ee95 100644
--- a/libs/ardour/po/it.po
+++ b/libs/ardour/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour 0.664.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2003-05-21 12:50+0500\n"
"Last-Translator: Filippo Pappalardo <filippo@email.it>\n"
"Language-Team: Italian\n"
@@ -25,67 +25,57 @@ msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist"
msgstr ""
#: audio_diskstream.cc:296
-#, fuzzy
msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!"
-msgstr "DiskStream %1: non esiste alcuna playlist di cui fare una copia!"
+msgstr ""
#: audio_diskstream.cc:848 audio_diskstream.cc:858
-#, fuzzy
msgid ""
"AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame %3"
-msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3"
+msgstr ""
#: audio_diskstream.cc:1014
-#, fuzzy
msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3"
-msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3"
+msgstr ""
#: audio_diskstream.cc:1383 audio_diskstream.cc:1400
-#, fuzzy
msgid "AudioDiskstream %1: cannot write to disk"
-msgstr "DiskStream %1: impossibile scrivere sul disco"
+msgstr ""
#: audio_diskstream.cc:1443
-#, fuzzy
msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!"
-msgstr "DiskStream \"%1\": impossibile scaricare i dati acquisiti sul disco!"
+msgstr ""
#: audio_diskstream.cc:1537
msgid "%1: could not create region for complete audio file"
msgstr "%1: impossibile creare una regione per il file audio completo"
#: audio_diskstream.cc:1571
-#, fuzzy
msgid "AudioDiskstream: could not create region for captured audio!"
-msgstr "DiskStream: impossibile creare una regione per l'audio registrato!"
+msgstr ""
#: audio_diskstream.cc:1679
-#, fuzzy
msgid "programmer error: %1"
-msgstr "errore di programmazione: %1"
+msgstr ""
#: audio_diskstream.cc:1905
-#, fuzzy
msgid "AudioDiskstream: channel %1 out of range"
-msgstr "DiskStream: canale fuori margine"
+msgstr ""
#: audio_diskstream.cc:1919 midi_diskstream.cc:1210
msgid "%1:%2 new capture file not initialized correctly"
msgstr "%1:%2 nuovo file di registrazione non è stato avviato correttamente"
#: audio_diskstream.cc:2200
-#, fuzzy
msgid "%1: cannot restore pending capture source file %2"
-msgstr "Import: impossibile aprire il file audio di input \"%1\""
+msgstr ""
#: audio_diskstream.cc:2222
msgid "%1: incorrect number of pending sources listed - ignoring them all"
msgstr ""
#: audio_diskstream.cc:2246
-#, fuzzy
msgid "%1: cannot create whole-file region from pending capture sources"
-msgstr "Playlist: impossibile creare la Regione dal file di stato"
+msgstr ""
#: audio_library.cc:71
msgid "Could not open %1. Audio Library not saved"
@@ -108,14 +98,12 @@ msgid "Audio Playlists"
msgstr ""
#: audio_playlist_importer.cc:161
-#, fuzzy
msgid "region"
-msgstr "aggiungi regione"
+msgstr ""
#: audio_playlist_importer.cc:163
-#, fuzzy
msgid "regions"
-msgstr "aggiungi regione"
+msgstr ""
#: audio_playlist_importer.cc:174 audio_track_importer.cc:245
msgid "A playlist with this name already exists, please rename it."
@@ -132,15 +120,14 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "errore di programmazione: %1"
#: audio_region_importer.cc:75
-#, fuzzy
msgid "Audio Regions"
-msgstr "costruzione delle regioni"
+msgstr ""
#: audio_region_importer.cc:145
msgid "Length: "
@@ -159,9 +146,8 @@ msgid ""
msgstr ""
#: audio_track.cc:167
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for input of %2"
-msgstr "Connessione sconosciuta \"%1\" come input di %2"
+msgstr ""
#: audio_track.cc:169
msgid "in 1"
@@ -199,62 +185,20 @@ msgstr ""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr ""
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:190
-msgid "Connect session to engine"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
-msgstr ""
-
-#: audioengine.cc:848
-#, fuzzy
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "IO: impossibile registrare la porta %1"
-
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr ""
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr "richiesta di connessione avvenuta prima dell'avvio dell'applicazione"
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr ""
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
-msgstr ""
-"richiesta di disconnessione avvenuta prima dell'avvio dell'applicazione"
-
-#: audioengine.cc:1052
-#, fuzzy
-msgid "get_port_by_name() called before engine was started"
-msgstr ""
-"richiesta get_port_by_name() avvenuta prima dell'avvio dell'applicazione"
-
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr "richiesta di get_ports avvenuta prima dell'avvio dell'applicazione"
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
msgstr ""
#: audioregion.cc:1643
@@ -273,52 +217,45 @@ msgid ""
msgstr ""
#: audiosource.cc:199
-#, fuzzy
msgid "cannot rename peakfile for %1 from %2 to %3 (%4)"
-msgstr "impossibile eliminare il peakfile %1 per %2 (%3)"
+msgstr ""
#: audiosource.cc:226
-#, fuzzy
msgid "AudioSource: cannot stat peakfile \"%1\""
-msgstr "FileSource: impossibile avviare il peakfile per %1"
+msgstr ""
#: audiosource.cc:366
msgid "cannot read sample data for unscaled peak computation"
msgstr ""
#: audiosource.cc:387
-#, fuzzy
msgid "AudioSource: cannot open peakpath (a) \"%1\" (%2)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:463
-#, fuzzy
msgid "AudioSource: cannot open peakpath (b) \"%1\" (%2)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:587
-#, fuzzy
msgid ""
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
-msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3"
+msgstr ""
#: audiosource.cc:667
msgid "%1: could not write read raw data for peak computation (%2)"
msgstr ""
#: audiosource.cc:706
-#, fuzzy
msgid "AudioSource: cannot open peakpath (c) \"%1\" (%2)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: audiosource.cc:773 audiosource.cc:886
msgid "%1: could not write peak file data (%2)"
msgstr ""
#: audiosource.cc:924
-#, fuzzy
msgid "could not truncate peakfile %1 to %2 (error: %3)"
-msgstr "impossibile eliminare il peakfile %1 per %2 (%3)"
+msgstr ""
#: auditioner.cc:87
msgid "no outputs available for auditioner - manual connection required"
@@ -337,21 +274,16 @@ msgid "Automation node has no path property"
msgstr ""
#: automatable.cc:101
-#, fuzzy
msgid "cannot open %2 to load automation data (%3)"
-msgstr "impossibile accedere al file dell'automazione pan %1 (%2)"
+msgstr ""
#: automatable.cc:129
-#, fuzzy
msgid "cannot load automation data from %2"
-msgstr "impossibile accedere al file dell'automazione pan %1 (%2)"
+msgstr ""
#: automation_list.cc:353
-#, fuzzy
msgid "automation list: cannot load coordinates from XML, all points ignored"
msgstr ""
-"lista automazione: nessuna coordinata X salvata per punto di controllo "
-"(ignorato)"
#: automation_list.cc:399
msgid ""
@@ -389,14 +321,12 @@ msgid "poll on butler request pipe failed (%1)"
msgstr ""
#: butler.cc:163
-#, fuzzy
msgid "Error on butler thread request pipe: fd=%1 err=%2"
-msgstr "Errore nel leggere dalla porta MIDI %1"
+msgstr ""
#: butler.cc:201
-#, fuzzy
msgid "Error reading from butler request pipe"
-msgstr "Errore nel leggere dalla porta MIDI %1"
+msgstr ""
#: butler.cc:248
msgid "Butler read ahead failure on dstream %1"
@@ -423,23 +353,20 @@ msgid "looking for control protocols in %1\n"
msgstr ""
#: control_protocol_manager.cc:247
-#, fuzzy
msgid "Control protocol %1 not usable"
-msgstr "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
+msgstr ""
#: control_protocol_manager.cc:264
msgid "Control surface protocol discovered: \"%1\"\n"
msgstr ""
#: control_protocol_manager.cc:282
-#, fuzzy
msgid "ControlProtocolManager: cannot load module \"%1\" (%2)"
-msgstr "LADSPA: impossibile caricare il modulo \"%1\" (%2)"
+msgstr ""
#: control_protocol_manager.cc:290
-#, fuzzy
msgid "ControlProtocolManager: module \"%1\" has no descriptor function."
-msgstr "LADSPA: il modulo \"%1\" non ha alcuna funzione descriptor."
+msgstr ""
#: cycle_timer.cc:38
msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo"
@@ -458,7 +385,7 @@ msgstr "impossibile localizzare \"cpu MHz\" in /proc/cpuinfo"
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
@@ -543,18 +470,16 @@ msgid "Session rate"
msgstr ""
#: export_format_specification.cc:537
-#, fuzzy
msgid "normalize"
-msgstr "normalizzato a %.2fdB"
+msgstr ""
#: export_format_specification.cc:541
msgid "trim"
msgstr ""
#: export_format_specification.cc:543
-#, fuzzy
msgid "trim start"
-msgstr "separa"
+msgstr ""
#: export_format_specification.cc:545
msgid "trim end"
@@ -572,7 +497,7 @@ msgstr ""
msgid "Rectangular"
msgstr ""
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -605,23 +530,20 @@ msgid "8bit unsigned"
msgstr ""
#: export_formats.cc:173
-#, fuzzy
msgid "Vorbis sample format"
-msgstr "separa"
+msgstr ""
#: export_formats.cc:175
-#, fuzzy
msgid "No sample format"
-msgstr "separa"
+msgstr ""
#: export_handler.cc:335
msgid "Editor: cannot open \"%1\" as export file for CD marker file"
msgstr ""
#: export_handler.cc:417 export_handler.cc:420
-#, fuzzy
msgid "an error occured while writing a TOC/CUE file: %1"
-msgstr "c'è stato un errore durante la conversione di campionatura: %1"
+msgstr ""
#: export_handler.cc:642 export_handler.cc:700
msgid "Cannot convert %1 to Latin-1 text"
@@ -632,33 +554,28 @@ msgid "Searching for export formats in %1"
msgstr ""
#: export_profile_manager.cc:99
-#, fuzzy
msgid "Unable to create export format directory %1: %2"
-msgstr "impossibile creare la cartella per la sessione %1; ignorato"
+msgstr ""
#: export_profile_manager.cc:257
-#, fuzzy
msgid "Unable to remove export preset %1: %2"
-msgstr "impossibile creare la cartella per la sessione %1; ignorato"
+msgstr ""
#: export_profile_manager.cc:347
msgid "Selection"
msgstr ""
#: export_profile_manager.cc:600
-#, fuzzy
msgid "Unable to rename export format %1 to %2: %3"
-msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)"
+msgstr ""
#: export_profile_manager.cc:632
-#, fuzzy
msgid "Unable to remove export profile %1: %2"
-msgstr "impossibile controllare il file di stato %1 (%2)"
+msgstr ""
#: export_profile_manager.cc:649
-#, fuzzy
msgid "empty format"
-msgstr "separa"
+msgstr ""
#: export_profile_manager.cc:818
msgid "No timespan has been selected!"
@@ -690,25 +607,23 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr ""
"ci sono gia' 1000 file con nomi come %1; tracciamento di versione interrotto"
#: file_source.cc:207
-#, fuzzy
msgid "cannot rename file source from %1 to %2 (%3)"
-msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)"
+msgstr ""
#: file_source.cc:250 file_source.cc:378
msgid "FileSource: search path not set"
msgstr "FileSource: percorso di ricerca non specificato"
#: file_source.cc:313 file_source.cc:448
-#, fuzzy
msgid "Filesource: cannot find required file (%1): while searching %2"
-msgstr "FileSource: impossibile trovare il file richiesto (%1): %2"
+msgstr ""
#: file_source.cc:440
msgid ""
@@ -733,14 +648,12 @@ msgid ""
msgstr ""
#: file_source.cc:540
-#, fuzzy
msgid "cannot rename file %1 to %2 (%3)"
-msgstr "impossibile eliminare il peakfile %1 per %2 (%3)"
+msgstr ""
#: filesystem_paths.cc:73
-#, fuzzy
msgid "Cannot create Configuration directory %1 - cannot run"
-msgstr "impossibile creare la cartella sounds \"%1\"; ignorato"
+msgstr ""
#: filesystem_paths.cc:78
msgid ""
@@ -761,20 +674,16 @@ msgid "ARDOUR_DATA_PATH not set in environment - exiting\n"
msgstr ""
#: filter.cc:66
-#, fuzzy
msgid "filter: error creating name for new file based on %1"
msgstr ""
-"audiofilter: errore nel creare il nome per il nuovo file audio basato su %1"
#: filter.cc:78
-#, fuzzy
msgid "filter: error creating new file %1 (%2)"
-msgstr "audiofilter: errore nel creare un nuovo file audio %1 (%2)"
+msgstr ""
#: find_session.cc:51
-#, fuzzy
msgid "Could not resolve path: %1 (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
#: find_session.cc:63
msgid "cannot check session path %1 (%2)"
@@ -785,9 +694,8 @@ msgid "cannot check statefile %1 (%2)"
msgstr "impossibile controllare il file di stato %1 (%2)"
#: find_session.cc:125
-#, fuzzy
msgid "%1 is not a snapshot file"
-msgstr "%1 non è un file di istantanea di Ardour"
+msgstr ""
#: find_session.cc:142
msgid "cannot determine current working directory (%1)"
@@ -797,28 +705,25 @@ msgstr "impossibile determinare la cartella di lavoro corrente (%1)"
msgid "unknown file type for session %1"
msgstr "tipo di fle sconosciuto per la sessione %1"
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
-#: globals.cc:207
-#, fuzzy
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
-msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
+msgstr ""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
-#, fuzzy
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
-msgstr "IO: impossibile registrare la porta %1"
+msgstr ""
-#: globals.cc:266
-#, fuzzy
+#: globals.cc:268
msgid "Loading configuration"
-msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\""
+msgstr ""
#: import.cc:207
msgid "Could not find a source for %1 even though we are updating this file!"
@@ -849,9 +754,8 @@ msgid "Import: cannot open input sound file \"%1\""
msgstr "Import: impossibile aprire il file audio di input \"%1\""
#: import.cc:510
-#, fuzzy
msgid "Import: error opening MIDI file"
-msgstr "Import: errore nel resampling deil file audio \"%1\""
+msgstr ""
#: import.cc:549
msgid "Loading MIDI file %1"
@@ -874,9 +778,8 @@ msgid "%1 - cannot find any track/bus with the ID %2 to connect to"
msgstr ""
#: io.cc:208
-#, fuzzy
msgid "IO: cannot disconnect port %1 from %2"
-msgstr "IO: impossibile disconnettere la porta d'entrata %1 da %2"
+msgstr ""
#: io.cc:343 io.cc:428
msgid "IO: cannot register input port %1"
@@ -895,9 +798,8 @@ msgid "in"
msgstr ""
#: io.cc:706
-#, fuzzy
msgid "out"
-msgstr "taglia"
+msgstr ""
#: io.cc:707
msgid "input"
@@ -908,9 +810,8 @@ msgid "output"
msgstr ""
#: io.cc:717
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for %2 of %3"
-msgstr "Connessione sconosciuta \"%1\" come input di %2"
+msgstr ""
#: io.cc:783
msgid "Bundle %1 was not available - \"%2\" used instead"
@@ -940,47 +841,47 @@ msgstr "IO: stringa mal formata nel nodo XML per le uscite \"%1\""
msgid "IO: bad output string in XML node \"%1\""
msgstr "IO: stringa mal formata nel nodo XML \"%1\""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr ""
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr "LADSPA: il modulo non ha alcuna funzione descriptor."
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr "LADSPA: il plugin è stato rimosso"
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
@@ -1007,9 +908,8 @@ msgid "LADSPA: cannot load module from \"%1\""
msgstr "LADPSA: impossibile caricare il modulo da \"%1\""
#: ladspa_plugin.cc:827
-#, fuzzy
msgid "Could not locate HOME. Preset not removed."
-msgstr "impossibile localizzare HOME. Preset non salvato."
+msgstr ""
#: ladspa_plugin.cc:864 ladspa_plugin.cc:870
msgid "Could not create %1. Preset not saved. (%2)"
@@ -1032,9 +932,8 @@ msgid "incorrect XML node passed to Location::set_state"
msgstr ""
#: location.cc:455
-#, fuzzy
msgid "XML node for Location has no ID information"
-msgstr "il nodo XML per la Location non ha informazioni sulla fine"
+msgstr ""
#: location.cc:459
msgid "XML node for Location has no name information"
@@ -1060,7 +959,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr ""
@@ -1125,39 +1024,32 @@ msgid ""
msgstr ""
#: midi_diskstream.cc:219
-#, fuzzy
msgid "MidiDiskstream: Playlist \"%1\" isn't a midi playlist"
-msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3"
+msgstr ""
#: midi_diskstream.cc:270
-#, fuzzy
msgid "MidiDiskstream %1: there is no existing playlist to make a copy of!"
-msgstr "DiskStream %1: non esiste alcuna playlist di cui fare una copia!"
+msgstr ""
#: midi_diskstream.cc:699
-#, fuzzy
msgid "MidiDiskstream %1: cannot read %2 from playlist at frame %3"
-msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3"
+msgstr ""
#: midi_diskstream.cc:834
-#, fuzzy
msgid "MidiDiskstream %1: cannot write to disk"
-msgstr "DiskStream %1: impossibile scrivere sul disco"
+msgstr ""
#: midi_diskstream.cc:868
-#, fuzzy
msgid "MidiDiskstream \"%1\": cannot flush captured data to disk!"
-msgstr "DiskStream \"%1\": impossibile scaricare i dati acquisiti sul disco!"
+msgstr ""
#: midi_diskstream.cc:955
-#, fuzzy
msgid "%1: could not create region for complete midi file"
-msgstr "%1: impossibile creare una regione per il file audio completo"
+msgstr ""
#: midi_diskstream.cc:992
-#, fuzzy
msgid "MidiDiskstream: could not create region for captured midi!"
-msgstr "DiskStream: impossibile creare una regione per l'audio registrato!"
+msgstr ""
#: midi_model.cc:634
msgid "No NoteID found for note property change - ignored"
@@ -1231,21 +1123,21 @@ msgstr ""
msgid "solo control"
msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1258,50 +1150,44 @@ msgid "paste"
msgstr "incolla"
#: operations.cc:26
-#, fuzzy
msgid "duplicate region"
-msgstr "sostituisci la regione"
+msgstr ""
#: operations.cc:27
msgid "insert file"
msgstr ""
#: operations.cc:28
-#, fuzzy
msgid "insert region"
-msgstr "costruzione della regione"
+msgstr ""
#: operations.cc:29
msgid "drag region brush"
msgstr ""
#: operations.cc:30
-#, fuzzy
msgid "region drag"
-msgstr "aggiungi regione"
+msgstr ""
#: operations.cc:31
msgid "selection grab"
msgstr ""
#: operations.cc:32
-#, fuzzy
msgid "region fill"
-msgstr "aggiungi regione"
+msgstr ""
#: operations.cc:33
msgid "fill selection"
msgstr ""
#: operations.cc:34
-#, fuzzy
msgid "create region"
-msgstr "sostituisci la regione"
+msgstr ""
#: operations.cc:35
-#, fuzzy
msgid "region copy"
-msgstr "aggiungi regione"
+msgstr ""
#: operations.cc:36
msgid "fixed time region copy"
@@ -1315,42 +1201,37 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
-#, fuzzy
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
-msgstr "LADSPA: impossibile caricare il modulo \"%1\" (%2)"
+msgstr ""
-#: panner_manager.cc:123
-#, fuzzy
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
-msgstr "LADSPA: il modulo \"%1\" non ha alcuna funzione descriptor."
+msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
#: panner_shell.cc:179
-#, fuzzy
msgid "Unknown panner plugin \"%1\" found in pan state - ignored"
-msgstr "Nodo sconosciuto \"%1\" trovato in Connections list dal file di stato"
+msgstr ""
#: panner_shell.cc:185
-#, fuzzy
msgid "panner plugin node has no type information!"
-msgstr "il nodo XML per la Location non ha informazioni sulla fine"
+msgstr ""
#: playlist.cc:2070
msgid "region state node has no ID, ignored"
msgstr ""
#: playlist.cc:2088
-#, fuzzy
msgid "Playlist: cannot create region from XML"
-msgstr "Playlist: impossibile creare la Regione dal file di stato"
+msgstr ""
#: playlist_source.cc:99
msgid "No playlist ID in PlaylistSource XML!"
@@ -1377,9 +1258,8 @@ msgid "programming error: "
msgstr "errore di programmazione: "
#: plugin_insert.cc:926
-#, fuzzy
msgid "XML node describing plugin is missing the `type' field"
-msgstr "Il nodo XML descrivente l'insert manca del campo `type'"
+msgstr ""
#: plugin_insert.cc:941
msgid "unknown plugin type %1 in plugin insert state"
@@ -1410,14 +1290,12 @@ msgid "PluginInsert: automatable control %1 not found - ignored"
msgstr ""
#: plugin_manager.cc:161
-#, fuzzy
msgid "Discovering Plugins"
-msgstr "conversione dell'audio"
+msgstr ""
#: plugin_manager.cc:335
-#, fuzzy
msgid "Could not parse rdf file: %1"
-msgstr "IO: impossibile registrare la porta %1"
+msgstr ""
#: plugin_manager.cc:374
msgid "LADSPA: cannot load module \"%1\" (%2)"
@@ -1444,32 +1322,53 @@ msgid "unknown plugin status type \"%1\" - all entries ignored"
msgstr ""
#: plugin_manager.cc:887
-#, fuzzy
msgid "unknown plugin type \"%1\" - ignored"
-msgstr "Nodo sconosciuto \"%1\" trovato in Connections list dal file di stato"
-
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
msgstr ""
-#: port.cc:450
-#, fuzzy
+#: port.cc:410
msgid "could not reregister %1"
-msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
+msgstr ""
#: port_insert.cc:43
msgid "insert %1"
msgstr ""
#: port_insert.cc:198
-#, fuzzy
msgid "XML node describing port insert is missing the `type' field"
-msgstr "Il nodo XML descrivente l'insert manca del campo `type'"
+msgstr ""
#: port_insert.cc:203
msgid "non-port insert XML used for port plugin insert"
msgstr "insert non-port XML usato per insert di plugin di porta"
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr ""
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr ""
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr ""
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1478,60 +1377,47 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
-#, fuzzy
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr ""
-"Ardour: impossibile leggere il file di configurazione di sistema \"%1\""
-#: rc_configuration.cc:97
-#, fuzzy
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr ""
-"Ardour: impossibile leggere il file di configurazione di sistema \"%1\""
-#: rc_configuration.cc:102
-#, fuzzy
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr ""
-"Ardour: il file di configurazione di sistema \"%1\" non stato caricato con "
-"successo"
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-#: rc_configuration.cc:121
-#, fuzzy
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
-msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\""
+msgstr ""
-#: rc_configuration.cc:125
-#, fuzzy
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
-msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\""
+msgstr ""
-#: rc_configuration.cc:130
-#, fuzzy
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr ""
-"Ardour: il file di configurazione \"%1\" non stato caricato con successo"
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr ""
-#: rc_configuration.cc:151
-#, fuzzy
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
-msgstr "File di configurazione non salvato"
+msgstr ""
#: recent_sessions.cc:54
-#, fuzzy
msgid "cannot open recent session file %1 (%2)"
-msgstr "impossibile accedere al file di sessione recente %1 (%2)"
+msgstr ""
#: region_factory.cc:67 region_factory.cc:109 region_factory.cc:150
#: region_factory.cc:192
@@ -1563,38 +1449,39 @@ msgstr ""
msgid "return %1"
msgstr ""
-#: route.cc:1105 route.cc:2581
-#, fuzzy
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
-msgstr "impossibile creare la cartella per la sessione %1; ignorato"
+msgstr ""
-#: route.cc:1117
-#, fuzzy
+#: route.cc:1087
msgid "processor could not be created. Ignored."
-msgstr "Sessione: impossibile creare un nuovo route"
+msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr ""
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
-#, fuzzy
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
-msgstr "tempoize: errore nel leggere dati da %1"
+msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1607,198 +1494,171 @@ msgid "send %1"
msgstr ""
#: send.cc:65
-#, fuzzy
msgid "programming error: send created using role %1"
-msgstr "errore di programmazione: %1"
-
-#: session.cc:347
-msgid "Set block size and sample rate"
msgstr ""
-#: session.cc:352
-#, fuzzy
-msgid "Using configuration"
-msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\""
+#: session.cc:344
+msgid "Connect to engine"
+msgstr ""
-#: session.cc:377
-msgid "LTC In"
+#: session.cc:349
+msgid "Session loading complete"
msgstr ""
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
+#: session.cc:425
+msgid "Set up standard connections"
msgstr ""
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "impossibile impostare entrata/uscita del click"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "impossibile impostare entrata/uscita del click"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr ""
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr ""
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr ""
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr ""
-
-#: session.cc:645
-#, fuzzy
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
-msgstr "IO: impossibile registrare la porta %1"
+msgstr ""
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr ""
-#: session.cc:749
-#, fuzzy
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
-msgstr "impossibile impostare entrata/uscita del click"
+msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
-#, fuzzy
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
-msgstr "IO: impossibile disconnettere la porta d'uscita %1 da %2"
+msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr "impossibile creare l'Auditioner"
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
"Sessione: non si può usare quella location per l'auto punch (inizio <= fine)"
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1692
-#, fuzzy
+#: session.cc:1843
msgid "Session: could not create new midi track."
-msgstr "Sessione: impossibile creare una nuova traccia audio"
+msgstr ""
+
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr "Sessione: impossibile creare una nuova traccia audio"
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2018
-#, fuzzy
+#: session.cc:2169
msgid "Session: could not create new audio route."
-msgstr "Sessione: impossibile creare un nuovo route"
+msgstr ""
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
-#, fuzzy
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
-msgstr "Sessione: impossibile creare Source dalla descrizione XML"
+msgstr ""
-#: session.cc:2135
-#, fuzzy
+#: session.cc:2286
msgid "Session: could not create new route from template"
-msgstr "Sessione: impossibile creare un nuovo route"
+msgstr ""
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr "Ci sono già %1 registrazioni per %2, che io considero troppe"
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "impossibile creare un nuovo file audio \"%1\" per %2"
@@ -1826,9 +1686,8 @@ msgid ""
msgstr ""
#: session_directory.cc:59
-#, fuzzy
msgid "Cannot create Session directory at path %1 Error: %2"
-msgstr "impossibile creare la cartella per la sessione %1; ignorato"
+msgstr ""
#: session_directory.cc:76
msgid "Session subdirectory does not exist at path %1"
@@ -1838,11 +1697,11 @@ msgstr ""
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr ""
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr ""
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1852,10 +1711,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr ""
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr ""
@@ -1864,432 +1719,373 @@ msgstr ""
msgid "Session: cannot create Playlist from XML description."
msgstr "Sessione: impossibile creare Playlist dalla descrizione XML"
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr ""
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr ""
-#: session_state.cc:360
-msgid "Reset Remote Controls"
+#: session_state.cc:208
+msgid "Set block size and sample rate"
msgstr ""
-#: session_state.cc:385
-msgid "Session loading complete"
+#: session_state.cc:213
+msgid "Using configuration"
msgstr ""
-#: session_state.cc:452
-#, fuzzy
+#: session_state.cc:325
+msgid "Reset Remote Controls"
+msgstr ""
+
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr ""
"Sessione: impossibile creare la cartella sounds per la sessione \"%1\" (%2)"
-#: session_state.cc:466
-#, fuzzy
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:473
-#, fuzzy
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-"Sessione: impossibile creare la cartella sounds per la sessione \"%1\" (%2)"
-#: session_state.cc:480
-#, fuzzy
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:487
-#, fuzzy
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:494
-#, fuzzy
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:501
-#, fuzzy
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:515
-#, fuzzy
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:548
-#, fuzzy
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
-msgstr "Impossibile accedere a %1 per scrivere il modello di mixaggio"
+msgstr ""
-#: session_state.cc:554
-#, fuzzy
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
-msgstr "Impossibile aprire il modello di mixaggio %1 per leggere"
+msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr ""
-#: session_state.cc:636
-#, fuzzy
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
-#: session_state.cc:660
-#, fuzzy
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
-msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)"
+msgstr ""
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
-#, fuzzy
+#: session_state.cc:720
msgid "state could not be saved to %1"
-msgstr "stato non salvato"
+msgstr ""
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
-#: session_state.cc:822
-#, fuzzy
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
-msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)"
+msgstr ""
-#: session_state.cc:890
-#, fuzzy
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr ""
-"%1: il file di informazioni sullo stato della sessione \"%2\" non esiste!"
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "IO: impossibile registrare la porta %1"
+msgstr ""
-#: session_state.cc:911
-#, fuzzy
+#: session_state.cc:819
msgid "Session file %1 is not a session"
-msgstr "File di configurazione non salvato"
+msgstr ""
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione option"
-#: session_state.cc:1262
-#, fuzzy
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
-msgstr "Sessione: il file di stato XML non ha alcuna sezione routes"
+msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione sources"
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione Tempo Map"
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione locations"
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione Regions"
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione playlist"
-#: session_state.cc:1340
-#, fuzzy
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
-msgstr "Sessione: il file di stato XML non ha alcuna sezione routes"
+msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione diskstream"
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione routes"
-#: session_state.cc:1372
-#, fuzzy
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
-msgstr "Sessione: il file di stato XML non ha alcuna sezione routes"
+msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione edit groups"
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr "Sessione: il file di stato XML non ha alcuna sezione mix groups"
-#: session_state.cc:1396
-#, fuzzy
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
-msgstr "Sessione: il file di stato XML non ha alcuna sezione click"
+msgstr ""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr "Sessione: impossibile creare Route dalla descrizione XML"
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr ""
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr "Sessione: impossibile creare regione dalla descrizione XML"
-#: session_state.cc:1604
-#, fuzzy
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
-msgstr "impossibile creare un nuovo nome per la regione \"%1\""
+msgstr ""
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
-#, fuzzy
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
-msgstr "impossibile creare un nuovo nome per la regione \"%1\""
+msgstr ""
-#: session_state.cc:1742
-#, fuzzy
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione è incompleto (nessun source)"
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
-#, fuzzy
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione fa riferimento ad un source "
-"con id sconosciuto =%1"
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
-#, fuzzy
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione fa riferimento ad un source "
-"con id sconosciuto =%1"
-#: session_state.cc:1820
-#, fuzzy
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione è incompleto (nessun source)"
-#: session_state.cc:1854
-#, fuzzy
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione è incompleto (nessun source)"
-#: session_state.cc:1862
-#, fuzzy
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione fa riferimento ad un source "
-"con id sconosciuto =%1"
-#: session_state.cc:1868
-#, fuzzy
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-"Sessione: il nodo XML descrivente una Regione fa riferimento ad un source "
-"con id sconosciuto =%1"
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr "Sessione: impossibile creare Source dalla descrizione XML"
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr ""
-#: session_state.cc:2016
-#, fuzzy
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
-msgstr "E' stato trovato un file audio che non può essere usato da Ardour."
+msgstr ""
-#: session_state.cc:2033
-#, fuzzy
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
-msgstr "Impossibile creare la cartella per i modelli di mixaggio \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "Il modello \"%1\" esiste già - non è stata creata una nuova versione"
-#: session_state.cc:2052
-#, fuzzy
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
-msgstr "Impossibile creare la cartella per i modelli di mixaggio \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2062
-#, fuzzy
+#: session_state.cc:1978
msgid "template not saved"
-msgstr "modello di mixaggio non salvato"
+msgstr ""
-#: session_state.cc:2072
-#, fuzzy
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
-msgstr "Impossibile creare la cartella per i modelli di mixaggio \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2267
-#, fuzzy
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
-msgstr "Nodo sconosciuto \"%1\" trovato in Connections list dal file di stato"
+msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
-#, fuzzy
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
-msgstr "impossibile controllare il percorso %1 (%2)"
+msgstr ""
-#: session_state.cc:2868
-#, fuzzy
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
-msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2907
-#, fuzzy
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
-msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)"
+msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr "impossibile eliminare il peakfile %1 per %2 (%3)"
-#: session_state.cc:3227
-#, fuzzy
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-"impossibile fare copia di sicurezza del file di stato, stato attuale non "
-"salvato"
-#: session_state.cc:3240
-#, fuzzy
+#: session_state.cc:3156
msgid "history could not be saved to %1"
-msgstr "stato non salvato"
+msgstr ""
-#: session_state.cc:3243
-#, fuzzy
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
-msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
+msgstr ""
-#: session_state.cc:3247
-#, fuzzy
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
-msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
+msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
-#, fuzzy
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
-msgstr "IO: impossibile registrare la porta %1"
+msgstr ""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
-#, fuzzy
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
-msgstr "Sessione: il file di stato XML non ha alcuna sezione diskstream"
+msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr ""
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2312,9 +2108,8 @@ msgid "Skipping event with unordered time %1"
msgstr ""
#: smf_source.cc:410
-#, fuzzy
msgid "cannot open MIDI file %1 for write"
-msgstr "impossibile creare un nuovo file audio \"%1\" per %2"
+msgstr ""
#: sndfile_helpers.cc:32
msgid "WAV"
@@ -2401,9 +2196,8 @@ msgid "Big-endian (PowerPC)"
msgstr ""
#: sndfilesource.cc:201
-#, fuzzy
msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: sndfilesource.cc:209
msgid ""
@@ -2420,28 +2214,25 @@ msgid ""
msgstr ""
#: sndfilesource.cc:302
-#, fuzzy
msgid "could not allocate file %1 for reading."
-msgstr "Impossibile aprire il modello di mixaggio %1 per leggere"
+msgstr ""
#: sndfilesource.cc:337
msgid "SndFileSource: could not seek to frame %1 within %2 (%3)"
msgstr ""
#: sndfilesource.cc:347
-#, fuzzy
msgid ""
"SndFileSource: @ %1 could not read %2 within %3 (%4) (len = %5, ret was %6)"
-msgstr "FileSource: impossibile aprire \"%1\": (%2)"
+msgstr ""
#: sndfilesource.cc:391 sndfilesource.cc:420
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
-#, fuzzy
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
-msgstr "errore di programmazione: %1"
+msgstr ""
#: sndfilesource.cc:523
msgid "attempt to flush a non-writable audio file source (%1)"
@@ -2469,14 +2260,12 @@ msgid "%1: cannot seek to %2 (libsndfile error: %3)"
msgstr ""
#: sndfilesource.cc:727
-#, fuzzy
msgid "SndFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: sndfilesource.cc:740 sndfilesource.cc:790 sndfilesource.cc:797
-#, fuzzy
msgid "SndFileSource: \"%1\" bad write (%2)"
-msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)"
+msgstr ""
#: sndfilesource.cc:820
msgid ""
@@ -2623,9 +2412,8 @@ msgid ""
msgstr ""
#: user_bundle.cc:47
-#, fuzzy
msgid "Node for Bundle has no \"name\" property"
-msgstr "Il nodo per la connessione non possiede l'attributo \"nome\""
+msgstr ""
#: user_bundle.cc:59 user_bundle.cc:80
#, c-format
@@ -2633,24 +2421,20 @@ msgid "Unknown node \"%s\" in Bundle"
msgstr ""
#: user_bundle.cc:64
-#, fuzzy
msgid "Node for Channel has no \"name\" property"
-msgstr "Il nodo per la connessione non possiede l'attributo \"nome\""
+msgstr ""
#: user_bundle.cc:70
-#, fuzzy
msgid "Node for Channel has no \"type\" property"
-msgstr "Il nodo per la connessione non possiede l'attributo \"nome\""
+msgstr ""
#: user_bundle.cc:85
-#, fuzzy
msgid "Node for Port has no \"name\" property"
-msgstr "Il nodo per la connessione non possiede l'attributo \"nome\""
+msgstr ""
#: utils.cc:358 utils.cc:382
-#, fuzzy
msgid "Splice"
-msgstr "duplica"
+msgstr ""
#: utils.cc:360 utils.cc:375
msgid "Slide"
@@ -2661,23 +2445,22 @@ msgid "Lock"
msgstr ""
#: utils.cc:365
-#, fuzzy
msgid "programming error: unknown edit mode string \"%1\""
-msgstr "errore di programmazione: %1"
+msgstr ""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr ""
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr ""
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr ""
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr ""
@@ -2685,523 +2468,18 @@ msgstr ""
msgid "programming error: unknown sync source string \"%1\""
msgstr ""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr ""
-#: utils.cc:429
+#: utils.cc:432
msgid "LTC"
msgstr ""
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr ""
-#: utils.cc:614
-#, fuzzy
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
-msgstr "impossibile accedere al file di sessione recente %1 (%2)"
-
-#, fuzzy
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "DiskStream: canale fuori margine"
-
-#~ msgid "Session: you can't use a mark for auto loop"
-#~ msgstr "Sessione: non si può usare un marcatore per l'auto loop"
-
-#, fuzzy
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "IO: impossibile registrare la porta %1"
-
-#, fuzzy
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr ""
-#~ "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
-
-#, fuzzy
-#~ msgid "old-style crossfade information - no position information"
-#~ msgstr "il nodo XML per la Location non ha informazioni sull'inizio"
-
-#~ msgid "Chunk %1 uses an unknown playlist \"%2\""
-#~ msgstr "Lo spezzone %1 usa una playlist sconosciuta \"%2\""
-
-#~ msgid "Chunk %1 contains malformed playlist information"
-#~ msgstr "Lo spezzone %1 contiene informazioni sulla playlist mal formate"
-
-#~ msgid "signal"
-#~ msgstr "segnale"
-
-#, fuzzy
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr ""
-#~ "Il modello \"%1\" esiste già - non è stata creata una nuova versione"
-
-#~ msgid "Session: cannot create Named Selection from XML description."
-#~ msgstr "Sessione: impossibile creare Named Selection dalla descizione XML"
-
-#, fuzzy
-#~ msgid "Unable to create a backup copy of file %1 (%2)"
-#~ msgstr "audiofilter: errore nel creare un nuovo file audio %1 (%2)"
-
-#, fuzzy
-#~ msgid "programming error: realpath(%1) failed, errcode %2"
-#~ msgstr "errore di programmazione: %1"
-
-#, fuzzy
-#~ msgid "illegal or badly-formed string used for path (%1)"
-#~ msgstr "il percorso indicato per il RAID è non valido o malformato"
-
-#, fuzzy
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "il percorso indicato per la ricerca RAID è ambiguo"
-
-#, fuzzy
-#~ msgid "Could not move capture file from %1"
-#~ msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
-
-#~ msgid "cannot open click emphasis soundfile %1 (%2)"
-#~ msgstr "impossibile accedere al file audio di enfasi per il click %1 (%2)"
-
-#~ msgid "cannot read data from click emphasis soundfile"
-#~ msgstr "impossibile leggere dati dal file audio di enfasi per il click"
-
-#, fuzzy
-#~ msgid "Reset Control Protocols"
-#~ msgstr ""
-#~ "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub sounds dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "Sessione: impossibile creare la cartella sounds per la sessione "
-#~ "\"%1\" (%2)"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub midi dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "Sessione: impossibile creare la cartella sounds per la sessione "
-#~ "\"%1\" (%2)"
-
-#, fuzzy
-#~ msgid "Session: XML state has no speakers section - assuming simple stereo"
-#~ msgstr "Sessione: il file di stato XML non ha alcuna sezione sources"
-
-#, fuzzy
-#~ msgid "could not allocate file %1"
-#~ msgstr "IO: impossibile registrare la porta %1"
-
-#~ msgid "programming error:"
-#~ msgstr "errore di programmazione:"
-
-#~ msgid "cannot open pan automation file %1 (%2)"
-#~ msgstr "impossibile accedere al file dell'automazione pan %1 (%2)"
-
-#, fuzzy
-#~ msgid "AudioDiskstream: Session doesn't know about a Playlist called \"%1\""
-#~ msgstr "DiskStream: La sessione non riconosce la Playlist chiamata \"%1\""
-
-#, fuzzy
-#~ msgid "%1: cannot create region from pending capture sources"
-#~ msgstr "Playlist: impossibile creare la Regione dal file di stato"
-
-#~ msgid "initial state"
-#~ msgstr "stato iniziale"
-
-#~ msgid "xfade change"
-#~ msgstr "cambio dello smorzamento incrociato"
-
-#~ msgid "region modified"
-#~ msgstr "regione modificata"
-
-#~ msgid "AudioTrack: diskstream \"%1\" not known by session"
-#~ msgstr "AudioTrack: diskstream \"%1\" non riconosciuto dalla sessione"
-
-#~ msgid "cannot activate JACK client"
-#~ msgstr "impossibile attivare il client JACK"
-
-#~ msgid "register audio input port called before engine was started"
-#~ msgstr ""
-#~ "la richiesta di registrazione di una porta di entrata avvenuta prima "
-#~ "dell'avvio dell'applicazione"
-
-#~ msgid "register audio output port called before engine was started"
-#~ msgstr ""
-#~ "la richiesta di registrazione di una porta di uscita avvenuta prima "
-#~ "dell'avvio dell'applicazione"
-
-#~ msgid "get_nth_physical called before engine was started"
-#~ msgstr ""
-#~ "richiesta di get_nth_physical avvenuta prima dell'avvio dell'applicazione"
-
-#, fuzzy
-#~ msgid "get_port_total_latency() called with no JACK client connection"
-#~ msgstr ""
-#~ "richiesta di get_port_total_latency() avvenuta prima dell'avvio "
-#~ "dell'applicazione"
-
-#~ msgid "get_port_total_latency() called before engine was started"
-#~ msgstr ""
-#~ "richiesta di get_port_total_latency() avvenuta prima dell'avvio "
-#~ "dell'applicazione"
-
-#, fuzzy
-#~ msgid "fade in change"
-#~ msgstr "cambio dello smorzamento incrociato"
-
-#, fuzzy
-#~ msgid "envelope change"
-#~ msgstr "livello cambiato"
-
-#, fuzzy
-#~ msgid "Error reading from peak request pipe"
-#~ msgstr "Errore nel leggere dalla porta MIDI %1"
-
-#, fuzzy
-#~ msgid "AudioSource: could not create peak thread"
-#~ msgstr "Sessione: impossibile creare un nuovo route"
-
-#~ msgid "initial"
-#~ msgstr "iniziale"
-
-#~ msgid "cleared"
-#~ msgstr "pulito"
-
-#~ msgid "added event"
-#~ msgstr "aggiunto evento"
-
-#~ msgid "removed event"
-#~ msgstr "rimosso evento"
-
-#~ msgid "removed multiple events"
-#~ msgstr "rimossi molteplici eventi"
-
-#~ msgid "removed range"
-#~ msgstr "rimosso intervallo"
-
-#~ msgid "cut/copy/clear"
-#~ msgstr "taglia/copia/pulisci"
-
-#~ msgid "copy"
-#~ msgstr "copia"
-
-#~ msgid "ill-formed MIDI port specification in ardour rcfile (ignored)"
-#~ msgstr ""
-#~ "porta MIDI mal configurata nel file di configurazione di ardour (ignorato)"
-
-#~ msgid "Node for Connection has no \"connections\" property"
-#~ msgstr "Il nodo per la connessione non ha l'attributo \"connessioni\""
-
-#, fuzzy
-#~ msgid "active changed"
-#~ msgstr "livello cambiato"
-
-#~ msgid "no MIDI ports specified: no MMC or MTC control possible"
-#~ msgstr ""
-#~ "Nessuna porta MIDI specificata: impossibile alcun controllo MMC o MTC"
-
-#~ msgid "MIDI port specifications for \"%1\" are not understandable."
-#~ msgstr "Le specifiche per la porta MIDI \"%1\" non sono state capite"
-
-#~ msgid "No MMC control (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
-
-#~ msgid "No MTC support (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
-
-#, fuzzy
-#~ msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile"
-
-#~ msgid "Import: cannot open converted sound file \"%1\""
-#~ msgstr "Import: impossibile aprire il file audio convertito \"%1\""
-
-#~ msgid ""
-#~ "Session::import_audiofile: cannot open new file source for channel %1"
-#~ msgstr ""
-#~ "Session::import_audiofile: impossibile aprire il nuovo file per il canale "
-#~ "%1"
-
-#~ msgid "Import: could not open temp file: %1"
-#~ msgstr "Import: impossibile aprire il file audio temporaneo \"%1\""
-
-#~ msgid "XML node describing insert is missing the `id' field"
-#~ msgstr "Il nodo XML descrivente l'insert manca del campo `id'"
-
-#~ msgid "XML node describing insert is missing a Redirect node"
-#~ msgstr "Il nodo XML descrivente l'insert manca di un nodo Redirect"
-
-#~ msgid "XML node describing a plugin insert is missing the `%1' information"
-#~ msgstr ""
-#~ "Il nodo XML descrivente un insert plugin manca della informazione `%1'"
-
-#, fuzzy
-#~ msgid ""
-#~ "XML node describing a port automation is missing the `%1' information"
-#~ msgstr ""
-#~ "Il nodo XML descrivente un insert LADSPA manca della informazione `%1'"
-
-#~ msgid "PortInsert: cannot add input port"
-#~ msgstr "PortInsert: impossibile aggiungere una porta d'entrata"
-
-#~ msgid "PortInsert: cannot add output port"
-#~ msgstr "PortInsert: impossibile aggiungere una porta d'uscita"
-
-#~ msgid "clear"
-#~ msgstr "pulisci"
-
-#~ msgid "remove"
-#~ msgstr "rimuovi"
-
-#~ msgid "error writing pan automation file (%s)"
-#~ msgstr "errore nello scrivere il file per l'automazione pan (%s)"
-
-#~ msgid "cannot open pan automation file \"%1\" for saving (%s)"
-#~ msgstr ""
-#~ "impossibile aprire il file dell'automazione pan \"%1\" per salvare (%s)"
-
-#~ msgid "remove region"
-#~ msgstr "rimuovi la regione"
-
-#~ msgid "separate"
-#~ msgstr "separa"
-
-#~ msgid "split"
-#~ msgstr "spezza"
-
-#~ msgid "nudged"
-#~ msgstr "spostato"
-
-#, fuzzy
-#~ msgid "VST: cannot load module from \"%1\""
-#~ msgstr "LADPSA: impossibile caricare il modulo da \"%1\""
-
-#, fuzzy
-#~ msgid "post"
-#~ msgstr "incolla"
-
-#, fuzzy
-#~ msgid "XML node describing a redirect is missing the `active' field"
-#~ msgstr "Il nodo XML descrivente l'insert manca del campo `type'"
-
-#, fuzzy
-#~ msgid "active_changed"
-#~ msgstr "livello cambiato"
-
-#, fuzzy
-#~ msgid "cannot setup master inputs"
-#~ msgstr "IO: impossibile registrare la porta %1"
-
-#, fuzzy
-#~ msgid "cannot set up master outputs"
-#~ msgstr "IO: impossibile registrare la porta %1"
-
-#~ msgid "too many regions with names like %1"
-#~ msgstr "troppe regioni con nomi come %1"
-
-#~ msgid "Export: no output file specified"
-#~ msgstr "Esportazione: nessun file di output scpecificato"
-
-#~ msgid "Export: cannot open output file \"%1\" (%2)"
-#~ msgstr "Esportazione: impossibile accedere al fil di output \"%1\" (%2)"
-
-#~ msgid "cannot initialize sample rate conversion: %1"
-#~ msgstr "impossibile avviare la conversione di campionatura: %1"
-
-#~ msgid "Export: could not write data to output file (%1)"
-#~ msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
-
-#~ msgid "Error reading from MIDI port %1"
-#~ msgstr "Errore nel leggere dalla porta MIDI %1"
-
-#, fuzzy
-#~ msgid "Session: cannot create session tape dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)"
-
-#~ msgid "Session: cannot create session automation dir \"%1\" (%2)"
-#~ msgstr ""
-#~ "Sessione: impossibile creare la cartella automation per la sessione "
-#~ "\"%1\" (%2)"
-
-#~ msgid "Session already exists. Not overwriting"
-#~ msgstr "La sessione esiste già. Non sovrascrivo"
-
-#~ msgid "Session: XML state has no connections section"
-#~ msgstr "Sessione: il file di stato XML non ha alcuna sezione connections"
-
-#, fuzzy
-#~ msgid "cannot create dead sounds directory \"%1\"; ignored"
-#~ msgstr "impossibile creare la cartella sounds \"%1\"; ignorato"
-
-#, fuzzy
-#~ msgid "cannot create peak file directory \"%1\"; ignored"
-#~ msgstr "impossibile creare la cartella per la sessione %1; ignorato"
-
-#, fuzzy
-#~ msgid "cannot remove dead sound file %1 (%2)"
-#~ msgstr "impossibile accedere al file audio per il click %1 (%2)"
-
-#~ msgid "tempoize: error creating name for new audio file based on %1"
-#~ msgstr ""
-#~ "tempoize: errore nel creare il nome per il nuovo file audio basato su %1"
-
-#~ msgid "tempoize: error creating new audio file %1 (%2)"
-#~ msgstr "tempoize: errore nel creare un nuovo file audio %1 (%2)"
-
-#~ msgid "FileSource: cannot get host information for BWF header (%1)"
-#~ msgstr ""
-#~ "FileSource: impossibile ottenere info sull'host dall'header BWF (%1)"
-
-#, fuzzy
-#~ msgid "cleared history"
-#~ msgstr "pulito"
-
-#, fuzzy
-#~ msgid "Error: could not write %1"
-#~ msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)"
-
-#, fuzzy
-#~ msgid "add tempo"
-#~ msgstr "aggiungi regione"
-
-#, fuzzy
-#~ msgid "replace tempo"
-#~ msgstr "sostituisci la regione"
-
-#, fuzzy
-#~ msgid "replaced meter"
-#~ msgstr "sostituisci la regione"
-
-#, fuzzy
-#~ msgid "cannot create VST chunk directory: %1"
-#~ msgstr "impossibile creare la cartella sounds \"%1\"; ignorato"
-
-#, fuzzy
-#~ msgid "cannot check VST chunk directory: %1"
-#~ msgstr "impossibile determinare la cartella di lavoro corrente (%1)"
-
-#, fuzzy
-#~ msgid ""
-#~ "CoreAudioSource: file only contains %1 channels; %2 is invalid as a "
-#~ "channel number"
-#~ msgstr ""
-#~ "SndFileSource: il file contiene solo %1 canali; %2 non è valido come "
-#~ "numero di canale"
-
-#~ msgid "FileSource: \"%1\" not found when searching %2 using %3"
-#~ msgstr "FileSource: \"%1\" non trovato nel cercare %2 utilizzando %3"
-
-#~ msgid "FileSource: cannot write header in %1"
-#~ msgstr "FileSource: impossibile scrivere header in %1"
-
-#~ msgid "FileSource: cannot locate chunks in %1"
-#~ msgstr "FileSource: impossibile trovare spezzoni in %1"
-
-#~ msgid "FileSource: cannot read header in %1"
-#~ msgstr "FileSource: impossibile leggere header in %1"
-
-#~ msgid "FileSource: cannot check header in %1"
-#~ msgstr "FileSource: impossibile controllare header in %1"
-
-#, fuzzy
-#~ msgid "FileSource: cannot initialize peakfile for %1 as %2"
-#~ msgstr "FileSource: impossibile avviare il peakfile per %1"
-
-#~ msgid "FileSource: cannot seek to end of file"
-#~ msgstr "FileSource: impossibile cercare fino alla fine del file"
-
-#~ msgid "FileSource: cannot read RIFF/WAVE chunk from file"
-#~ msgstr "FileSource: impossibile accedere allo spezzone RIFF/WAVE dal file"
-
-#~ msgid "FileSource %1: not a RIFF/WAVE file"
-#~ msgstr "FileSource %1: il file non un file RIFF/WAVE"
-
-#~ msgid "FileSource: can't read a chunk"
-#~ msgstr "FileSource: impossibile accedere ad uno spezzone"
-
-#~ msgid "FileSource: cannot get user information for BWF header (%1)"
-#~ msgstr "FileSource: impossibile otterene info utente dall'header BWF (%1)"
-
-#~ msgid "FileSource[%1]: cannot update data size: %2"
-#~ msgstr "FileSource[%1]: impossibile aggiornare la dimensione dei dati: %2"
-
-#~ msgid "FileSource: can't find RIFF chunk info"
-#~ msgstr "FileSource: impossibile trovare info sullo spezzone RIFF"
-
-#, fuzzy
-#~ msgid "FileSource: can't find RIFX chunk info"
-#~ msgstr "FileSource: impossibile trovare info sullo spezzone RIFF"
-
-#~ msgid "FileSource: can't read RIFF chunk"
-#~ msgstr "FileSource: impossibile accedere allo spezzone RIFF"
-
-#~ msgid "FileSource: can't find format chunk info"
-#~ msgstr "FileSource: impossibile trovare info sul formato dello spezzone"
-
-#~ msgid "FileSource: can't read format chunk"
-#~ msgstr "FileSource: impossibile leggere il formato dello spezzone"
-
-#~ msgid "FileSource: can't find data chunk info"
-#~ msgstr "FileSource: impossibile trovare info sui dati dello spezzone"
-
-#~ msgid "FileSource: can't read data chunk"
-#~ msgstr "FileSource: impossibile leggere dati dello spezzone"
-
-#~ msgid ""
-#~ "FileSource: cannot read Broadcast Wave data from existing audio file "
-#~ "\"%1\" (%2)"
-#~ msgstr ""
-#~ "FileSource: impossibile leggere dati Broadcast Wave dal file audio "
-#~ "esistente \"%1\" (%2) "
-
-#~ msgid ""
-#~ "FileSource: cannot read Broadcast Wave coding history from audio file "
-#~ "\"%1\" (%2)"
-#~ msgstr ""
-#~ "FileSource: impossibile leggere lo storico del Broadcast Wave dal file "
-#~ "audio \"%1\" (%2)"
-
-#, fuzzy
-#~ msgid ""
-#~ "FileSource \"%1\" does not use valid sample format.\n"
-#~ "This is probably a programming error."
-#~ msgstr ""
-#~ "FileSource \"%1\" non usa il formato floating point.\n"
-#~ "Questo probabilmente un errore di programmazione."
-
-#~ msgid "FileSource \"%1\" has no \"data\" chunk"
-#~ msgstr "FileSource \"%1\" non ha uno spezzone di \"dati\""
-
-#~ msgid ""
-#~ "%1: data length in header (%2) differs from implicit size in file (%3)"
-#~ msgstr ""
-#~ "%1: la lunghezza dei dati nell'header (%2) diversa dalla dimensione "
-#~ "implicita nel file (%3)"
-
-#~ msgid "\"%1\" has a sample rate of %2 instead of %3 as used by this session"
-#~ msgstr ""
-#~ "\"%1\" ha una sample rate di %2 anzicch di %3 come il resto della sessione"
-
-#~ msgid "FileSource: cannot write WAVE chunk: %1"
-#~ msgstr "FileSource: impossibile scrivere lo spezzone WAVE: %1"
-
-#~ msgid "FileSource: cannot write format chunk: %1"
-#~ msgstr "FileSource: impossibile scrivere il formato dello spezzone: %1"
-
-#, fuzzy
-#~ msgid "cannot create feedback request pipe (%1)"
-#~ msgstr "Errore nel leggere dalla porta MIDI %1"
-
-#, fuzzy
-#~ msgid "Error reading from feedback request pipe"
-#~ msgstr "Errore nel leggere dalla porta MIDI %1"
-
-#~ msgid "could not create crossfade object in playlist %1"
-#~ msgstr "impossibile creare smorzamento incrociato nella playlist %1"
-
-#, fuzzy
-#~ msgid "Could not find a template called %1 in %2"
-#~ msgstr "Impossibile aprire il modello di mixaggio %1 per leggere"
+msgstr ""
diff --git a/libs/ardour/po/nn.po b/libs/ardour/po/nn.po
index e5c22966c4..2356a737f4 100644
--- a/libs/ardour/po/nn.po
+++ b/libs/ardour/po/nn.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2011-09-13 22:43+0100\n"
"Last-Translator: Eivind Ødegård <meinmycell-lists@yahoo.no>\n"
"Language-Team: Nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -126,7 +126,7 @@ msgstr "Lydspelelister (ubrukte)"
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "Programmeringsfeil: %1"
@@ -195,66 +195,21 @@ msgstr "greier ikkje lasta VAMP-innstikket \"%1\""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr "VAMP-innstikket \"%1\" vart ikkje lasta"
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-"Denne utgåva av JACK er gamal - du bør oppgradera til ei utgåve som støttar "
-"jack_port_type_get_buffer_size()"
-
-#: audioengine.cc:190
-msgid "Connect session to engine"
-msgstr "Kople økta til maskin"
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-"ein port med namnet \"%1\" finst frå før: sjekk opp dublettar i namn på spor "
-"eller bussar"
-#: audioengine.cc:845 session.cc:1698
-#, fuzzy
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-"Det finst ikkje fleire JACK-portar. Du må stoppa %1 og starta JACK på nytt "
-"med nok portar viss du treng så mange spor."
-
-#: audioengine.cc:848
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "AudioEngine: greier ikkje registrera porten \"%1\": %2"
-
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr "greidde ikkje laga port: %1"
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr "tilkoplinga vart oppkalla frø tenaren starta"
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "Lydmaskineri: Klarte ikkje kopla %1 (%2) til %3 (%4)."
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
-msgstr "fråkoplinga vart oppkalla før tenaren starta"
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
-msgstr "get_port_by_name() vart oppkalla før tenaren starta"
-
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr "get_ports vart oppkalla før tenaren starta"
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "greidde ikkje kopla til JACK"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
+msgstr ""
#: audioregion.cc:1643
msgid ""
@@ -321,9 +276,8 @@ msgid "%1: could not write peak file data (%2)"
msgstr "%1: greidde ikkje skriva toppfildata (%2)"
#: audiosource.cc:924
-#, fuzzy
msgid "could not truncate peakfile %1 to %2 (error: %3)"
-msgstr "kan ikkje døypa om %1 til %2 (%3)"
+msgstr ""
#: auditioner.cc:87
msgid "no outputs available for auditioner - manual connection required"
@@ -422,18 +376,16 @@ msgid "Instantiating mandatory control protocol %1"
msgstr "Lagar obligatorisk kontrollprotokolløkt %1"
#: control_protocol_manager.cc:222
-#, fuzzy
msgid "looking for control protocols in %1\n"
-msgstr "ser etter kontrollprotokollar i %1\n"
+msgstr ""
#: control_protocol_manager.cc:247
msgid "Control protocol %1 not usable"
msgstr "Kontrollprotokollen %1 er ikkje brukande"
#: control_protocol_manager.cc:264
-#, fuzzy
msgid "Control surface protocol discovered: \"%1\"\n"
-msgstr "Kontrollflateprotokollen \"%1\" oppdaga"
+msgstr ""
#: control_protocol_manager.cc:282
msgid "ControlProtocolManager: cannot load module \"%1\" (%2)"
@@ -460,7 +412,7 @@ msgstr "finn ikkje prosessor-MHz i /proc/cpuinfo"
msgid "audio"
msgstr "lyd"
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr "MIDI"
@@ -546,24 +498,20 @@ msgid "Session rate"
msgstr "Øktrate"
#: export_format_specification.cc:537
-#, fuzzy
msgid "normalize"
-msgstr "normaliser, "
+msgstr ""
#: export_format_specification.cc:541
-#, fuzzy
msgid "trim"
-msgstr "tilskjering, "
+msgstr ""
#: export_format_specification.cc:543
-#, fuzzy
msgid "trim start"
-msgstr "start tilskjering, "
+msgstr ""
#: export_format_specification.cc:545
-#, fuzzy
msgid "trim end"
-msgstr "skjer sluttpunktet, "
+msgstr ""
#: export_formats.cc:49
msgid "Shaped Noise"
@@ -577,7 +525,7 @@ msgstr "Trekant"
msgid "Rectangular"
msgstr "Firkant"
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr "Ingen"
@@ -622,9 +570,8 @@ msgid "Editor: cannot open \"%1\" as export file for CD marker file"
msgstr "Redigering: greier ikkje opna \"%1\" som eksportfil for CD-markørfil"
#: export_handler.cc:417 export_handler.cc:420
-#, fuzzy
msgid "an error occured while writing a TOC/CUE file: %1"
-msgstr "ompunktinga var mislukka: %1"
+msgstr ""
#: export_handler.cc:642 export_handler.cc:700
msgid "Cannot convert %1 to Latin-1 text"
@@ -635,33 +582,28 @@ msgid "Searching for export formats in %1"
msgstr "Leitar etter eksportformat i %1"
#: export_profile_manager.cc:99
-#, fuzzy
msgid "Unable to create export format directory %1: %2"
-msgstr "greier ikkje laga øktmappa på stigen %1 : %2"
+msgstr ""
#: export_profile_manager.cc:257
-#, fuzzy
msgid "Unable to remove export preset %1: %2"
-msgstr "greidde ikkje laga port: %1"
+msgstr ""
#: export_profile_manager.cc:347
msgid "Selection"
msgstr "Val"
#: export_profile_manager.cc:600
-#, fuzzy
msgid "Unable to rename export format %1 to %2: %3"
-msgstr "kan ikkje døypa om filkjelda frå %1 til %2 (%3)"
+msgstr ""
#: export_profile_manager.cc:632
-#, fuzzy
msgid "Unable to remove export profile %1: %2"
-msgstr "Greier ikkje laga tryggingskopi av tilstandsfila %1 (%2)"
+msgstr ""
#: export_profile_manager.cc:649
-#, fuzzy
msgid "empty format"
-msgstr "format"
+msgstr ""
#: export_profile_manager.cc:818
msgid "No timespan has been selected!"
@@ -694,7 +636,7 @@ msgid ""
msgstr ""
"%1 støttar berre %2 kanalar, men du har %3 kanalar i kanaloppsettet ditt"
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr "Det er alt 1000 filer med namn som %1, kuttar ut versjonsnamn"
@@ -741,9 +683,8 @@ msgid "cannot rename file %1 to %2 (%3)"
msgstr "kan ikkje døypa om %1 til %2 (%3)"
#: filesystem_paths.cc:73
-#, fuzzy
msgid "Cannot create Configuration directory %1 - cannot run"
-msgstr "greier ikkje laga lydmappa \"%1\", hoppa over"
+msgstr ""
#: filesystem_paths.cc:78
msgid ""
@@ -795,23 +736,23 @@ msgstr "greier ikkje avgjera kva som er arbeidsmappa no (%1)"
msgid "unknown file type for session %1"
msgstr "ukjend filtype for økta %1"
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr "Greidde ikkje setja systemgrensa for opne filer til \"uavgrensa\""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr "Greidde ikkje setja grensa for opne systemfiler til %1"
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr "Greidde ikkje få tak i grensa for opne systemfiler (%1)"
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr "Lastar oppsettet"
@@ -837,9 +778,8 @@ msgid "Track %1 of %2 contained no usable MIDI data"
msgstr "Spor %1 av %2 inneheld ingen brukbare MIDI-data"
#: import.cc:453
-#, fuzzy
msgid "MIDI file %1 was not readable (no reason available)"
-msgstr "MIDI-fila %1 kan ikkje lesast (og me finn ingen grunn til det"
+msgstr ""
#: import.cc:499
msgid "Import: cannot open input sound file \"%1\""
@@ -858,9 +798,8 @@ msgid "Failed to remove some files after failed/cancelled import operation"
msgstr ""
#: instrument_info.cc:40 instrument_info.cc:61
-#, fuzzy
msgid "Unknown"
-msgstr "ukjend"
+msgstr ""
#: instrument_info.cc:230
msgid "preset %1 (bank %2)"
@@ -934,60 +873,56 @@ msgstr "IU: feilforma streng i XML-punktet for utgangane \"%1\""
msgid "IO: bad output string in XML node \"%1\""
msgstr "IU: feil utgangsstreng i XML-punktet \"%1\""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr "%s %u"
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr " %s inn"
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr "%s ut"
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr "mono"
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr "V"
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr "H"
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr "%d"
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr "LADSPA: modulen har ingen skildringsfunksjon"
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr "LADSPA: tilleggsprogrammet har vorte borte sidan det vart oppdaga!"
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
"LADSPA: kan ikkje bruka \"%1\", sidan han ikkje kan prosessera på staden"
#: ladspa_plugin.cc:297
-#, fuzzy
msgid ""
"illegal parameter number used with plugin \"%1\". This may indicate a change "
"in the plugin design, and presets may be invalid"
msgstr ""
-"ein ulovleg parameter vart brukt med tilleggsprogrammet \"%1\". Dette kan "
-"tyda på feil i korleis tilleggsprogrammet er utforma, og at eventuelle "
-"ferdigprogram kan vera ugyldige."
#: ladspa_plugin.cc:376 ladspa_plugin.cc:426
msgid "Bad node sent to LadspaPlugin::set_state"
@@ -1057,7 +992,7 @@ msgstr "Stader: forsøk på å bruka ukjend stad som vald stad"
msgid "incorrect XML mode passed to Locations::set_state"
msgstr "feil XML-modus send til Locations::set_state"
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr "økt"
@@ -1132,9 +1067,8 @@ msgid ""
msgstr "%1: I/U-oppsettsendringa %4 ba om å bruka %2, men kanaloppsettet er %3"
#: midi_diskstream.cc:219
-#, fuzzy
msgid "MidiDiskstream: Playlist \"%1\" isn't a midi playlist"
-msgstr "MIDI-diskstraum: Spelelista \"%1\" er ikkje ei midispeleliste"
+msgstr ""
#: midi_diskstream.cc:270
msgid "MidiDiskstream %1: there is no existing playlist to make a copy of!"
@@ -1232,22 +1166,22 @@ msgstr "polaritetskontroll"
msgid "solo control"
msgstr "solo kontroll"
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr "MTC-slave: greidde ikkje lesa gyldig tid. Søv."
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
"Ukjent rate/sleppverdi %1 i innkomande MTC-straum, bruker øktverdiar i staden"
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1272,9 +1206,8 @@ msgid "insert region"
msgstr "set inn bolk"
#: operations.cc:29
-#, fuzzy
msgid "drag region brush"
-msgstr "dra bolk-børsting"
+msgstr ""
#: operations.cc:30
msgid "region drag"
@@ -1312,20 +1245,19 @@ msgstr "Panoreringa fekk XML-data for %1 - ignorert"
msgid "looking for panners in %1"
msgstr "ser etter panoreringar i %1"
-#: panner_manager.cc:99
-#, fuzzy
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
-msgstr "Fann panoreringar: \"%1\""
+msgstr ""
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr "Panoreringsstyring: kan ikkje lasta modulen \"%1\" (%2)"
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr "Panoreringsstyring: modulen \"%1\" har ingen skildringsfunksjon."
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr "fann inga panorering for inn/ut = %1/%2"
@@ -1356,22 +1288,16 @@ msgid "Could not construct playlist for PlaylistSource from session data!"
msgstr "Greidde ikkje byggja speleliste for PlaylistSource frå øktdata!"
#: plugin.cc:324
-#, fuzzy
msgid ""
"Plugin presets are not supported in this build of %1. Consider paying for a "
"full version"
msgstr ""
-"Du kan ikkje lagra førehandsoppsett for AudioUnit i denne versjonen av "
-"Ardour. Du bør vurdera å betala for ein nyare verjson"
#: plugin.cc:398
-#, fuzzy
msgid ""
"Saving plugin settings is not supported in this build of %1. Consider paying "
"for the full version"
msgstr ""
-"Du kan ikkje lagra AudioUnit-innstillingar i denne versjonen av Ardour. Du "
-"bør vurdera å betala for ein nyare verjson"
#: plugin_insert.cc:598
msgid "programming error: "
@@ -1428,22 +1354,16 @@ msgid "LADSPA: module \"%1\" has no descriptor function."
msgstr "LADSPA: modulen \"%1\" har ingen skildringsfunksjon."
#: plugin_manager.cc:602
-#, fuzzy
msgid ""
"VST plugin %1 does not support processReplacing, and so cannot be used in %2 "
"at this time"
msgstr ""
-"VST-tilleggsprogrammet %1 støttar ikkje prosessbyte, og kan ikkje brukast i "
-"Ardour nett no."
#: plugin_manager.cc:709
-#, fuzzy
msgid ""
"linuxVST plugin %1 does not support processReplacing, and so cannot be used "
"in %2 at this time"
msgstr ""
-"VST-tilleggsprogrammet %1 støttar ikkje prosessbyte, og kan ikkje brukast i "
-"Ardour nett no."
#: plugin_manager.cc:870
msgid "unknown plugin status type \"%1\" - all entries ignored"
@@ -1453,11 +1373,7 @@ msgstr "\"%1\" er ein ukjend utvidingsstatustype, såg bort frå alt"
msgid "unknown plugin type \"%1\" - ignored"
msgstr "\"%1\" er ein ukjend innstikktype - hoppa over"
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr "get_connected_latency_range() kalla opp då JACK vart fråkopla"
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "greidde ikkje registrera %1."
@@ -1474,6 +1390,36 @@ msgid "non-port insert XML used for port plugin insert"
msgstr ""
"tappingspunkt-XML som ikkje er ein port er brukt for porttilleggstapping"
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+"ein port med namnet \"%1\" finst frå før: sjekk opp dublettar i namn på spor "
+"eller bussar"
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr "AudioEngine: greier ikkje registrera porten \"%1\": %2"
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr "greidde ikkje laga port: %1"
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "Lydmaskineri: Klarte ikkje kopla %1 (%2) til %3 (%4)."
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr "Ikkje noko %1-eigenskapsflagg i elementet %2"
@@ -1482,44 +1428,41 @@ msgstr "Ikkje noko %1-eigenskapsflagg i elementet %2"
msgid "No child node with active property"
msgstr "Ingen undernode med aktiv eigenskap"
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr "Lastar systemoppsettfila %1"
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr "%1: greier ikkje lesa systemoppsettfila \"%2\""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr "%1: greidde ikkje lasta systemoppsettfila \"%2\" skikkeleg."
-#: rc_configuration.cc:106
-#, fuzzy
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-"Oppsettsfila for %1 er tom. Dette tyder truleg at det var ein feil då %1 "
-"vart installert."
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr "Lastar brukaroppsettfila %1"
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr "%1: greier ikkje lesa oppsettfila \"%2\""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr "%1: greidde ikkje lasta brukaroppsettfila \"%2\" skikkeleg."
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr "%1-oppsettsfila di er tom. Dette er ikkje normalt."
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "Oppsettfila %1 er ikkje lagra"
@@ -1559,36 +1502,40 @@ msgstr "Import: src_new()-funkjsonen lukkast ikkje: %1"
msgid "return %1"
msgstr "retur %1"
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr "\"%1\" er ein ukjend prosesseringstype, hoppa over"
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr "greidde ikkje laga prosessering. Hoppa over."
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr "Feil punkt sendt til Route::set_state()-funksjonen [%1]"
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr "Fann panoreringsstatus for ruta (%1) utan panorering!"
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr "feilforma tingingsnykjelstreng i tilstandsfil! [%1] ... hoppa over."
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr "Du kan ikkje laga undergrupper for MIDI-spor no"
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
"lag tempo: greidde ikkje lesa data frå %1 ved %2 (ville ha %3, fekk %4)"
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr "greidde ikkje skriva tempo-justert fil til %1"
@@ -1601,192 +1548,172 @@ msgid "send %1"
msgstr "send %1"
#: send.cc:65
-#, fuzzy
msgid "programming error: send created using role %1"
-msgstr "programmeringsfeil: ukjend redigeringsmodus-streng \"%1\""
-
-#: session.cc:347
-msgid "Set block size and sample rate"
-msgstr "Set blokkstorleik og punktrate"
+msgstr ""
-#: session.cc:352
-msgid "Using configuration"
-msgstr "Bruker oppsett"
+#: session.cc:344
+msgid "Connect to engine"
+msgstr "Kople til maskin"
-#: session.cc:377
-msgid "LTC In"
-msgstr ""
+#: session.cc:349
+msgid "Session loading complete"
+msgstr "Ferdig å lasta økta."
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
-msgstr ""
+#: session.cc:425
+msgid "Set up standard connections"
+msgstr "Set opp standartilkoplingar"
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "greidde ikkje setja opp klikk-I/U"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "greier ikkje setja opp klikk-I/U"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr "Rekn ut I/U-seinkingar"
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr "Set opp standartilkoplingar"
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr "ut %<PRIu32>"
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr "ut %<PRIu32>+%<PRIu32>"
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr "inn %<PRIu32>"
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr "inn %<PRIu32>+%<PRIu32>"
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr "Set opp signalflyt og innstikk"
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr "Kople til maskin"
-
-#: session.cc:645
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr "greier ikkje kopla til hovudutgangane %1 til %2"
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr "lytting"
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr "greier ikkje kopla til kontrollinngangane %1 til %2"
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr "Greidde ikkje finna føretrekt I/U for lyttebussen (%1)"
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr "greier ikkje kopla til kontrollutgangane %1 til %2"
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr "greier ikkje laga Lytting: det er ikkje råd å lytta på nokon bolkar."
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr "Økt: du kan ikkje bruka denne staden for autoinnslag (start<=slutt)"
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr "rundgang-lykkjeoppsett mellom %1 og %2"
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr "Økt: greidde ikkje laga nytt midispor."
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr "Lyd"
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
"greier ikkje stilla inn %1 inn/%2 ut-innstillingane for det nye lydsporet"
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr "Økt: greidde ikkje laga nytt lydspor."
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr "Buss"
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr "Økt: greidde ikkje laga ny lydrute."
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr "Økt: UINT_MAX-ruter? Går ikkje an!"
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr "Økt: greier ikkje laga spor/buss frå malskildringa"
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr "Økt: greidde ikkje laga ny lydrute frå malen"
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
"ALVORLEG FEIL! Greidde ikkje finna ei høveleg utgåve av %1 for å døypa om"
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr "Det er alt %1 opptak for %2, og eg synest det er for mange."
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr "send-IDen %1 ser ut til å vera i bruk frå før"
-#: session.cc:3845
-#, fuzzy
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
-msgstr "send-IDen %1 ser ut til å vera i bruk frå før"
+msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr "retur-IDen %1 ser ut til å vera i bruk frå før"
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr "send-IDen %2 ser ut til å vera i bruk frå før"
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr "Kan ikkje skriva eit område der slutten <= starten (td. %1 <= %2)"
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr "for mange samanmiksa versjonar av spelelista \"%1\""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr "greier ikkje laga ny lydfil \"%1\" for %2"
@@ -1799,10 +1726,8 @@ msgid "cannot read data from click soundfile"
msgstr "greier ikkje lesa data frå klikklydfila"
#: session_command.cc:87
-#, fuzzy
msgid "Tried to reconstitute a MementoCommand with no contents, failing. id=%1"
msgstr ""
-"Prøvde å byggja opp att ein memento-kommando utan innhald, og mislukkast. id="
#: session_command.cc:148
msgid ""
@@ -1831,11 +1756,11 @@ msgstr "Undermappa for økta finst ikkje i stigen %1"
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr "Økt: du kan ikkje ha to handlingar av typen %1 på same ramma (%2)."
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr "%1: greier ikkje finna %2 for eksportering"
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1845,10 +1770,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr "Økt: greidde ikke senda full MIDI-tidskode"
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr "Økt: greidde ikkje senda kvartramme-MTC-melding (%1)"
@@ -1857,97 +1778,95 @@ msgstr "Økt: greidde ikkje senda kvartramme-MTC-melding (%1)"
msgid "Session: cannot create Playlist from XML description."
msgstr "Økt: greier ikkje laga speleliste ut frå XML-skildringa."
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr "Økt: feil på ingen rull for %1"
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr "Programmeringsfeil: ulovleg handlingstype i process-event (%1)"
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "Greidde ikkje bruka stigen %1 (%s)"
+msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr "solokutt-kontroll (dB)"
-#: session_state.cc:360
+#: session_state.cc:208
+msgid "Set block size and sample rate"
+msgstr "Set blokkstorleik og punktrate"
+
+#: session_state.cc:213
+msgid "Using configuration"
+msgstr "Bruker oppsett"
+
+#: session_state.cc:325
msgid "Reset Remote Controls"
msgstr "Still tilbake fjernkontrollar"
-#: session_state.cc:385
-msgid "Session loading complete"
-msgstr "Ferdig å lasta økta."
-
-#: session_state.cc:452
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr "Økt: greier ikkje laga mappa \"%1\" for økttoppfiler (%2)"
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr "Økt: greier ikkje laga øktmappa \"%1\" for lydfiler (%2)"
-#: session_state.cc:466
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
msgstr "Økt: greier ikkje laga midimappa \"%1\" for økta (%2)"
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr "Økt: greier ikkje laga mappa \"%1\" for daudlyd (%2)"
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr "Økt: greidde ikkje laga mappa \"%1\" for eksportlyd (%2)"
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr "Økt: greidde ikkje laga mappa \"%1\" for øktanalyse (%2)"
-#: session_state.cc:494
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
msgstr "Økt: greier ikkje laga utvidingmappa \"%1\" for økta (%2)"
-#: session_state.cc:501
-#, fuzzy
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
-msgstr "Økt: greidde ikkje laga mappa \"%1\" for øktanalyse (%2)"
+msgstr ""
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr "Økt: greidde ikkje laga øktmappa \"%1\" (%2)"
-#: session_state.cc:548
-#, fuzzy
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
-msgstr "Greidde ikkje opna %1 for å skriva miksarmal"
+msgstr ""
-#: session_state.cc:554
-#, fuzzy
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
-msgstr "Greidde ikkje opna miksarmalen %1 for å lesa han"
+msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr "master"
-#: session_state.cc:636
-#, fuzzy
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
-msgstr "Greidde ikkje fjerna opptaksstatusen på stigen \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:660
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
msgstr "greidde ikkje døypa om snøggbiletet %1 til %2 (%3)"
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "Greidde ikkje fjerna opptaksstatusen på stigen \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
@@ -1955,138 +1874,134 @@ msgstr ""
"lydmotoren i %1 er ikkje kopla til, og å lagra statusen ville kasta bort "
"alle I/U-tilkoplingar. Økta er ikkje lagra"
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr "greidde ikkje lagra tilstanden til %1"
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "Greidde ikkje fjerna opptaksstatusen på stigen \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr "greidde ikkje døypa om mellombels øktfil %1 til %2"
-#: session_state.cc:890
-#, fuzzy
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
-msgstr "%1: tilstandsinformasjonsfila \"%2\" for økta finst ikkje!"
+msgstr ""
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "Skjønte ikkje økthistoriefila \"%1\""
+msgstr ""
-#: session_state.cc:911
+#: session_state.cc:819
msgid "Session file %1 is not a session"
msgstr "Øktfila %1 er ikkje ei økt"
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
"programmeringsfeil: Økt: feil XML-punkt sendt til set_state()-funksjonen"
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om instillingar"
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr "Økt: XML-fila har inga avdeling for metadata"
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om kjelder"
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om tempokart"
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om stader"
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om bolkar"
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om spelelister"
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr "Økt: XML-fila har inga avdeling for bundlar"
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr "Økt: XML-fila har ikkje nok avsnitt om diskstraumar"
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om ruter"
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr "Økt: XML-fila har inga avdeling for rutegrupper"
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om grupperedigering"
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om miksgrupper"
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr "Økt: XML-fila har ikkje noko avsnitt om klikk"
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr "Økt: greier ikkje laga rute ut frå XML-skildringa."
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr "Lasta spor/buss %1"
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr "Greidde ikkje finna diskstraumen for rute"
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr "Økt: greier ikkje laga bolkar ut frå XML-skildringa."
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr "Greier ikkje laga status for bolken '%1'"
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr "Fann ikkje bolkar i samansetjingsstatus (IDar %1 og %2): ignorert"
-#: session_state.cc:1668
-#, fuzzy
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
-msgstr "Nøsta kjelde har ingen ID-info i øktstatusfila! (ignorert)"
+msgstr ""
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr "Greier ikkje rekonstruera nøsta kjelde for bolken %1"
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr "Økt: XML-punktet som skildrar ein lydbolk er uferdig (manglar kjelde)"
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
"Økt: XML-punktet som skildrar ein lydbolk peikar på ein ukjend kjelde-ID = %1"
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
@@ -2094,7 +2009,7 @@ msgstr ""
"Økt: XML-punktet som skildrar ein lydbolk peikar på ein kjelde-ID %1 som "
"ikkje er ei lydfil"
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
@@ -2102,25 +2017,25 @@ msgstr ""
"Økt: XML-punktet som skildrar ein lydbolk manglar nokre masterkjelder, ser "
"bort frå"
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr "Økt: XML-punktet som skildrar ein midibolk er uferdig (manglar kjelde)"
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
"Økt: XML-punktet som skildrar ein midibolk peikar på ein ukjend kjelde-ID = "
"%1"
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
"Økt: XML-punktet som skildrar ein midibolk peikar på ein kjelde-ID %1 som "
"ikkje er ei midi-fil"
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
@@ -2128,122 +2043,117 @@ msgstr ""
"greier ikkje laga ny fil frå bolknamn \"%1\" med ident = \"%2\": det finst "
"for mange med same namnet"
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr "Økt: greier ikkje laga kjelde ut frå XML-skildringa."
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr "Det manglar ei lydfil. Ho vil bli erstatta med stille."
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr "Fann ei lydfil som %1 ikkje kan bruka. Prat med utviklarane."
-#: session_state.cc:2033
-#, fuzzy
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
-msgstr "Greidde ikkje laga miksarmalmappa \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr "Malen \"%1\" finst alt - laga ingen ny versjon"
-#: session_state.cc:2052
-#, fuzzy
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
-msgstr "Greidde ikkje laga miksarmalmappa \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr "malen vart ikkje lagra"
-#: session_state.cc:2072
-#, fuzzy
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
-msgstr "Greidde ikkje laga miksarmalmappa \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2267
-#, fuzzy
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
-msgstr "Fann ukjent punkt \"%1\" i bundellista frå tilstandsfila"
+msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr "Greier ikkje utvida stigen %1 (%2)"
-#: session_state.cc:2868
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr "Økt: greier ikkje laga mappa \"%1\" for daudlyd (%2)"
-#: session_state.cc:2907
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr "kan ikkje døypa om den ubrukte filkjelda frå %1 til %2 (%3)"
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr "kan ikkje fjerna toppfil %1 for %2 (%3)"
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
"greidde ikkje ta tryggingskopi av den gamle historiefila, noverande historie "
"vart ikkje lagra."
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr "greidde ikkje lagra historia til %1"
-#: session_state.cc:3243
-#, fuzzy
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
-msgstr "greidde ikkje henta fram att historiefila frå tryggingskopien %1 (%2)"
+msgstr ""
-#: session_state.cc:3247
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr "greidde ikkje henta fram att historiefila frå tryggingskopien %1 (%2)"
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr "%1: inga historiefil \"%2\" for denne økta."
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr "Skjønte ikkje økthistoriefila \"%1\""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr "Greidde ikkje kasta ned midi-kjelde for NoteDiffCommand"
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr "Greidde ikkje kasta ned midi-kjelde for SysExDiffCommand"
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr "Greidde ikkje kasta ned midi-kjelde for PatchChangeDiffCommand"
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr "Fann ikkje ut korleis eg skal laga ein kommando av eit %1-XML-punkt."
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr "Økt: ukjend diskstraumtype i XML"
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr "Økt: greidde ikkje lasta diskstraumen via XML-tilstand"
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
-msgstr "Ukjend JACK-transporttilstand %1 i synk-tilbakekallet"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
+msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr "Greidde ikkje spela i lykkje - du har ikkje gjeve noko lykkjeområde"
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
@@ -2251,7 +2161,7 @@ msgstr ""
"Samanhengande lykkjespeling er ikkje støtta når %1 bruker JACK-transporten.\n"
"Me rår til at du endrar innstillingane."
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2260,14 +2170,12 @@ msgstr ""
"transportkontrollen"
#: smf_source.cc:252
-#, fuzzy
msgid "Unable to read event prefix, corrupt MIDI ring"
-msgstr "Greier ikkje lesa handlingsprefiks, MIDI-ringbufferen i ulage"
+msgstr ""
#: smf_source.cc:265
-#, fuzzy
msgid "Event has time and size but no body, corrupt MIDI ring"
-msgstr "Les tid/storleik men ikkje buffer, MIDI-ringbufferen i ulage"
+msgstr ""
#: smf_source.cc:271
msgid "Event time is before MIDI source position"
@@ -2393,16 +2301,15 @@ msgid "SndFileSource: could not seek to frame %1 within %2 (%3)"
msgstr "Lydfilkjelde: greier ikkje leita fram til ramma %1 innan %2 (%3)"
#: sndfilesource.cc:347
-#, fuzzy
msgid ""
"SndFileSource: @ %1 could not read %2 within %3 (%4) (len = %5, ret was %6)"
-msgstr "SndFileSource: @ %1 greidde ikkje lesa %2 i %3 (%4) (len = %5)"
+msgstr ""
#: sndfilesource.cc:391 sndfilesource.cc:420
msgid "attempt to write a non-writable audio file source (%1)"
msgstr "prøvde å skriva til ei ikkje-skrivbar lydkjeldefil (%1)"
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr "programmeringsfeil: %1 %2"
@@ -2429,9 +2336,8 @@ msgid "attempt to set BWF info for an un-opened audio file source (%1)"
msgstr "prøvde å laga BWF-info for ei uopna lydkjeldefil (%1)"
#: sndfilesource.cc:614
-#, fuzzy
msgid "%1: cannot seek to %2 (libsndfile error: %3)"
-msgstr "%1: greier ikkje gå til %2 (libsndfile-feil: %3"
+msgstr ""
#: sndfilesource.cc:727
msgid "SndFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)"
@@ -2493,9 +2399,8 @@ msgid "TempoSection XML node has no \"movable\" property"
msgstr "TempoSection-XML-punktet har ingen \"flyttbar\"-eigenskap"
#: tempo.cc:124
-#, fuzzy
msgid "TempoSection XML node has an illegal \"bar-offset\" value"
-msgstr "TempoSection-XML-punktet har ein ulovleg \"start\"-verdi"
+msgstr ""
#: tempo.cc:201
msgid "MeterSection XML node has no \"start\" property"
@@ -2506,18 +2411,16 @@ msgid "MeterSection XML node has an illegal \"start\" value"
msgstr "MeterSection-XML-punktet har ein ulovleg \"start\"-verdi"
#: tempo.cc:219
-#, fuzzy
msgid ""
"MeterSection XML node has no \"beats-per-bar\" or \"divisions-per-bar\" "
"property"
-msgstr "MeterSection-XML-punktet har ingen \"slag per takt\"-eigenskap"
+msgstr ""
#: tempo.cc:225
-#, fuzzy
msgid ""
"MeterSection XML node has an illegal \"beats-per-bar\" or \"divisions-per-bar"
"\" value"
-msgstr "MeterSection-XML-punktet har ein ulovleg \"start\"-verdi"
+msgstr ""
#: tempo.cc:230
msgid "MeterSection XML node has no \"note-type\" property"
@@ -2593,13 +2496,10 @@ msgstr ""
"Taktmerke:"
#: tempo_map_importer.cc:89
-#, fuzzy
msgid ""
"This will replace the current tempo map!\n"
"Are you sure you want to do this?"
msgstr ""
-"Dette byter ut det gjeldande tempokartet!\n"
-"Er du sikker på at du vil gjera dette?"
#: user_bundle.cc:47
msgid "Node for Bundle has no \"name\" property"
@@ -2638,19 +2538,19 @@ msgstr "LÃ¥s"
msgid "programming error: unknown edit mode string \"%1\""
msgstr "programmeringsfeil: ukjend redigeringsmodus-streng \"%1\""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr "MIDI-tidskode"
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr "MTC"
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr "MIDI-klokke"
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr "JACK"
@@ -2658,969 +2558,18 @@ msgstr "JACK"
msgid "programming error: unknown sync source string \"%1\""
msgstr "programmeringsfeil: ukjend synkkjeldestreng \"%1\""
-#: utils.cc:423
-#, fuzzy
+#: utils.cc:426
msgid "M-Clock"
-msgstr "MIDI-klokke"
+msgstr ""
-#: utils.cc:429
-#, fuzzy
+#: utils.cc:432
msgid "LTC"
-msgstr "MTC"
+msgstr ""
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr "programmeringsfeil: ukjent opphavleg hovudformat: \"%1\""
-#: utils.cc:614
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr "greier ikkje opna mappa %1 (%2)"
-
-#~ msgid "Session"
-#~ msgstr "Økt"
-
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "MIDI-diskstraum: kanalmaske for XML-eigenskap utanfor rekkjevidd"
-
-#~ msgid ""
-#~ "Copying old session file %1 to %2\n"
-#~ "Use %2 with %3 versions before 2.0 from now on"
-#~ msgstr ""
-#~ "Kopierer gamal øktfil %1 til %2\n"
-#~ "Bruk %2 med %3-versjonar før 2.0 frå no av"
-
-#~ msgid "midi"
-#~ msgstr "midi"
-
-#~ msgid "timefx code failure. please notify ardour-developers."
-#~ msgstr "kodefeil på tidseffektar, sei frå til Ardour-utviklarane"
-
-#~ msgid "Session: you can't use a mark for auto loop"
-#~ msgstr "Økt: du kan ikkje bruka eit merke for auto-lykkjespel"
-
-#~ msgid ""
-#~ "No more JACK ports are available. You will need to stop %1 and restart "
-#~ "JACK with ports if you need this many tracks."
-#~ msgstr ""
-#~ "Det finst ikkje fleire JACK-portar. Du må stoppa %1 og starta JACK på "
-#~ "nytt med nok portar viss du treng så mange spor."
-
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "Skjønte ikkje ardour-fila %1"
-
-#~ msgid "control protocol XML node has no name property. Ignored."
-#~ msgstr ""
-#~ "XML-noden for kontrollprotokollen har ingen namneeigenskap. Såg bort frå."
-
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr "kontrollprotokollen \"%1\" er ukjent. Såg bort frå"
-
-#~ msgid "Removed open file count limit. Excellent!"
-#~ msgstr "Fjerna teljegrensa for opne filer. Steikande bra!"
-
-#~ msgid "%1 will be limited to %2 open files"
-#~ msgstr "%1 vil vera avgrensa til å opna %2 filer"
-
-#~ msgid ""
-#~ "programming error: non-audio Region passed to remove_overlap in audio "
-#~ "playlist"
-#~ msgstr ""
-#~ "programmeringsfeil: ikkje-lydbolk gjeve til fjern_overlapping i "
-#~ "lydspelelista"
-
-#~ msgid ""
-#~ "programming error: non-audio Region tested for overlap in audio playlist"
-#~ msgstr ""
-#~ "programmeringsfeil: ikkje-lydbolk prøvd for overlapping i lydspelelista"
-
-#~ msgid "Crossfade: no \"in\" region in state"
-#~ msgstr "Overtoning: Ingen \"inn\"-bolk her"
-
-#~ msgid ""
-#~ "Crossfade: no \"in\" region %1 found in playlist %2 nor in region map"
-#~ msgstr ""
-#~ "Krysstoning: fann ingen \"inn\"-bolk %1, korkje i spelelista %2 eller i "
-#~ "bolkkartet"
-
-#~ msgid "Crossfade: no \"out\" region in state"
-#~ msgstr "Overtoning: ingen \"ut\"-bolk her"
-
-#~ msgid ""
-#~ "Crossfade: no \"out\" region %1 found in playlist %2 nor in region map"
-#~ msgstr ""
-#~ "Krysstoning: fann ingen \"ut\"-bolk %1, korkje i spelelista %2 eller i "
-#~ "bolkkartet"
-
-#~ msgid "old-style crossfade information - no position information"
-#~ msgstr "gamaldags overtoningsinformasjon - ingen posisjonsinformasjon"
-
-#~ msgid "midiui"
-#~ msgstr "midibrukarflate"
-
-#~ msgid "Chunk %1 uses an unknown playlist \"%2\""
-#~ msgstr "Beten %1 bruker ei ukjend speleliste, \"%2\""
-
-#~ msgid "Chunk %1 contains malformed playlist information"
-#~ msgstr "Beten %1 inneheld feilforma spelelisteinformasjon"
-
-#~ msgid "signal"
-#~ msgstr "signal"
-
-#~ msgid "editor"
-#~ msgstr "redigering"
-
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr "Malen \"%1\" finst alt - malen fekk ikkje nytt namn"
-
-#~ msgid "Session: cannot create Named Selection from XML description."
-#~ msgstr "Økt: greier ikkje laga namngjeve utval ut frå XML-skildringa."
-
-#~ msgid "Unable to create a backup copy of file %1 (%2)"
-#~ msgstr "Greidde ikkje laga tryggingskopi av fila %1 (%2)"
-
-#, fuzzy
-#~ msgid "programming error: realpath(%1) failed, errcode %2"
-#~ msgstr "programmeringsfeil: %1 %2"
-
-#~ msgid "Cannot become GUI app"
-#~ msgstr "Greier ikkje bli grafisk program"
-
-#~ msgid ""
-#~ "%1: could not find configuration file (ardour.rc), canvas will look "
-#~ "broken."
-#~ msgstr ""
-#~ "%1: greidde ikkje finna oppsettsfila (ardour.rc), arbeidsområdet vil sjå "
-#~ "øydelagt ut."
-
-#~ msgid "Midi"
-#~ msgstr "Midi"
-
-#~ msgid "illegal or badly-formed string used for path (%1)"
-#~ msgstr "ulovleg eller feilforma streng brukt for stigen (%1)"
-
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "stigen (%1) er tvitydig"
-
-#~ msgid "Could not move capture file from %1"
-#~ msgstr "Greidde ikkje flytta opptaksfila frå %1"
-
-#~ msgid "Cannot create temporary MIDI port to determine MIDI buffer size"
-#~ msgstr ""
-#~ "Greier ikkje laga mellombels MIDI-port for å avgjera MIDI-bufferstorleiken"
-
-#~ msgid "Pan %1"
-#~ msgstr "Pan %1"
-
-#~ msgid "rename from %1 to %2 failed: %3)"
-#~ msgstr "omdøyping frå %1 til %2 mislukka: %3)"
-
-#~ msgid "Using %2 threads on %1 CPUs"
-#~ msgstr "Brukar %2 trådar på %1 prosessorar"
-
-#~ msgid "direction"
-#~ msgstr "retning"
-
-#~ msgid ""
-#~ "badly formatted pan automation event record at line %1 of %2 (ignored) "
-#~ "[%3]"
-#~ msgstr ""
-#~ "feilformatert handlingsopptak av panoreringsautomasjon på linja %1 av %2 "
-#~ "(hoppa over) [%3]"
-
-#~ msgid "programming error:"
-#~ msgstr "programmeringsfeil: "
-
-#~ msgid "cannot open pan automation file %1 (%2)"
-#~ msgstr "greier ikkje opna panoreringsautomasjonsfil %1 (%2)"
-
-#~ msgid "badly formed version number in pan automation event file \"%1\""
-#~ msgstr ""
-#~ "feilforma versjonsnummer i handlingsfila for panoreringsautomasjon \"%1\""
-
-#~ msgid ""
-#~ "no version information in pan automation event file \"%1\" (first line = "
-#~ "%2)"
-#~ msgstr ""
-#~ "ingen versjonsinformasjon i handlingsfila for panoreringsautomasjon "
-#~ "\"%1\" (fyrste linja= %2)"
-
-#~ msgid "too many panner states found in pan automation file %1"
-#~ msgstr "for mange panoreringstilstandar i automasjonsfila %1"
-
-#~ msgid "C"
-#~ msgstr "S"
-
-#~ msgid "lr"
-#~ msgstr "vh"
-
-#~ msgid "width"
-#~ msgstr "breidd"
-
-#~ msgid "cannot open click emphasis soundfile %1 (%2)"
-#~ msgstr "greier ikkje opna uthevings-klikklydfila %1 (%2)"
-
-#~ msgid "cannot read data from click emphasis soundfile"
-#~ msgstr "greier ikkje lesa data frå uthevings-klikklydfila"
-
-#~ msgid "Reset Control Protocols"
-#~ msgstr "Still tilbake kontrollprotokollar"
-
-#~ msgid "Session: cannot create session stub sounds dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga mappa \"%1\" for lydfilbetar (%2)"
-
-#~ msgid "Session: cannot create session stub midi dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga midibetemappa \"%1\" for økta (%2)"
-
-#~ msgid "could not allocate file %1"
-#~ msgstr "greidde ikkje tildela fila %1"
-
-#~ msgid ""
-#~ "AudioDiskstream %1: cannot read xfade samples %2 from playlist at frame %3"
-#~ msgstr ""
-#~ "Lyd-diskstraum %1: greidde ikkje lesa krysstoningspunkt %2 frå "
-#~ "spelelista, ramme %3"
-
-#~ msgid "%1: cannot create region from pending capture sources"
-#~ msgstr "%1: greidde ikkje laga bolk frå ventande opptakskjelder"
-
-#~ msgid "register input port called before engine was started"
-#~ msgstr "registerinngangsporten vart oppkalla før tenaren starta"
-
-#~ msgid "register output port called before engine was started"
-#~ msgstr "registerutgangsporten vart oppkalla før tenaren starta"
-
-#~ msgid "AudioEngine: connection already exists: %1 (%2) to %3 (%4)"
-#~ msgstr "AudioEngine: tilkoplinga finst frå før: %1 (%2) til %3 (%4)."
-
-#~ msgid ""
-#~ "Disconnected from JACK while reconnecting. You should quit Ardour now."
-#~ msgstr "Kopla frå JACK ved ny tilkopling. Du bør avslutta Ardour no."
-
-#~ msgid "could not reconnect %1 and %2 (err = %3)"
-#~ msgstr "greidde ikkje kopla til att %1 og %2 (feil = %3)"
-
-#~ msgid ""
-#~ "This is an old Ardour session that does not have\n"
-#~ "sufficient information for rendered FX"
-#~ msgstr ""
-#~ "Dette er ei gamal Ardour-økt som ikkje har\n"
-#~ "nok informasjon for oppteikna effektar"
-
-#~ msgid "in 1+2"
-#~ msgstr "inn 1+2"
-
-#~ msgid "AudioTrack: audio diskstream \"%1\" not known by session"
-#~ msgstr "Lydspor: økta kjenner ikkje att lyd-diskstraumen \"%1\""
-
-#~ msgid "programming error: AudioTrack given state without diskstream!"
-#~ msgstr "Programmeringsfeil: Ardour fekk tilstand utan diskstraum1"
-
-#~ msgid "ill-formed MIDI port specification in ardour rcfile (ignored)"
-#~ msgstr ""
-#~ "feilforma MIDI-portspesifikasjon oppgjeve i ardour-rc-fila (hoppa over)"
-
-#~ msgid "Node for Connection has no \"connections\" property"
-#~ msgstr "Punkt for tilkopling har ingen \"tilkopingar\"-eigenskapar"
-
-#~ msgid "Starting OSC"
-#~ msgstr "Startar OSC"
-
-#~ msgid "no MIDI ports specified: no MMC or MTC control possible"
-#~ msgstr ""
-#~ "ingen MIDI-portar er spesifiserte. MMC- eller MTC-kontroll er ikkje "
-#~ "mogleg."
-
-#~ msgid "Configuring MIDI ports"
-#~ msgstr "Set opp MIDI-portar"
-
-#~ msgid "default"
-#~ msgstr "standard"
-
-#~ msgid "No MMC control (MIDI port \"%1\" not available)"
-#~ msgstr "Ingen MMC-kontroll (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid "No MTC support (MIDI port \"%1\" not available)"
-#~ msgstr "Inga MTC-støtte (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "Ingen MIDI-parameterstøtte (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(resample from %2KHz to %3KHz)\n"
-#~ "(%4 of %5)"
-#~ msgstr ""
-#~ "omdannar %1\n"
-#~ "(ompunkting frå %1KHz til %3KHz)\n"
-#~ "(%4 av %5)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(%2 of %3)"
-#~ msgstr ""
-#~ "omdannar %1\n"
-#~ "(%2 av %3)"
-
-#~ msgid "XML node describing a plugin insert is missing the `%1' information"
-#~ msgstr ""
-#~ "XML-punktet som skildrar tilleggsprogramtappinga manglar '%1'-informasjon"
-
-#~ msgid "XML node describing insert is missing a Redirect node"
-#~ msgstr "XML-punktet som skildrar tappinga manglar omdirigeringspunkt"
-
-#~ msgid ""
-#~ "XML node describing a port automation is missing the `%1' information"
-#~ msgstr "XML-punktet som skildrar portautomasjonen manglar '%1'-informasjon"
-
-#~ msgid "%1: cannot open automation event file \"%2\""
-#~ msgstr "%1: greier ikkje opna automasjonshendingsfila \"%2\""
-
-#~ msgid "badly formed version number in automation event file \"%1\""
-#~ msgstr "feilforma versjonsnummer i automasjonshendingsfila \"%1\""
-
-#~ msgid "no version information in automation event file \"%1\""
-#~ msgstr "ingen versjonsinformasjon i automasjonshendingsfila \"%1\""
-
-#~ msgid "badly formatted automation event record at line %1 of %2 (ignored)"
-#~ msgstr ""
-#~ "feilformatert automasjonshendingsopptak på linje %1 av %2 (hoppa over)"
-
-#~ msgid "IO::connecting_became_legal() called without a pending state node"
-#~ msgstr ""
-#~ "IO::connecting_became_legal()-funksjonen vart oppkalla utan ventande "
-#~ "tilstandsnode"
-
-#~ msgid "IO::ports_became_legal() called without a pending state node"
-#~ msgstr ""
-#~ "IO::ports_became_legal()-funksjonen vart oppkalla utan ventande "
-#~ "tilstandsnode"
-
-#~ msgid "improper output channel list in XML node (%1)"
-#~ msgstr "feil utgangskanalliste i XML-punktet %1"
-
-#~ msgid "you cannot use colons to name objects with I/O connections"
-#~ msgstr "du kan ikkje bruka kolon i namn på objekt med I/U-tilkoplingar"
-
-#~ msgid "badly-formed positional data for Multi2dPanner - ignored"
-#~ msgstr "feilforma posisjonsdata for Multi2dPanner - hoppa over"
-
-#~ msgid "playlist const copy constructor called"
-#~ msgstr "konstant kopikonstruktør for speleliste vart oppkalla"
-
-#~ msgid "playlist non-const copy constructor called"
-#~ msgstr "ikkje-konstant kopikonstruktør for speleliste vart oppkalla"
-
-#~ msgid "%1: bounds changed received for region (%2)not in playlist"
-#~ msgstr "%1: mottok grenseendring for bolken (%2) - ikkje i spelelista"
-
-#~ msgid "Playlist: cannot reset region state from XML"
-#~ msgstr "Speleliste: greier ikkje stilla bolkstatusen tilbake frå XML"
-
-#~ msgid "programming error: unknown Redirect type in Redirect::Clone!\n"
-#~ msgstr ""
-#~ "programmeringsfeil: ukjend omdirigeringstype i Redirect::Clone-"
-#~ "funksjonen!\n"
-
-#~ msgid "%2: badly formatted node name in XML automation state, ignored"
-#~ msgstr "%2: feilforma nodenamn i XML-automasjonsstatusen, såg bort frå"
-
-#~ msgid "%1: cannot load automation data from XML"
-#~ msgstr "%1: greier ikkje lasta automasjonsdata frå XML"
-
-#~ msgid "incorrect XML node \"%1\" passed to Redirect object"
-#~ msgstr "feil XML-punkt, \"%1\", vart sendt til omdirigeringsobjektet"
-
-#~ msgid "XML node describing an IO is missing an IO node"
-#~ msgstr "XML-punktet som skildrar IU manglar eit IU-punkt"
-
-#~ msgid "XML node describing a redirect is missing the `active' field"
-#~ msgstr "XML-punktet som skildrar ei omdirigering manglar 'aktiv'-feltet"
-
-#~ msgid "XML node describing a redirect is missing the `placement' field"
-#~ msgstr ""
-#~ "XML-punktet som skildrar ei omdirigering manglar 'plassering'-feltet"
-
-#~ msgid "XMLNode describing a Region is incomplete (no name)"
-#~ msgstr "XML-punktet som skildrar ein bolk er ufullstendig (utan namn)"
-
-#~ msgid "Session: XMLNode describing a Region is incomplete (no id)"
-#~ msgstr "Økt: XML-punktet som skildrar ein bolk er ufullstendig (ingen id)"
-
-#~ msgid "Send construction failed"
-#~ msgstr "Send-konstruksjon mislukka"
-
-#~ msgid "Insert XML node has no type property"
-#~ msgstr "Tappings-XML-punkt har ingen typeeigenskapar"
-
-#~ msgid "Route %1: unknown edit group \"%2 in saved state (ignored)"
-#~ msgstr ""
-#~ "Ruting %1: ukjend redigert gruppe \"%2 i lagra tilstand (hoppa over)"
-
-#~ msgid "Route %1: unknown mix group \"%2 in saved state (ignored)"
-#~ msgstr "Ruting %1: ukjend miksgruppe \"%2 i lagra tilstand (hoppa over)"
-
-#~ msgid "could not connect %1 to %2"
-#~ msgstr "greidde ikkje kopla %1 til %2"
-
-#~ msgid "XML node describing a send is missing a Redirect node"
-#~ msgstr "XML-punktet som skildrar ein send manglar eit omdirigeringspunkt"
-
-#~ msgid "cannot setup master inputs"
-#~ msgstr "greier ikkje setja opp masterinngangar"
-
-#~ msgid "Master Out"
-#~ msgstr "Master ut"
-
-#~ msgid "Catch up with send/insert state"
-#~ msgstr "Ta att send/omvegstatus"
-
-#~ msgid "OSC startup"
-#~ msgstr "OSC-oppstart"
-
-#~ msgid "cannot set up master outputs"
-#~ msgstr "greier ikkje setja opp masterutgangar"
-
-#~ msgid ""
-#~ "Session::add_region() ignored a null region. Warning: you might have lost "
-#~ "a region."
-#~ msgstr ""
-#~ "Økt::add_region() såg bort frå ein null-bolk. Pass på: det kan henda du "
-#~ "har mista ein bolk."
-
-#~ msgid "programming error: unknown type of Insert created!"
-#~ msgstr "programmeringsfeil: det er laga ein ukjend tappingstype!"
-
-#~ msgid "programming error: unknown type of Redirect created!"
-#~ msgstr "programmeringsfeil: det er laga ein ukjend omdirigeringstype!"
-
-#~ msgid "programming error: unknown type of Redirect deleted!"
-#~ msgstr "programmeringsfeil: det er sletta ein ukjend omdirigeringstype!"
-
-#~ msgid "Memory allocation error: posix_memalign (%1 * %2) failed (%3)"
-#~ msgstr "Minnetildelingsfeil: posix_memalign (%1 * %2) mislukka (%3)"
-
-#~ msgid ""
-#~ "Programming error: get_silent_buffers() called for %1 buffers but only %2 "
-#~ "exist"
-#~ msgstr ""
-#~ "Programmeringsfeil: get_silent_buffers() oppropt for %1 bufrar, men det "
-#~ "finst berre %2"
-
-#~ msgid "GlobalRouteStateCommand has no \"type\" node, ignoring"
-#~ msgstr "GlobalRouteStateCommand har ingen \"type\"-node, ser bort frå"
-
-#~ msgid "unknown type of GlobalRouteStateCommand (%1), ignored"
-#~ msgstr "ukjent slag GlobalRouteStateCommand (%1), ser bort frå"
-
-#~ msgid ""
-#~ "global route state command has no \"%1\" node, ignoring entire command"
-#~ msgstr ""
-#~ "allmenn rutestatuskommando har ingen \"%1\"-node, ser bort frå heile "
-#~ "kommandoen"
-
-#~ msgid ""
-#~ "cannot find track/bus \"%1\" while rebuilding a global route state "
-#~ "command, ignored"
-#~ msgstr ""
-#~ "greier ikkje finna spor/buss \"%1\" ved oppattbygging ein allmenn "
-#~ "rutestatuskommando, såg bort frå"
-
-#~ msgid ""
-#~ "global route meter state command has no \"%1\" node, ignoring entire "
-#~ "command"
-#~ msgstr ""
-#~ "allmenn kommando for rutemælestatus har ingen \"%1\"-node, ser bort frå "
-#~ "heile kommandoen"
-
-#~ msgid "Export: no output file specified"
-#~ msgstr "Eksport: du har ikkje skrive inn ut-fil"
-
-#~ msgid "illegal frame range in export specification"
-#~ msgstr "ulovleg "
-
-#~ msgid "Bad data width size. Report me!"
-#~ msgstr "Feil storleik på databreidd. Sei frå om dette til utviklarane!"
-
-#~ msgid "Export: cannot open output file \"%1\" (%2)"
-#~ msgstr "Eksport: greier ikkje opna utfila \"%1\" (%2)"
-
-#~ msgid "cannot initialize sample rate conversion: %1"
-#~ msgstr "greier ikkje byrja punktrateomdanning: %1"
-
-#~ msgid "warning, leftover frames overflowed, glitches might occur in output"
-#~ msgstr "Ã¥tvaring: nokre rammer vart til overs i, det kan vera hakk i utfila"
-
-#~ msgid "Export: could not write data to output file (%1)"
-#~ msgstr "Eksport: greidde ikkje skriva data til utfil (%1)"
-
-#~ msgid "Ardour is slaved to MTC - port cannot be reset"
-#~ msgstr "Ardour er slave til ein MTC-port og kan ikkje nullstillast"
-
-#~ msgid "unknown port %1 requested for MTC"
-#~ msgstr "førespurnad til ukjend MTC-port %1"
-
-#~ msgid "Error reading from MIDI port %1"
-#~ msgstr "Greidde ikkje lesa frå MIDI-port %1"
-
-#~ msgid "MMC: cannot send command %1%2%3"
-#~ msgstr "MMC: greier ikkje senda kommandoen %1%2%3"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal read pipe (%1)"
-#~ msgstr "Grensesnitt: O_NONBLOCK fastsett for signallesingsrøyr (%1)"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal write pipe (%1)"
-#~ msgstr ""
-#~ "Grensesnitt: greier ikkje fastsetja O_NONBLOCK for signalskrivingsrøyr "
-#~ "(%1)"
-
-#~ msgid "Session: could not create transport thread"
-#~ msgstr "Økt: greidde ikkje laga transporttråd"
-
-#~ msgid "cannot send signal to midi thread! (%1)"
-#~ msgstr "greier ikkje senda signal til MIDI-tråden! (%1)"
-
-#~ msgid "MIDI thread poll failed (%1)"
-#~ msgstr "Spørjing på MIDI-tråd mislukka (%1)"
-
-#~ msgid "Error on transport thread request pipe"
-#~ msgstr "Feil på transporttrådspørjingsrøyr"
-
-#~ msgid "Error reading from transport request pipe"
-#~ msgstr "Greidde ikkje lesa frå transportspørjingsrøyr"
-
-#~ msgid "start"
-#~ msgstr "start"
-
-#~ msgid "Session: XML state has no connections section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om tilkoplingar"
-
-#~ msgid "cannot create dead sounds directory \"%1\"; ignored"
-#~ msgstr "greier ikkje laga daudlydmappa \"%1\", hoppa over"
-
-#~ msgid "cannot create peak file directory \"%1\"; ignored"
-#~ msgstr "greier ikkje laga toppfilmappa \"%1\", hoppa over"
-
-#~ msgid "cannot remove dead sound file %1 (%2)"
-#~ msgstr "greier ikkje fjerna daudlyd-fila %1 (%2)"
-
-#~ msgid "could not remove corrupt history file %1"
-#~ msgstr "greidde ikkje fjerna den øydelagde historiefila %1"
-
-#~ msgid "Loading history from '%1'."
-#~ msgstr "Lastar historie frå '%1'."
-
-#~ msgid "please stop the transport before adjusting slave settings"
-#~ msgstr "hugs å stoppa spelinga før du justerer slaveinnstillingar"
-
-#~ msgid "No MTC port defined: MTC slaving is impossible."
-#~ msgstr "Ingen MTC-port er gjeven. MTC-slaving er umogleg."
-
-#~ msgid ""
-#~ "cannot set broadcast info for audio file %1; Dropping broadcast info for "
-#~ "this file"
-#~ msgstr ""
-#~ "greier ikkje fastsetja kringkastingsinformasjon for lydfila %1, hoppar "
-#~ "over kringkastingsinformasjon for denne fila"
-
-#~ msgid "Internal"
-#~ msgstr "Intern"
-
-#~ msgid "Bad node sent to VSTPlugin::set_state"
-#~ msgstr "Feil punkt sendt til VSTPlugin::set_state-funksjonen"
-
-#~ msgid "no support for presets using chunks at this time"
-#~ msgstr ""
-#~ "det er ikkje støtte for ferdigprogram som brukar bitar for augneblinken"
-
-#~ msgid "VST plugin called with zero frames - please notify Ardour developers"
-#~ msgstr ""
-#~ "VST-innstikk påkalla med null rammer - sei frå til Ardour-utviklarane"
-
-#~ msgid "VST: cannot load module from \"%1\""
-#~ msgstr "VST: greier ikkje lasta modul frå \"%1\""
-
-#~ msgid "You asked ardour to not use any VST plugins"
-#~ msgstr "Du sa at Ardour ikkje skulle bruka nokon VST-tilleggsprogram"
-
-#~ msgid "CoreAudioSource: cannot open file \"%1\" for %2"
-#~ msgstr "CoreAudioSource: greier ikkje opna fila \"%1\" for %2"
-
-#~ msgid "Could not create XML version of property list"
-#~ msgstr "Greidde ikkje laga XML-versjon av eigenskaplista"
-
-#~ msgid "Cannot open preset file %1 (%2)"
-#~ msgstr "Greier ikkje opna ferdigoppsettfila %1 (%2)"
-
-#~ msgid "Exception thrown during AudioUnit plugin loading - plugin ignored"
-#~ msgstr ""
-#~ "Det vart kasta inn eit unntak under AudioUnit-innstikklastinga - såg bort "
-#~ "frå innstikket"
-
-#~ msgid "AudioUnit: Could not convert CAComponent to CAAudioUnit"
-#~ msgstr "Lydeinging: Greidde ikkje gjera om CAComponent til CAAudioUnit"
-
-#~ msgid "AUPlugin: cannot set processing block size"
-#~ msgstr "AUPlugin: Greier ikkje setja opp blokkstorleik for handsaming"
-
-#~ msgid "AUPlugin: %1 cannot initialize plugin (err = %2)"
-#~ msgstr "AUPlugin: %1 greier ikkje starta innstikk (feil = %2)"
-
-#~ msgid "AU %1 has zero outputs - configuration ignored"
-#~ msgstr "AU %1 har ingen utgangar - såg bort frå oppsettet"
-
-#~ msgid "AU plugin %1 has illegal IO configuration (-2,-2)"
-#~ msgstr "AU-innstikket %1 har ugyldig IU-oppsett (-2,-2)"
-
-#~ msgid "AUPlugin: could not set stream format for %1/%2 (err = %3)"
-#~ msgstr ""
-#~ "AUPlugin: greidde ikkje setja opp straumformat for %1/%2 (feil = %3)"
-
-#~ msgid "AUPlugin: %1 input_streams() called without any format set!"
-#~ msgstr "AUPlugin: %1 input_streams() påkalla utan oppsett format!"
-
-#~ msgid "AUPlugin: %1 output_streams() called without any format set!"
-#~ msgstr "AUPlugin: %1 output_streams() påkalla utan oppsett format!"
-
-#~ msgid "AUPlugin: render callback called illegally!"
-#~ msgstr "AUPlugin: oppteiknings-tilbakekall påkalla ulovleg!"
-
-#~ msgid "Bad node sent to AUPlugin::set_state"
-#~ msgstr "Feil punkt sendt til AUPlugin::set_state"
-
-#~ msgid ""
-#~ "Restoring AudioUnit settings is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje henta framatt AudioUnit-innstillingar i denne versjonen av "
-#~ "Ardour. Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid ""
-#~ "Loading AudioUnit presets is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje lagra AudioUnit-innstillingar i denne versjonen av Ardour. "
-#~ "Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid "Cannot create user plugin presets folder (%1)"
-#~ msgstr "Greier ikkje laga mappe for brukarlaga innstikkoppsett (%1)"
-
-#~ msgid "Saving plugin state to %1 failed"
-#~ msgstr "Greidde ikkje lagra innstikkstatus til %1"
-
-#~ msgid "Discovering AudioUnit plugins (could take some time ...)"
-#~ msgstr "Finn AudioUnit-innstikk (dette kan ta litt tid...)"
-
-#~ msgid "Cannot get I/O configuration info for AU %1"
-#~ msgstr "Greier ikkje få tak i I/U-oppsettsinfo for AU %1"
-
-#~ msgid "Checking AudioUnit: %1"
-#~ msgstr "Sjekkar AudioUnit: %1"
-
-#~ msgid "Could not load AU plugin %1 - ignored"
-#~ msgstr "Greier ikkje lasta AU-innstikk %1 - såg bort frå"
-
-#~ msgid "could not save AU cache to %1"
-#~ msgstr "greidde ikkje lagra AU-mellomlageret til %1"
-
-#~ msgid "initial state"
-#~ msgstr "opphavstilstand"
-
-#~ msgid "xfade change"
-#~ msgstr "overtoningsendring"
-
-#~ msgid "region modified"
-#~ msgstr "bolk endra"
-
-#~ msgid "cannot activate JACK client"
-#~ msgstr "greier ikkje slå på JACK-klienten"
-
-#~ msgid "get_nth_physical called before engine was started"
-#~ msgstr "get_nth_physical vart oppkalla før tenaren starta"
-
-#~ msgid "get_port_total_latency() called with no JACK client connection"
-#~ msgstr ""
-#~ "get_port_total_latency()-funksjonen vart oppkalla utan tilknyting til "
-#~ "JACK-klienten"
-
-#~ msgid "get_port_total_latency() called before engine was started"
-#~ msgstr ""
-#~ "get_port_total_latency()-funksjonen vart oppkalla før tenaren starta"
-
-#~ msgid "Unable to connect to JACK server"
-#~ msgstr "Greidde ikkje kopla til JACK-tenaren"
-
-#~ msgid "Could not connect to JACK server as \"%1\""
-#~ msgstr "Greidde ikkje kopla til JACK-tenaren som \"%1\""
-
-#~ msgid "JACK server started"
-#~ msgstr "JACK-tenaren er starta"
-
-#~ msgid "cannot shutdown connection to JACK"
-#~ msgstr "greier ikkje kopla frå JACK"
-
-#~ msgid "fade in change"
-#~ msgstr "inntoningsendring"
-
-#~ msgid "envelope change"
-#~ msgstr "omhyllingsendring"
-
-#~ msgid "poll on peak request pipe failed (%1)"
-#~ msgstr "undersøking ved toppspørjingsrøyr gjekk gale (%1)"
-
-#~ msgid "Error on peak thread request pipe"
-#~ msgstr "Feil på topptrådspørjingsrøyr"
-
-#~ msgid "Error reading from peak request pipe"
-#~ msgstr "Feil ved lesing frå toppspørjingsrøyr"
-
-#~ msgid "UI: cannot set O_NONBLOCK on peak request pipe (%1)"
-#~ msgstr "Brukarflate: Kan ikkje bruka O_NONBLOCK ved toppspørjingsrøyr (%1)"
-
-#~ msgid "AudioSource: could not create peak thread"
-#~ msgstr "Lydkjelde: greidde ikkje laga topptråd"
-
-#~ msgid "initial"
-#~ msgstr "fyrste"
-
-#~ msgid "cleared"
-#~ msgstr "tom"
-
-#~ msgid "added event"
-#~ msgstr "la til hending"
-
-#~ msgid "removed event"
-#~ msgstr "fjerna hending"
-
-#~ msgid "removed multiple events"
-#~ msgstr "fjerna fleire hendingar"
-
-#~ msgid "removed range"
-#~ msgstr "fjerna område"
-
-#~ msgid "event range adjusted"
-#~ msgstr "justert hendingsområde"
-
-#~ msgid "event adjusted"
-#~ msgstr "justert hending"
-
-#~ msgid "cut/copy/clear"
-#~ msgstr "klypp/kopier/tøm"
-
-#~ msgid "copy"
-#~ msgstr "kopier"
-
-#~ msgid "active changed"
-#~ msgstr "endra på/av"
-
-#~ msgid "MIDI port specifications for \"%1\" are not understandable."
-#~ msgstr "MIDI-portspesifikasjonane for \"%1\" er uforståelege."
-
-#, fuzzy
-#~ msgid "resampling audio"
-#~ msgstr "samplar om lyd"
-
-#~ msgid "Import: cannot open converted sound file \"%1\""
-#~ msgstr "Import: kan ikkje opna den omkoda lydfila \"%1\""
-
-#~ msgid ""
-#~ "Session::import_audiofile: cannot open new file source for channel %1"
-#~ msgstr "Økt::import_lydfil: kan ikkje opna ny kjeldefil for kanalen %1"
-
-#~ msgid "Import/SRC: could not open input file: %1"
-#~ msgstr "Import/kjelde: greidde ikkje opna innfila: %1"
-
-#~ msgid "Import/SRC: could not open output file: %1"
-#~ msgstr "Import/kjelde: greidde ikkje opna utfila: %1"
-
-#~ msgid "XML node describing insert is missing the `id' field"
-#~ msgstr "XML-punktet som skildrar tappinga manglar 'id'-feltet"
-
-#~ msgid "PortInsert: cannot add input port"
-#~ msgstr "PortInsert: greier ikkje leggja til inngangsport"
-
-#~ msgid "PortInsert: cannot add output port"
-#~ msgstr "PortInsert: greier ikkje leggja til utgangsport"
-
-#~ msgid "%s/out %u"
-#~ msgstr "%s/ut %u"
-
-#~ msgid "Unknown connection \"%1\" listed for output of %2"
-#~ msgstr "Ukjend tilkopling \"%1\" lista opp for %2-utgangen"
-
-#~ msgid "No output connections available as a replacement"
-#~ msgstr "Det finst ingen utgangstilkoplingar som kan brukast som erstatting"
-
-#~ msgid "%1: could not open automation event file \"%2\""
-#~ msgstr "%1: greier ikkje opna automasjonshendingsfila \"%2\""
-
-#~ msgid "mismatched automation event file version (%1)"
-#~ msgstr "ikkje like versjonsnummer i automasjonshendingsfila (%1)"
-
-#~ msgid "loaded from disk"
-#~ msgstr "lasta frå disk"
-
-#~ msgid "automation write/touch"
-#~ msgstr "automasjonsskriving/rørsle"
-
-#~ msgid "clear"
-#~ msgstr "tøm"
-
-#~ msgid "clear markers"
-#~ msgstr "tøm merke"
-
-#~ msgid "clear ranges"
-#~ msgstr "tøm område"
-
-#~ msgid "add"
-#~ msgstr "legg til"
-
-#~ msgid "remove"
-#~ msgstr "fjern"
-
-#~ msgid "automation write pass"
-#~ msgstr "automasjonsskriveomgang"
-
-#~ msgid "error writing pan automation file (%s)"
-#~ msgstr "greidde ikkje skriva panoreringsautomasjonsfil (%s)"
-
-#~ msgid "cannot open pan automation file \"%1\" for saving (%2)"
-#~ msgstr ""
-#~ "kan ikkje opna panoreringsautomasjonsfil \"%1\" for å lagra henne (%2)"
-
-#~ msgid "mismatched pan automation event file version (%1)"
-#~ msgstr ""
-#~ "handlingsfila for panoreringsautomasjon har versjonsnummer som ikkje "
-#~ "stemmer overeins (%1)"
-
-#~ msgid "remove region"
-#~ msgstr "fjern bolk"
-
-#~ msgid "separate"
-#~ msgstr "del opp"
-
-#~ msgid "cut"
-#~ msgstr "klypp"
-
-#~ msgid "duplicate"
-#~ msgstr "klon"
-
-#~ msgid "split"
-#~ msgstr "del"
-
-#~ msgid "nudged"
-#~ msgstr "skubba"
-
-#~ msgid ""
-#~ "programming error: Playlist::copyPlaylist called with unknown Playlist "
-#~ "type"
-#~ msgstr ""
-#~ "programmeringsfeil: Playlist::copyPlaylist-funksjonen vart oppkalla med "
-#~ "ukjend spelelistetype"
-
-#~ msgid "post"
-#~ msgstr "etter"
-
-#~ msgid "Redirect: unknown placement string \"%1\" (ignored)"
-#~ msgstr "Omdirigering: ukjend plasseringsstreng \"%1\" (hoppa over)"
-
-#~ msgid "%1: cannot open %2 to store automation data (%3)"
-#~ msgstr "%1: greier ikkje opna %2 for å lagra automasjonsdata (%3)"
-
-#~ msgid "%1: could not save automation state to %2"
-#~ msgstr "%1: greier ikkje lagra automasjonstilstanden til %2"
-
-#~ msgid ""
-#~ "Could not get state from Redirect (%1). Problem with save_automation"
-#~ msgstr ""
-#~ "Greier ikkje få tak i tilstanden frå omdirigeringa (%1). Problem med å "
-#~ "lagra automasjonen."
-
-#~ msgid "active_changed"
-#~ msgstr "aktiv_endra"
-
-#~ msgid "Could not get state of route. Problem with save_automation"
-#~ msgstr ""
-#~ "Greidde ikkje få tak i tilstanden for rutinga. Problem med å lagra "
-#~ "automasjon."
-
-#~ msgid "too many regions with names like %1"
-#~ msgstr "for mange bolkar med namn som %1"
-
-#~ msgid "programming error: unknown type of Insert deleted!"
-#~ msgstr "programmeringsfeil: ein ukjend tappingstype er sletta!"
-
-#~ msgid "could not backup old state file, current state not saved."
-#~ msgstr ""
-#~ "greidde ikkje ta tryggingskopi av den gamle tilstandsfila. Den noverande "
-#~ "tilstanden er ikkje lagra."
-
-#~ msgid "tempoize: error creating name for new audio file based on %1"
-#~ msgstr ""
-#~ "lag tempo: greidde ikkje gje namn til den nye lydfila som er bygd på %1"
-
-#~ msgid "tempoize: error creating new audio file %1 (%2)"
-#~ msgstr "lag tempo: greidde ikkje laga den nye lydfila %1 (%2)"
-
-#~ msgid "PAF (Ensoniq Paris)"
-#~ msgstr "PAF (Ensoniq Paris)"
-
-#~ msgid "AU (Sun/NeXT)"
-#~ msgstr "AU (Sun/NeXT)"
-
-#~ msgid "IRCAM"
-#~ msgstr "IRCAM"
-
-#~ msgid ".au"
-#~ msgstr ".au"
-
-#~ msgid ".ircam"
-#~ msgstr ".ircam"
-
-#~ msgid "FileSource: cannot get host information for BWF header (%1)"
-#~ msgstr ""
-#~ "Filkjelde: greier ikkje finna vertsinformasjonen for BWF-tittellinja (%1)"
-
-#~ msgid "%1: cannot seek to %2"
-#~ msgstr "%1: greier ikkje leita fram til %2"
-
-#~ msgid "cleared history"
-#~ msgstr "tømte historia"
-
-#~ msgid ""
-#~ "programming error: illegal state ID (%1) passed to StateManager::set_state"
-#~ "() (range = 0-%2)"
-#~ msgstr ""
-#~ "programmeringsfeil: ulovleg tilgangs-ID (%1) send til StateManager::"
-#~ "set_state()-funksjonen (område = 0-%2)"
-
-#, fuzzy
-#~ msgid "move metric"
-#~ msgstr "flytt taktart"
-
-#~ msgid "metric removed"
-#~ msgstr "fjerna taktart"
-
-#~ msgid "add tempo"
-#~ msgstr "legg til tempo"
-
-#~ msgid "replace tempo"
-#~ msgstr "byt ut tempo"
-
-#~ msgid "add meter"
-#~ msgstr "legg til taktart"
-
-#~ msgid "replaced meter"
-#~ msgstr "bytte ut taktart"
-
-#~ msgid "load XML data"
-#~ msgstr "last XML-data"
-
-#~ msgid "cannot create VST chunk directory: %1"
-#~ msgstr "greier ikkje laga mappe for VST-bitar: %1"
-
-#~ msgid "cannot check VST chunk directory: %1"
-#~ msgstr "greier ikkje sjekka mappe for VST-bitar: %1"
-
-#~ msgid "%1 exists but is not a directory"
-#~ msgstr "%1 finst, men det er ikkje ei mappe"
diff --git a/libs/ardour/po/pl.po b/libs/ardour/po/pl.po
index c9a01282a5..05dd5c642a 100644
--- a/libs/ardour/po/pl.po
+++ b/libs/ardour/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2008-04-10 10:51+0100\n"
"Last-Translator: Piotr Zaryk <pzaryk@gmail.com>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -120,7 +120,7 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr ""
@@ -185,60 +185,22 @@ msgstr ""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr ""
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
-msgstr ""
-
-#: audioengine.cc:190
-msgid "Connect session to engine"
-msgstr ""
-
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
-msgstr ""
-
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
-msgstr ""
-
-#: audioengine.cc:848
-msgid "AudioEngine: cannot register port \"%1\": %2"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr ""
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr ""
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
msgstr ""
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
-msgstr ""
-
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "nie udało się połączyć z JACK"
-
#: audioregion.cc:1643
msgid ""
"You have requested an operation that requires audio analysis.\n"
@@ -292,9 +254,8 @@ msgid "%1: could not write peak file data (%2)"
msgstr ""
#: audiosource.cc:924
-#, fuzzy
msgid "could not truncate peakfile %1 to %2 (error: %3)"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
+msgstr ""
#: auditioner.cc:87
msgid "no outputs available for auditioner - manual connection required"
@@ -419,7 +380,7 @@ msgstr "nie można zlokalizować taktowania CPU w /proc/cpuinfo"
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
@@ -512,9 +473,8 @@ msgid "trim"
msgstr ""
#: export_format_specification.cc:543
-#, fuzzy
msgid "trim start"
-msgstr "poczÄ…tek"
+msgstr ""
#: export_format_specification.cc:545
msgid "trim end"
@@ -532,7 +492,7 @@ msgstr ""
msgid "Rectangular"
msgstr ""
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -601,9 +561,8 @@ msgid "Selection"
msgstr ""
#: export_profile_manager.cc:600
-#, fuzzy
msgid "Unable to rename export format %1 to %2: %3"
-msgstr "nie można było połączyć ponownie %1 i %2 (błąd = %3)"
+msgstr ""
#: export_profile_manager.cc:632
msgid "Unable to remove export profile %1: %2"
@@ -643,7 +602,7 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr ""
@@ -681,9 +640,8 @@ msgid ""
msgstr ""
#: file_source.cc:540
-#, fuzzy
msgid "cannot rename file %1 to %2 (%3)"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
+msgstr ""
#: filesystem_paths.cc:73
msgid "Cannot create Configuration directory %1 - cannot run"
@@ -739,23 +697,23 @@ msgstr ""
msgid "unknown file type for session %1"
msgstr ""
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr ""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr ""
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr ""
@@ -875,47 +833,47 @@ msgstr ""
msgid "IO: bad output string in XML node \"%1\""
msgstr ""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr "%s %u"
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr ""
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr ""
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
@@ -993,7 +951,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr ""
@@ -1122,24 +1080,20 @@ msgid "MIDI stretch created non-MIDI source"
msgstr ""
#: monitor_processor.cc:53
-#, fuzzy
msgid "monitor dim"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:54
-#, fuzzy
msgid "monitor cut"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:55
-#, fuzzy
msgid "monitor mono"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:58
-#, fuzzy
msgid "monitor dim level"
-msgstr "monitor"
+msgstr ""
#: monitor_processor.cc:62
msgid "monitor solo boost level"
@@ -1161,21 +1115,21 @@ msgstr ""
msgid "solo control"
msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1184,9 +1138,8 @@ msgid "capture"
msgstr ""
#: operations.cc:25
-#, fuzzy
msgid "paste"
-msgstr "główna"
+msgstr ""
#: operations.cc:26
msgid "duplicate region"
@@ -1240,19 +1193,19 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr ""
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
@@ -1362,11 +1315,7 @@ msgstr ""
msgid "unknown plugin type \"%1\" - ignored"
msgstr ""
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr ""
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "nie można było zarejestrować %1"
@@ -1382,6 +1331,34 @@ msgstr ""
msgid "non-port insert XML used for port plugin insert"
msgstr ""
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr ""
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr ""
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr ""
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1390,41 +1367,41 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr ""
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr ""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr ""
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr ""
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr ""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr ""
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr ""
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "Plik konfiguracji %1 nie zapisany"
@@ -1462,35 +1439,39 @@ msgstr ""
msgid "return %1"
msgstr ""
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr ""
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr ""
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1506,186 +1487,167 @@ msgstr ""
msgid "programming error: send created using role %1"
msgstr ""
-#: session.cc:347
-msgid "Set block size and sample rate"
-msgstr ""
-
-#: session.cc:352
-msgid "Using configuration"
+#: session.cc:344
+msgid "Connect to engine"
msgstr ""
-#: session.cc:377
-msgid "LTC In"
+#: session.cc:349
+msgid "Session loading complete"
msgstr ""
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
+#: session.cc:425
+msgid "Set up standard connections"
msgstr ""
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr "nie można było ustawić I/O metronomu"
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr "nie można ustawić I/O metronomu"
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr ""
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr ""
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr "wyjście %<PRIu32>"
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr "wyjście %<PRIu32>+%<PRIu32>"
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr "wejście %<PRIu32>"
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr "wejście %<PRIu32>+%<PRIu32>"
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr ""
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr ""
-
-#: session.cc:645
-#, fuzzy
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
-msgstr "nie można ustawić głównych wyjść"
+msgstr ""
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr "monitor"
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr ""
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr ""
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr ""
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr ""
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr ""
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr ""
@@ -1724,11 +1686,11 @@ msgstr ""
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr ""
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr ""
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1738,10 +1700,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr ""
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr ""
@@ -1750,385 +1708,372 @@ msgstr ""
msgid "Session: cannot create Playlist from XML description."
msgstr ""
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr ""
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr ""
-#: session_state.cc:360
-msgid "Reset Remote Controls"
+#: session_state.cc:208
+msgid "Set block size and sample rate"
msgstr ""
-#: session_state.cc:385
-msgid "Session loading complete"
+#: session_state.cc:213
+msgid "Using configuration"
msgstr ""
-#: session_state.cc:452
+#: session_state.cc:325
+msgid "Reset Remote Controls"
+msgstr ""
+
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:459
-#, fuzzy
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
-msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:466
-#, fuzzy
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
-msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:494
-#, fuzzy
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
-msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:501
-#, fuzzy
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
-msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:548
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
msgstr ""
-#: session_state.cc:554
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr "główna"
-#: session_state.cc:636
-#, fuzzy
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:660
-#, fuzzy
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
-msgstr "nie można było połączyć ponownie %1 i %2 (błąd = %3)"
+msgstr ""
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr ""
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr ""
-#: session_state.cc:890
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr ""
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:911
-#, fuzzy
+#: session_state.cc:819
msgid "Session file %1 is not a session"
-msgstr "Plik konfiguracji %1 nie zapisany"
+msgstr ""
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr ""
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr ""
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr ""
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr ""
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr ""
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr ""
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr ""
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr ""
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr ""
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr ""
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr ""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr ""
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr ""
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr ""
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr ""
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr ""
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
msgstr ""
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr ""
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr ""
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
-#: session_state.cc:2033
-#, fuzzy
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
+msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr ""
-#: session_state.cc:2052
-#, fuzzy
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr ""
-#: session_state.cc:2072
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
msgstr ""
-#: session_state.cc:2267
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr ""
-#: session_state.cc:2868
-#, fuzzy
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
-msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2907
-#, fuzzy
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
+msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr ""
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr ""
-#: session_state.cc:3243
-#, fuzzy
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:3247
-#, fuzzy
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
-msgstr "nie można było zarejestrować %1"
+msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr ""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr ""
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2151,9 +2096,8 @@ msgid "Skipping event with unordered time %1"
msgstr ""
#: smf_source.cc:410
-#, fuzzy
msgid "cannot open MIDI file %1 for write"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
+msgstr ""
#: sndfile_helpers.cc:32
msgid "WAV"
@@ -2228,18 +2172,16 @@ msgid "Signed 8 bit PCM"
msgstr ""
#: sndfile_helpers.cc:68
-#, fuzzy
msgid "32 bit float"
-msgstr "32 bit"
+msgstr ""
#: sndfile_helpers.cc:81
msgid "Little-endian (Intel)"
msgstr "Little-endian (Intel)"
#: sndfile_helpers.cc:82
-#, fuzzy
msgid "Big-endian (PowerPC)"
-msgstr "Big-endian (Mac)"
+msgstr ""
#: sndfilesource.cc:201
msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)"
@@ -2274,7 +2216,7 @@ msgstr ""
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr ""
@@ -2477,37 +2419,34 @@ msgid "Node for Port has no \"name\" property"
msgstr ""
#: utils.cc:358 utils.cc:382
-#, fuzzy
msgid "Splice"
-msgstr "Edycja klockowa"
+msgstr ""
#: utils.cc:360 utils.cc:375
-#, fuzzy
msgid "Slide"
-msgstr "Edycja ślizgowa"
+msgstr ""
#: utils.cc:362 utils.cc:378
-#, fuzzy
msgid "Lock"
-msgstr "Edycja zablokowana"
+msgstr ""
#: utils.cc:365
msgid "programming error: unknown edit mode string \"%1\""
msgstr ""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr ""
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr "MTC"
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr ""
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr "JACK"
@@ -2515,74 +2454,18 @@ msgstr "JACK"
msgid "programming error: unknown sync source string \"%1\""
msgstr ""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr ""
-#: utils.cc:429
-#, fuzzy
+#: utils.cc:432
msgid "LTC"
-msgstr "MTC"
+msgstr ""
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr ""
-#: utils.cc:614
-#, fuzzy
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
-msgstr "nie można otworzyć pliku dźwiękowego metronomu %1 (%2)"
-
-#~ msgid "cannot open click emphasis soundfile %1 (%2)"
-#~ msgstr ""
-#~ "nie można otworzyć pliku dźwiękowego akcentowanego uderzenia metronomu %1 "
-#~ "(%2)"
-
-#~ msgid "cannot read data from click emphasis soundfile"
-#~ msgstr ""
-#~ "nie można odczytać danych z pliku dźwiękowego akcentowanego uderzenia "
-#~ "metronomu"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub sounds dir \"%1\" (%2)"
-#~ msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
-
-#, fuzzy
-#~ msgid "Session: cannot create session stub midi dir \"%1\" (%2)"
-#~ msgstr "Nie można utworzyć folderu dźwięków sesji \"%1\" (%2)"
-
-#~ msgid "in 1+2"
-#~ msgstr "wejście 1+2"
-
-#~ msgid "default"
-#~ msgstr "domyślnie"
-
-#~ msgid "cannot setup master inputs"
-#~ msgstr "nie można ustawić głównych wejść"
-
-#~ msgid "Master Out"
-#~ msgstr "Główne wyjście"
-
-#~ msgid "OSC startup"
-#~ msgstr "poczÄ…tek OSC"
-
-#~ msgid "end"
-#~ msgstr "koniec"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bit"
-
-#~ msgid "24 bit"
-#~ msgstr "24 bit"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bit"
-
-#~ msgid "Internal"
-#~ msgstr "Wew."
-
-#~ msgid "%s/out %u"
-#~ msgstr "%s/wyjście %u"
-
-#~ msgid "%s/in"
-#~ msgstr "%s/wejście"
+msgstr ""
diff --git a/libs/ardour/po/ru.po b/libs/ardour/po/ru.po
index 9d4f2d3bfa..3748bfc18c 100644
--- a/libs/ardour/po/ru.po
+++ b/libs/ardour/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 21:42+0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-10-15 21:40+0300\n"
"Last-Translator: ÐлекÑандр Прокудин <alexandre.prokoudine@gmail.com>\n"
"Language-Team: руÑÑкий <>\n"
@@ -124,7 +124,7 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2613 session.cc:2646 session.cc:3791
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "programming error: %1"
@@ -391,7 +391,7 @@ msgstr ""
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1788 session.cc:1791
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
@@ -503,7 +503,7 @@ msgstr "Треугольное"
msgid "Rectangular"
msgstr "ПрÑмоугольное"
-#: export_formats.cc:52 session.cc:5009 session.cc:5025
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr "Ðет"
@@ -859,15 +859,15 @@ msgstr ""
msgid "%s out"
msgstr ""
-#: io.cc:1535 session.cc:683 session.cc:712
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1537 session.cc:696 session.cc:726
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1537 session.cc:698 session.cc:728
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
@@ -962,7 +962,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4510 session_state.cc:1031
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr ""
@@ -1094,38 +1094,6 @@ msgstr ""
msgid "MIDI stretch created non-MIDI source"
msgstr ""
-#: midiport_manager.cc:71
-msgid "MIDI control in"
-msgstr ""
-
-#: midiport_manager.cc:72
-msgid "MIDI control out"
-msgstr ""
-
-#: midiport_manager.cc:74
-msgid "MMC in"
-msgstr ""
-
-#: midiport_manager.cc:75
-msgid "MMC out"
-msgstr ""
-
-#: midiport_manager.cc:96
-msgid "MTC in"
-msgstr ""
-
-#: midiport_manager.cc:98
-msgid "MTC out"
-msgstr ""
-
-#: midiport_manager.cc:101
-msgid "MIDI Clock in"
-msgstr ""
-
-#: midiport_manager.cc:103
-msgid "MIDI Clock out"
-msgstr ""
-
#: monitor_processor.cc:53
msgid "monitor dim"
msgstr ""
@@ -1486,35 +1454,39 @@ msgstr ""
msgid "return %1"
msgstr ""
-#: route.cc:1107 route.cc:2584
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr ""
-#: route.cc:1119
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr ""
-#: route.cc:2010 route.cc:2237
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr ""
-#: route.cc:2070
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2140 route.cc:2144 route.cc:2351 route.cc:2355
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1530,183 +1502,167 @@ msgstr ""
msgid "programming error: send created using role %1"
msgstr "programming error: send created using role %1"
-#: session.cc:343
+#: session.cc:344
msgid "Connect to engine"
msgstr "Соединение Ñо звуковым движком"
-#: session.cc:348
+#: session.cc:349
msgid "Session loading complete"
msgstr "Загрузка ÑеанÑа завершена"
-#: session.cc:420
+#: session.cc:421
msgid "Set up LTC"
msgstr ""
-#: session.cc:422
+#: session.cc:423
msgid "Set up Click"
msgstr ""
-#: session.cc:424
+#: session.cc:425
msgid "Set up standard connections"
msgstr "ÐаÑтройка обычных Ñоединений"
-#: session.cc:561
-msgid "LTC In"
-msgstr ""
-
-#: session.cc:562
-msgid "LTC Out"
-msgstr ""
-
-#: session.cc:588
-msgid "LTC-in"
-msgstr ""
-
-#: session.cc:589
-msgid "LTC-out"
-msgstr ""
-
-#: session.cc:632
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr ""
-#: session.cc:680
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:694
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:709
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:723
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:787
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr ""
-#: session.cc:846
+#: session.cc:849
msgid "monitor"
msgstr ""
-#: session.cc:891
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr ""
-#: session.cc:911
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:942
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr ""
-#: session.cc:1006
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
-#: session.cc:1190
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
-#: session.cc:1230
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1544
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1840
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr ""
-#: session.cc:1846
+#: session.cc:1849
msgid ""
"No more JACK ports are available. You will need to stop %1 and restart JACK "
"with more ports if you need this many tracks."
msgstr ""
-#: session.cc:2023 session.cc:2026
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:2050 session.cc:2058 session.cc:2135 session.cc:2143
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:2081
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr ""
-#: session.cc:2113 session.cc:2116
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2166
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr ""
-#: session.cc:2225 session.cc:2235
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2257
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr ""
-#: session.cc:2283
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr ""
-#: session.cc:2312
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr "Ðе удалоÑÑŒ добавить новые дорожки/шины"
-#: session.cc:3413
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3533 session.cc:3591
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr ""
-#: session.cc:3981
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3993
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:4005
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:4017
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:4144
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4173
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4183
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr ""
@@ -2110,11 +2066,11 @@ msgstr ""
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3518
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr ""
-#: session_state.cc:3523
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
@@ -2528,66 +2484,3 @@ msgstr "programming error: unknown native header format: %1"
#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr "cannot open directory %1 (%2)"
-
-#~ msgid "Setup signal flow and plugins"
-#~ msgstr "ÐаÑтройка модулей и звукового потока"
-
-#~ msgid "Session"
-#~ msgstr "СеанÑ"
-
-#, fuzzy
-#~ msgid "editor"
-#~ msgstr "монитор"
-
-#, fuzzy
-#~ msgid "programming error: realpath(%1) failed, errcode %2"
-#~ msgstr "ошибка программы: "
-
-#, fuzzy
-#~ msgid "programming error:"
-#~ msgstr "ошибка программы: "
-
-#~ msgid "cannot activate JACK client"
-#~ msgstr "не удалоÑÑŒ активировать клиента JACK Ñервера"
-
-#, fuzzy
-#~ msgid "removed event"
-#~ msgstr "удалить облаÑÑ‚ÑŒ"
-
-#, fuzzy
-#~ msgid "removed range"
-#~ msgstr "удалить облаÑÑ‚ÑŒ"
-
-#~ msgid "add"
-#~ msgstr "добавить"
-
-#~ msgid "remove"
-#~ msgstr "удалить"
-
-#~ msgid "remove region"
-#~ msgstr "удалить облаÑÑ‚ÑŒ"
-
-#~ msgid "separate"
-#~ msgstr "разделить"
-
-#~ msgid "split"
-#~ msgstr "Ñклеить"
-
-#~ msgid "pre"
-#~ msgstr "пре"
-
-#~ msgid "post"
-#~ msgstr "поÑÑ‚"
-
-#, fuzzy
-#~ msgid "Master Out"
-#~ msgstr "маÑтер"
-
-#~ msgid "16 bit"
-#~ msgstr "16 бит"
-
-#~ msgid "24 bit"
-#~ msgstr "24 бита"
-
-#~ msgid "8 bit"
-#~ msgstr "8 бит"
diff --git a/libs/ardour/po/sv.po b/libs/ardour/po/sv.po
index 2e7c6e0ddc..5558fde391 100644
--- a/libs/ardour/po/sv.po
+++ b/libs/ardour/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ardour\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2006-10-03 01:09+GMT+1\n"
"Last-Translator: Petter Sundlöf <petter.sundlof@findus.dhs.org>\n"
"Language-Team: Swedish <sv@li.org>\n"
@@ -120,7 +120,7 @@ msgstr ""
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr ""
@@ -146,9 +146,8 @@ msgid ""
msgstr ""
#: audio_track.cc:167
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for input of %2"
-msgstr "Okänd anslutning \"%1\" listad för %2 av %3"
+msgstr ""
#: audio_track.cc:169
msgid "in 1"
@@ -159,9 +158,8 @@ msgid "No input bundles available as a replacement"
msgstr ""
#: audio_track.cc:174
-#, fuzzy
msgid "Bundle %1 was not available - \"in 1\" used instead"
-msgstr "Anslutning %1 inte tillgänglig - \"in 1\" används instället"
+msgstr ""
#: audio_track.cc:183
msgid "improper input channel list in XML node (%1)"
@@ -187,60 +185,20 @@ msgstr ""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr ""
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
-msgstr ""
-
-#: audioengine.cc:190
-#, fuzzy
-msgid "Connect session to engine"
-msgstr "Ansluter till ljudmotorn"
-
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
-msgstr ""
-
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
-msgstr ""
-
-#: audioengine.cc:848
-#, fuzzy
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
-
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr ""
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr ""
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
msgstr ""
#: audioregion.cc:1643
@@ -271,14 +229,12 @@ msgid "cannot read sample data for unscaled peak computation"
msgstr ""
#: audiosource.cc:387
-#, fuzzy
msgid "AudioSource: cannot open peakpath (a) \"%1\" (%2)"
-msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
+msgstr ""
#: audiosource.cc:463
-#, fuzzy
msgid "AudioSource: cannot open peakpath (b) \"%1\" (%2)"
-msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
+msgstr ""
#: audiosource.cc:587
msgid ""
@@ -290,9 +246,8 @@ msgid "%1: could not write read raw data for peak computation (%2)"
msgstr ""
#: audiosource.cc:706
-#, fuzzy
msgid "AudioSource: cannot open peakpath (c) \"%1\" (%2)"
-msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
+msgstr ""
#: audiosource.cc:773 audiosource.cc:886
msgid "%1: could not write peak file data (%2)"
@@ -425,7 +380,7 @@ msgstr ""
msgid "audio"
msgstr ""
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr ""
@@ -537,7 +492,7 @@ msgstr ""
msgid "Rectangular"
msgstr ""
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -618,14 +573,12 @@ msgid "empty format"
msgstr ""
#: export_profile_manager.cc:818
-#, fuzzy
msgid "No timespan has been selected!"
-msgstr "Inget format valt!"
+msgstr ""
#: export_profile_manager.cc:822
-#, fuzzy
msgid "No channels have been selected!"
-msgstr "Inget format valt!"
+msgstr ""
#: export_profile_manager.cc:826
msgid "Some channels are empty"
@@ -649,7 +602,7 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr ""
@@ -744,23 +697,23 @@ msgstr ""
msgid "unknown file type for session %1"
msgstr ""
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr ""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr ""
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr ""
@@ -837,9 +790,8 @@ msgid "in"
msgstr ""
#: io.cc:706
-#, fuzzy
msgid "out"
-msgstr "utgång"
+msgstr ""
#: io.cc:707
msgid "input"
@@ -850,14 +802,12 @@ msgid "output"
msgstr "utgång"
#: io.cc:717
-#, fuzzy
msgid "Unknown bundle \"%1\" listed for %2 of %3"
-msgstr "Okänd anslutning \"%1\" listad för %2 av %3"
+msgstr ""
#: io.cc:783
-#, fuzzy
msgid "Bundle %1 was not available - \"%2\" used instead"
-msgstr "Anslutning %1 inte tillgänglig - \"%2\" används istället"
+msgstr ""
#: io.cc:786
msgid "No %1 bundles available as a replacement"
@@ -883,47 +833,47 @@ msgstr ""
msgid "IO: bad output string in XML node \"%1\""
msgstr ""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr ""
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr ""
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr ""
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr ""
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
@@ -1001,7 +951,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr ""
@@ -1165,21 +1115,21 @@ msgstr ""
msgid "solo control"
msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1243,19 +1193,19 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr ""
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
@@ -1365,11 +1315,7 @@ msgstr ""
msgid "unknown plugin type \"%1\" - ignored"
msgstr ""
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr ""
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr ""
@@ -1385,6 +1331,34 @@ msgstr ""
msgid "non-port insert XML used for port plugin insert"
msgstr ""
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr ""
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr ""
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: kan inte ansluta %1 (%2) till %3 (%4)"
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1393,41 +1367,41 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr ""
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr ""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr ""
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr ""
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr ""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr ""
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr ""
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr ""
@@ -1465,35 +1439,39 @@ msgstr ""
msgid "return %1"
msgstr ""
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr ""
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr ""
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr ""
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1509,185 +1487,167 @@ msgstr ""
msgid "programming error: send created using role %1"
msgstr ""
-#: session.cc:347
-msgid "Set block size and sample rate"
-msgstr ""
-
-#: session.cc:352
-msgid "Using configuration"
-msgstr ""
+#: session.cc:344
+msgid "Connect to engine"
+msgstr "Ansluter till ljudmotorn"
-#: session.cc:377
-msgid "LTC In"
+#: session.cc:349
+msgid "Session loading complete"
msgstr ""
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
+#: session.cc:425
+msgid "Set up standard connections"
msgstr ""
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr ""
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr ""
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr ""
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr ""
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr "Ställer in signalflöde och insticksprogram"
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr "Ansluter till ljudmotorn"
-
-#: session.cc:645
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr ""
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr ""
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr ""
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr ""
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr ""
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr ""
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr ""
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr ""
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr ""
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr ""
@@ -1726,11 +1686,11 @@ msgstr ""
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr ""
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr ""
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1740,10 +1700,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr ""
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr ""
@@ -1752,368 +1708,372 @@ msgstr ""
msgid "Session: cannot create Playlist from XML description."
msgstr ""
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr ""
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
-#: session_state.cc:139
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr ""
-#: session_state.cc:360
-msgid "Reset Remote Controls"
+#: session_state.cc:208
+msgid "Set block size and sample rate"
msgstr ""
-#: session_state.cc:385
-msgid "Session loading complete"
+#: session_state.cc:213
+msgid "Using configuration"
msgstr ""
-#: session_state.cc:452
+#: session_state.cc:325
+msgid "Reset Remote Controls"
+msgstr ""
+
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:466
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:494
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:501
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:548
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
msgstr ""
-#: session_state.cc:554
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr ""
-#: session_state.cc:636
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
msgstr ""
-#: session_state.cc:660
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
msgstr ""
-#: session_state.cc:688
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr ""
-#: session_state.cc:814 session_state.cc:825
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
msgstr ""
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr ""
-#: session_state.cc:890
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr ""
-#: session_state.cc:902
+#: session_state.cc:810
msgid "Could not understand session file %1"
msgstr ""
-#: session_state.cc:911
+#: session_state.cc:819
msgid "Session file %1 is not a session"
msgstr ""
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr ""
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr ""
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr ""
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr ""
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr ""
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr ""
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr ""
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr ""
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr ""
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr ""
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr ""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr ""
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr ""
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr ""
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr ""
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr ""
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
msgstr ""
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr ""
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr ""
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
-#: session_state.cc:2033
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr ""
-#: session_state.cc:2052
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
msgstr ""
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr ""
-#: session_state.cc:2072
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
msgstr ""
-#: session_state.cc:2267
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr ""
-#: session_state.cc:2868
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:2907
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr ""
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr ""
-#: session_state.cc:3243
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
msgstr ""
-#: session_state.cc:3247
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr ""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr ""
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2256,7 +2216,7 @@ msgstr ""
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr ""
@@ -2474,19 +2434,19 @@ msgstr "LÃ¥s"
msgid "programming error: unknown edit mode string \"%1\""
msgstr ""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr ""
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr ""
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr ""
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr ""
@@ -2494,42 +2454,18 @@ msgstr ""
msgid "programming error: unknown sync source string \"%1\""
msgstr ""
-#: utils.cc:423
+#: utils.cc:426
msgid "M-Clock"
msgstr ""
-#: utils.cc:429
+#: utils.cc:432
msgid "LTC"
msgstr ""
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr ""
-#: utils.cc:614
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr ""
-
-#~ msgid "Connection %1 was not available - \"out 1\" used instead"
-#~ msgstr "Anslutning %1 inte tillgänglig - \"out 1\" används instället"
-
-#~ msgid "Splice Edit"
-#~ msgstr "Fogredigering"
-
-#~ msgid "Slide Edit"
-#~ msgstr "Glidredigering"
-
-#~ msgid "Lock Edit"
-#~ msgstr "LÃ¥st redigering"
-
-#~ msgid "Internal"
-#~ msgstr "Intern"
-
-#~ msgid "Catch up with send/insert state"
-#~ msgstr "Kommer ikapp sänd/anslutningstillstånd"
-
-#~ msgid "OSC startup"
-#~ msgstr "OSC-uppstart"
-
-#~ msgid "Configuring MIDI ports"
-#~ msgstr "Konfigurerar MIDI-portar"
diff --git a/libs/ardour/po/zh.po b/libs/ardour/po/zh.po
index 1d0e8f3d44..d39877d9f5 100644
--- a/libs/ardour/po/zh.po
+++ b/libs/ardour/po/zh.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ardour 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-03 07:59-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2012-08-26 13:43+0800\n"
"Last-Translator: Rui-huai Zhang <zrhzrh>\n"
"Language-Team: zrhzrh <zrhzrh@mail.ustc.edu.cn>\n"
@@ -121,7 +121,7 @@ msgstr "音频播放列表(未使用)"
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
-#: rb_effect.cc:332 session.cc:2465 session.cc:2498 session.cc:3643
+#: rb_effect.cc:333 session.cc:2619 session.cc:2652 session.cc:3797
#: session_handle.cc:87 sndfilesource.cc:121
msgid "programming error: %1"
msgstr "程åºé”™è¯¯: %1"
@@ -190,60 +190,22 @@ msgstr "无法载入VAMPæ’件 \"%1\""
msgid "VAMP Plugin \"%1\" could not be loaded"
msgstr "无法载入VAMPæ’件 \"%1\""
-#: audioengine.cc:186
-msgid ""
-"This version of JACK is old - you should upgrade to a newer version that "
-"supports jack_port_type_get_buffer_size()"
+#: audioengine.cc:488
+msgid "looking for backends in %1\n"
msgstr ""
-#: audioengine.cc:190
-msgid "Connect session to engine"
-msgstr "连接会è¯åˆ°å¼•æ“Ž"
-
-#: audioengine.cc:843
-msgid ""
-"a port with the name \"%1\" already exists: check for duplicated track/bus "
-"names"
-msgstr ""
-
-#: audioengine.cc:845 session.cc:1698
-msgid ""
-"No more JACK ports are available. You will need to stop %1 and restart JACK "
-"with more ports if you need this many tracks."
-msgstr ""
-
-#: audioengine.cc:848
-msgid "AudioEngine: cannot register port \"%1\": %2"
-msgstr ""
-
-#: audioengine.cc:878
-msgid "unable to create port: %1"
-msgstr "无法创建端å£: %1"
-
-#: audioengine.cc:932
-msgid "connect called before engine was started"
-msgstr ""
-
-#: audioengine.cc:958
-msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-msgstr "音频引擎: 无法连接 %1 (%2) 到 %3 (%4)"
-
-#: audioengine.cc:973 audioengine.cc:1004
-msgid "disconnect called before engine was started"
+#: audioengine.cc:511
+msgid "AudioEngine: cannot load module \"%1\" (%2)"
msgstr ""
-#: audioengine.cc:1052
-msgid "get_port_by_name() called before engine was started"
+#: audioengine.cc:517
+msgid "AudioEngine: backend at \"%1\" has no descriptor function."
msgstr ""
-#: audioengine.cc:1104
-msgid "get_ports called before engine was started"
+#: audioengine.cc:589
+msgid "Could not create backend for %1: %2"
msgstr ""
-#: audioengine.cc:1427
-msgid "failed to connect to JACK"
-msgstr "连接JACK失败"
-
#: audioregion.cc:1643
msgid ""
"You have requested an operation that requires audio analysis.\n"
@@ -297,9 +259,8 @@ msgid "%1: could not write peak file data (%2)"
msgstr ""
#: audiosource.cc:924
-#, fuzzy
msgid "could not truncate peakfile %1 to %2 (error: %3)"
-msgstr "无法é‡å‘½å文件 %1 到 %2 (%3)"
+msgstr ""
#: auditioner.cc:87
msgid "no outputs available for auditioner - manual connection required"
@@ -389,9 +350,8 @@ msgid "Instantiating mandatory control protocol %1"
msgstr "实例强制性控制åè®® %1"
#: control_protocol_manager.cc:222
-#, fuzzy
msgid "looking for control protocols in %1\n"
-msgstr "寻找控制åè®®, 在 %1\n"
+msgstr ""
#: control_protocol_manager.cc:247
msgid "Control protocol %1 not usable"
@@ -425,7 +385,7 @@ msgstr ""
msgid "audio"
msgstr "音频"
-#: data_type.cc:28 session.cc:1640 session.cc:1643
+#: data_type.cc:28 session.cc:1791 session.cc:1794
msgid "MIDI"
msgstr "MIDI"
@@ -537,7 +497,7 @@ msgstr "三角形"
msgid "Rectangular"
msgstr "长方形"
-#: export_formats.cc:52 session.cc:4861 session.cc:4877
+#: export_formats.cc:52 session.cc:5014 session.cc:5030
msgid "None"
msgstr ""
@@ -594,33 +554,28 @@ msgid "Searching for export formats in %1"
msgstr ""
#: export_profile_manager.cc:99
-#, fuzzy
msgid "Unable to create export format directory %1: %2"
-msgstr "无法创建混音模æ¿ç›®å½• \"%1\" (%2)"
+msgstr ""
#: export_profile_manager.cc:257
-#, fuzzy
msgid "Unable to remove export preset %1: %2"
-msgstr "无法创建端å£: %1"
+msgstr ""
#: export_profile_manager.cc:347
msgid "Selection"
msgstr "选å–"
#: export_profile_manager.cc:600
-#, fuzzy
msgid "Unable to rename export format %1 to %2: %3"
-msgstr "无法é‡å‘½åå¿«ç…§ %1 到 %2 (%3)"
+msgstr ""
#: export_profile_manager.cc:632
-#, fuzzy
msgid "Unable to remove export profile %1: %2"
-msgstr "无法备份状æ€æ–‡ä»¶%1 (%2)"
+msgstr ""
#: export_profile_manager.cc:649
-#, fuzzy
msgid "empty format"
-msgstr "无采样格å¼"
+msgstr ""
#: export_profile_manager.cc:818
msgid "No timespan has been selected!"
@@ -652,7 +607,7 @@ msgid ""
"configuration"
msgstr ""
-#: file_source.cc:198 session_state.cc:2891
+#: file_source.cc:198 session_state.cc:2807
msgid ""
"there are already 1000 files with names like %1; versioning discontinued"
msgstr ""
@@ -694,9 +649,8 @@ msgid "cannot rename file %1 to %2 (%3)"
msgstr "无法é‡å‘½å文件 %1 到 %2 (%3)"
#: filesystem_paths.cc:73
-#, fuzzy
msgid "Cannot create Configuration directory %1 - cannot run"
-msgstr "无法创建会è¯ç›®å½•åœ¨è·¯å¾„ %1 错误: %2"
+msgstr ""
#: filesystem_paths.cc:78
msgid ""
@@ -748,23 +702,23 @@ msgstr ""
msgid "unknown file type for session %1"
msgstr ""
-#: globals.cc:205
+#: globals.cc:207
msgid "Could not set system open files limit to \"unlimited\""
msgstr ""
-#: globals.cc:207
+#: globals.cc:209
msgid "Could not set system open files limit to %1"
msgstr ""
-#: globals.cc:211
+#: globals.cc:213
msgid "Your system is configured to limit %1 to only %2 open files"
msgstr ""
-#: globals.cc:215
+#: globals.cc:217
msgid "Could not get system open files limit (%1)"
msgstr ""
-#: globals.cc:266
+#: globals.cc:268
msgid "Loading configuration"
msgstr "载入é…ç½®"
@@ -809,9 +763,8 @@ msgid "Failed to remove some files after failed/cancelled import operation"
msgstr ""
#: instrument_info.cc:40 instrument_info.cc:61
-#, fuzzy
msgid "Unknown"
-msgstr "未知"
+msgstr ""
#: instrument_info.cc:230
msgid "preset %1 (bank %2)"
@@ -885,57 +838,55 @@ msgstr ""
msgid "IO: bad output string in XML node \"%1\""
msgstr ""
-#: io.cc:1410
+#: io.cc:1411
#, c-format
msgid "%s %u"
msgstr ""
-#: io.cc:1457
+#: io.cc:1458
#, c-format
msgid "%s in"
msgstr ""
-#: io.cc:1459
+#: io.cc:1460
#, c-format
msgid "%s out"
msgstr ""
-#: io.cc:1534 session.cc:494 session.cc:523
+#: io.cc:1535 session.cc:686 session.cc:715
msgid "mono"
msgstr "å•å£°é“"
-#: io.cc:1536 session.cc:507 session.cc:537
+#: io.cc:1537 session.cc:699 session.cc:729
msgid "L"
msgstr ""
-#: io.cc:1536 session.cc:509 session.cc:539
+#: io.cc:1537 session.cc:701 session.cc:731
msgid "R"
msgstr ""
-#: io.cc:1538 io.cc:1544
+#: io.cc:1539 io.cc:1545
#, c-format
msgid "%d"
msgstr ""
-#: ladspa_plugin.cc:88
+#: ladspa_plugin.cc:86
msgid "LADSPA: module has no descriptor function."
msgstr "LADSPA: 模å—没有æ述符函数."
-#: ladspa_plugin.cc:93
+#: ladspa_plugin.cc:91
msgid "LADSPA: plugin has gone away since discovery!"
msgstr "LADSPA: 当å‘现æ’件时, æ’件已ç»ä¸è§äº†."
-#: ladspa_plugin.cc:100
+#: ladspa_plugin.cc:98
msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
msgstr ""
#: ladspa_plugin.cc:297
-#, fuzzy
msgid ""
"illegal parameter number used with plugin \"%1\". This may indicate a change "
"in the plugin design, and presets may be invalid"
msgstr ""
-"æ’件\"%1\"使用éžæ³•å‚æ•°æ•°é‡. è¿™å¯èƒ½æ„味ç€æ’件的设计有所å˜åŠ¨, 而且预设失效了."
#: ladspa_plugin.cc:376 ladspa_plugin.cc:426
msgid "Bad node sent to LadspaPlugin::set_state"
@@ -1005,7 +956,7 @@ msgstr ""
msgid "incorrect XML mode passed to Locations::set_state"
msgstr ""
-#: location.cc:842 session.cc:4362 session_state.cc:1114
+#: location.cc:842 session.cc:4516 session_state.cc:1031
msgid "session"
msgstr "会è¯"
@@ -1169,21 +1120,21 @@ msgstr ""
msgid "solo control"
msgstr ""
-#: mtc_slave.cc:235
+#: mtc_slave.cc:238
msgid "MTC Slave: atomic read of current time failed, sleeping!"
msgstr ""
-#: mtc_slave.cc:359
+#: mtc_slave.cc:361
msgid ""
"Unknown rate/drop value %1 in incoming MTC stream, session values used "
"instead"
msgstr ""
-#: mtc_slave.cc:379
+#: mtc_slave.cc:381
msgid "Session framerate adjusted from %1 TO: MTC's %2."
msgstr ""
-#: mtc_slave.cc:393
+#: mtc_slave.cc:395
msgid "Session and MTC framerate mismatch: MTC:%1 %2:%3."
msgstr ""
@@ -1247,19 +1198,19 @@ msgstr ""
msgid "looking for panners in %1"
msgstr ""
-#: panner_manager.cc:99
+#: panner_manager.cc:100
msgid "Panner discovered: \"%1\" in %2"
msgstr ""
-#: panner_manager.cc:116
+#: panner_manager.cc:117
msgid "PannerManager: cannot load module \"%1\" (%2)"
msgstr ""
-#: panner_manager.cc:123
+#: panner_manager.cc:124
msgid "PannerManager: module \"%1\" has no descriptor function."
msgstr ""
-#: panner_manager.cc:186
+#: panner_manager.cc:187
msgid "no panner discovered for in/out = %1/%2"
msgstr ""
@@ -1369,11 +1320,7 @@ msgstr ""
msgid "unknown plugin type \"%1\" - ignored"
msgstr "ä½ç½®æ’件类型 \"%1\" - 忽略之"
-#: port.cc:367
-msgid "get_connected_latency_range() called while disconnected from JACK"
-msgstr ""
-
-#: port.cc:450
+#: port.cc:410
msgid "could not reregister %1"
msgstr "无法注册 %1."
@@ -1389,6 +1336,34 @@ msgstr ""
msgid "non-port insert XML used for port plugin insert"
msgstr ""
+#: port_manager.cc:270
+msgid ""
+"a port with the name \"%1\" already exists: check for duplicated track/bus "
+"names"
+msgstr ""
+
+#: port_manager.cc:272
+msgid ""
+"No more ports are available. You will need to stop %1 and restart with more "
+"ports if you need this many tracks."
+msgstr ""
+
+#: port_manager.cc:275
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr ""
+
+#: port_manager.cc:314
+msgid "unable to create port: %1"
+msgstr "无法创建端å£: %1"
+
+#: port_manager.cc:401
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "音频引擎: 无法连接 %1 (%2) 到 %3 (%4)"
+
+#: port_manager.cc:453 port_manager.cc:454
+msgid "Re-establising port %1 failed"
+msgstr ""
+
#: processor.cc:207
msgid "No %1 property flag in element %2"
msgstr ""
@@ -1397,41 +1372,41 @@ msgstr ""
msgid "No child node with active property"
msgstr ""
-#: rc_configuration.cc:93
+#: rc_configuration.cc:88
msgid "Loading system configuration file %1"
msgstr "载入系统é…置文件 %1"
-#: rc_configuration.cc:97
+#: rc_configuration.cc:92
msgid "%1: cannot read system configuration file \"%2\""
msgstr "%1: 无法读å–系统é…置文件\"%2\""
-#: rc_configuration.cc:102
+#: rc_configuration.cc:97
msgid "%1: system configuration file \"%2\" not loaded successfully."
msgstr "%1: 系统é…置文件 \"%2\" 载入ä¸æˆåŠŸ"
-#: rc_configuration.cc:106
+#: rc_configuration.cc:101
msgid ""
"Your system %1 configuration file is empty. This probably means that there "
"was an error installing %1"
msgstr ""
-#: rc_configuration.cc:121
+#: rc_configuration.cc:116
msgid "Loading user configuration file %1"
msgstr "载入用户é…置文件 %1"
-#: rc_configuration.cc:125
+#: rc_configuration.cc:120
msgid "%1: cannot read configuration file \"%2\""
msgstr "%1: 无法读å–é…置文件 \"%2\""
-#: rc_configuration.cc:130
+#: rc_configuration.cc:125
msgid "%1: user configuration file \"%2\" not loaded successfully."
msgstr "%1: 用户é…置文件 \"%2\" 载入ä¸æˆåŠŸ"
-#: rc_configuration.cc:134
+#: rc_configuration.cc:129
msgid "your %1 configuration file is empty. This is not normal."
msgstr ""
-#: rc_configuration.cc:151
+#: rc_configuration.cc:146
msgid "Config file %1 not saved"
msgstr "é…置文件 %1 没有ä¿å­˜"
@@ -1469,35 +1444,39 @@ msgstr "导入: src_new() 失败 : %1"
msgid "return %1"
msgstr "返回 %1"
-#: route.cc:1105 route.cc:2581
+#: route.cc:1075 route.cc:2528
msgid "unknown Processor type \"%1\"; ignored"
msgstr ""
-#: route.cc:1117
+#: route.cc:1087
msgid "processor could not be created. Ignored."
msgstr ""
-#: route.cc:2007 route.cc:2234
+#: route.cc:1962 route.cc:2187
msgid "Bad node sent to Route::set_state() [%1]"
msgstr "æŸå的符å·å‘é€è‡³ Route::set_state() [%1]"
-#: route.cc:2067
+#: route.cc:2022
msgid "Pannable state found for route (%1) without a panner!"
msgstr ""
-#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
+#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
msgid "badly formed order key string in state file! [%1] ... ignored."
msgstr ""
+#: route.cc:2311
+msgid "Converting deprecated order key for %1 using Editor order %2"
+msgstr ""
+
#: route_group.cc:459
msgid "You cannot subgroup MIDI tracks at this time"
msgstr "此时你无法å­åˆ†ç»„MIDI声é“"
-#: rb_effect.cc:233 rb_effect.cc:274
+#: rb_effect.cc:234 rb_effect.cc:275
msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
msgstr ""
-#: rb_effect.cc:303 rb_effect.cc:325
+#: rb_effect.cc:304 rb_effect.cc:326
msgid "error writing tempo-adjusted data to %1"
msgstr ""
@@ -1510,189 +1489,170 @@ msgid "send %1"
msgstr "å‘é€ %1"
#: send.cc:65
-#, fuzzy
msgid "programming error: send created using role %1"
-msgstr "程åºé”™è¯¯: 无法识别编辑模å¼å­—符串 \"%1\""
-
-#: session.cc:347
-msgid "Set block size and sample rate"
msgstr ""
-#: session.cc:352
-msgid "Using configuration"
-msgstr "使用é…ç½®"
+#: session.cc:344
+msgid "Connect to engine"
+msgstr "连接到引擎"
-#: session.cc:377
-msgid "LTC In"
-msgstr ""
+#: session.cc:349
+msgid "Session loading complete"
+msgstr "会è¯è½½å…¥å®Œæˆ"
-#: session.cc:378
-msgid "LTC Out"
+#: session.cc:421
+msgid "Set up LTC"
msgstr ""
-#: session.cc:404
-msgid "LTC-in"
+#: session.cc:423
+msgid "Set up Click"
msgstr ""
-#: session.cc:405
-msgid "LTC-out"
-msgstr ""
+#: session.cc:425
+msgid "Set up standard connections"
+msgstr "设置标准连接"
-#: session.cc:434
+#: session.cc:635
msgid "could not setup Click I/O"
msgstr ""
-#: session.cc:461
-msgid "cannot setup Click I/O"
-msgstr ""
-
-#: session.cc:464
-msgid "Compute I/O Latencies"
-msgstr ""
-
-#: session.cc:470
-msgid "Set up standard connections"
-msgstr "设置标准连接"
-
-#: session.cc:491
+#: session.cc:683
#, c-format
msgid "out %<PRIu32>"
msgstr ""
-#: session.cc:505
+#: session.cc:697
#, c-format
msgid "out %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:520
+#: session.cc:712
#, c-format
msgid "in %<PRIu32>"
msgstr ""
-#: session.cc:534
+#: session.cc:726
#, c-format
msgid "in %<PRIu32>+%<PRIu32>"
msgstr ""
-#: session.cc:570
-msgid "Setup signal flow and plugins"
-msgstr ""
-
-#: session.cc:614
-msgid "Connect to engine"
-msgstr "连接到引擎"
-
-#: session.cc:645
+#: session.cc:790
msgid "cannot connect master output %1 to %2"
msgstr ""
-#: session.cc:704
+#: session.cc:849
msgid "monitor"
msgstr ""
-#: session.cc:749
+#: session.cc:894
msgid "cannot connect control input %1 to %2"
msgstr ""
-#: session.cc:769
+#: session.cc:914
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
msgstr ""
-#: session.cc:800
+#: session.cc:945
msgid "cannot connect control output %1 to %2"
msgstr ""
-#: session.cc:864
+#: session.cc:1009
msgid "cannot create Auditioner: no auditioning of regions possible"
msgstr ""
-#: session.cc:1043
+#: session.cc:1193
msgid "Session: you can't use that location for auto punch (start <= end)"
msgstr ""
-#: session.cc:1083
+#: session.cc:1233
msgid ""
"You cannot use this location for auto-loop because it has zero or negative "
"length"
msgstr ""
-#: session.cc:1396
+#: session.cc:1547
msgid "feedback loop setup between %1 and %2"
msgstr ""
-#: session.cc:1692
+#: session.cc:1843
msgid "Session: could not create new midi track."
msgstr ""
-#: session.cc:1875 session.cc:1878
+#: session.cc:1849
+msgid ""
+"No more JACK ports are available. You will need to stop %1 and restart JACK "
+"with more ports if you need this many tracks."
+msgstr ""
+
+#: session.cc:2026 session.cc:2029
msgid "Audio"
msgstr "音频"
-#: session.cc:1902 session.cc:1910 session.cc:1987 session.cc:1995
+#: session.cc:2053 session.cc:2061 session.cc:2138 session.cc:2146
msgid "cannot configure %1 in/%2 out configuration for new audio track"
msgstr ""
-#: session.cc:1933
+#: session.cc:2084
msgid "Session: could not create new audio track."
msgstr ""
-#: session.cc:1965 session.cc:1968
+#: session.cc:2116 session.cc:2119
msgid "Bus"
msgstr "总线"
-#: session.cc:2018
+#: session.cc:2169
msgid "Session: could not create new audio route."
msgstr ""
-#: session.cc:2077 session.cc:2087
+#: session.cc:2228 session.cc:2238
msgid "Session: UINT_MAX routes? impossible!"
msgstr ""
-#: session.cc:2109
+#: session.cc:2260
msgid "Session: cannot create track/bus from template description"
msgstr ""
-#: session.cc:2135
+#: session.cc:2286
msgid "Session: could not create new route from template"
msgstr ""
-#: session.cc:2164
+#: session.cc:2315
msgid "Adding new tracks/busses failed"
msgstr ""
-#: session.cc:3265
+#: session.cc:3419
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
msgstr ""
-#: session.cc:3385 session.cc:3443
+#: session.cc:3539 session.cc:3597
msgid "There are already %1 recordings for %2, which I consider too many."
msgstr ""
-#: session.cc:3833
+#: session.cc:3987
msgid "send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3845
+#: session.cc:3999
msgid "aux send ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3857
+#: session.cc:4011
msgid "return ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3869
+#: session.cc:4023
msgid "insert ID %1 appears to be in use already"
msgstr ""
-#: session.cc:3996
+#: session.cc:4150
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
msgstr ""
-#: session.cc:4025
+#: session.cc:4179
msgid "too many bounced versions of playlist \"%1\""
msgstr ""
-#: session.cc:4035
+#: session.cc:4189
msgid "cannot create new audio file \"%1\" for %2"
msgstr ""
@@ -1731,11 +1691,11 @@ msgstr "会è¯å­ç›®å½•ä¸å­˜åœ¨äºŽè·¯å¾„ %1"
msgid "Session: cannot have two events of type %1 at the same frame (%2)."
msgstr ""
-#: session_export.cc:126
+#: session_export.cc:125
msgid "%1: cannot seek to %2 for export"
msgstr ""
-#: session_export.cc:183
+#: session_export.cc:182
msgid "Export ended unexpectedly: %1"
msgstr ""
@@ -1745,10 +1705,6 @@ msgid ""
"of this session."
msgstr ""
-#: session_midi.cc:428
-msgid "Session: could not send full MIDI time code"
-msgstr ""
-
#: session_midi.cc:520
msgid "Session: cannot send quarter-frame MTC message (%1)"
msgstr ""
@@ -1757,380 +1713,372 @@ msgstr ""
msgid "Session: cannot create Playlist from XML description."
msgstr "会è¯: 无法从XMLæ述符创建播放列表."
-#: session_process.cc:133
+#: session_process.cc:132
msgid "Session: error in no roll for %1"
msgstr ""
-#: session_process.cc:1158
+#: session_process.cc:1157
msgid "Programming error: illegal event type in process_event (%1)"
msgstr ""
-#: session_state.cc:139
-#, fuzzy
+#: session_state.cc:140
msgid "Could not use path %1 (%2)"
-msgstr "无法使用路径 %1 (%s)"
+msgstr ""
-#: session_state.cc:267
+#: session_state.cc:184
msgid "solo cut control (dB)"
msgstr ""
-#: session_state.cc:360
-msgid "Reset Remote Controls"
+#: session_state.cc:208
+msgid "Set block size and sample rate"
msgstr ""
-#: session_state.cc:385
-msgid "Session loading complete"
-msgstr "会è¯è½½å…¥å®Œæˆ"
+#: session_state.cc:213
+msgid "Using configuration"
+msgstr "使用é…ç½®"
-#: session_state.cc:452
+#: session_state.cc:325
+msgid "Reset Remote Controls"
+msgstr ""
+
+#: session_state.cc:417
msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
msgstr "会è¯: 无法创建会è¯å³°æ–‡ä»¶çš„文件夹 \"%1\" (%2)"
-#: session_state.cc:459
+#: session_state.cc:424
msgid "Session: cannot create session sounds dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:466
+#: session_state.cc:431
msgid "Session: cannot create session midi dir \"%1\" (%2)"
msgstr ""
-#: session_state.cc:473
+#: session_state.cc:438
msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:480
+#: session_state.cc:445
msgid "Session: cannot create session export folder \"%1\" (%2)"
msgstr "会è¯: 无法创建会è¯å¯¼å‡ºæ–‡ä»¶å¤¹ \"%1\" (%2)"
-#: session_state.cc:487
+#: session_state.cc:452
msgid "Session: cannot create session analysis folder \"%1\" (%2)"
msgstr "会è¯: 无法创建会è¯åˆ†æžæ–‡ä»¶å¤¹ \"%1\" (%2)"
-#: session_state.cc:494
+#: session_state.cc:459
msgid "Session: cannot create session plugins folder \"%1\" (%2)"
msgstr "会è¯: 无法创建会è¯æ’件文件夹 \"%1\" (%2)"
-#: session_state.cc:501
-#, fuzzy
+#: session_state.cc:466
msgid "Session: cannot create session externals folder \"%1\" (%2)"
-msgstr "会è¯: 无法创建会è¯åˆ†æžæ–‡ä»¶å¤¹ \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:515
+#: session_state.cc:480
msgid "Session: cannot create session folder \"%1\" (%2)"
msgstr "会è¯: 无法创建会è¯æ–‡ä»¶å¤¹ \"%1\" (%2)"
-#: session_state.cc:548
-#, fuzzy
+#: session_state.cc:514
msgid "Could not open %1 for writing session template"
-msgstr "无法打开 %1 用于写入混音模æ¿"
+msgstr ""
-#: session_state.cc:554
-#, fuzzy
+#: session_state.cc:520
msgid "Could not open session template %1 for reading"
-msgstr "æ— æ³•æ‰“å¼€æ··éŸ³æ¨¡æ¿ %1 用于读å–"
+msgstr ""
-#: session_state.cc:573
+#: session_state.cc:539
msgid "master"
msgstr "主控"
-#: session_state.cc:636
-#, fuzzy
+#: session_state.cc:600
msgid "Could not remove pending capture state at path \"%1\" (%2)"
-msgstr "无法解决路径: %1 (%2)"
+msgstr ""
-#: session_state.cc:660
+#: session_state.cc:624
msgid "could not rename snapshot %1 to %2 (%3)"
msgstr "无法é‡å‘½åå¿«ç…§ %1 到 %2 (%3)"
-#: session_state.cc:688
-#, fuzzy
+#: session_state.cc:652
msgid "Could not remove session file at path \"%1\" (%2)"
-msgstr "无法解决路径: %1 (%2)"
+msgstr ""
-#: session_state.cc:761
+#: session_state.cc:669
msgid ""
"the %1 audio engine is not connected and state saving would lose all I/O "
"connections. Session not saved"
msgstr ""
-#: session_state.cc:812
+#: session_state.cc:720
msgid "state could not be saved to %1"
msgstr ""
-#: session_state.cc:814 session_state.cc:825
-#, fuzzy
+#: session_state.cc:722 session_state.cc:733
msgid "Could not remove temporary session file at path \"%1\" (%2)"
-msgstr "无法创建混音模æ¿ç›®å½• \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:822
+#: session_state.cc:730
msgid "could not rename temporary session file %1 to %2"
msgstr ""
-#: session_state.cc:890
+#: session_state.cc:798
msgid "%1: session file \"%2\" doesn't exist!"
msgstr ""
-#: session_state.cc:902
-#, fuzzy
+#: session_state.cc:810
msgid "Could not understand session file %1"
-msgstr "无法ç†è§£ä¼šè¯åŽ†å²æ–‡ä»¶ \"%1\""
+msgstr ""
-#: session_state.cc:911
+#: session_state.cc:819
msgid "Session file %1 is not a session"
msgstr "会è¯æ–‡ä»¶ %1 ä¸æ˜¯ä¸€ä¸ªä¼šè¯"
-#: session_state.cc:1208
+#: session_state.cc:1125
msgid "programming error: Session: incorrect XML node sent to set_state()"
msgstr ""
-#: session_state.cc:1257
+#: session_state.cc:1179
msgid "Session: XML state has no options section"
msgstr ""
-#: session_state.cc:1262
+#: session_state.cc:1184
msgid "Session: XML state has no metadata section"
msgstr ""
-#: session_state.cc:1273
+#: session_state.cc:1195
msgid "Session: XML state has no sources section"
msgstr ""
-#: session_state.cc:1280
+#: session_state.cc:1202
msgid "Session: XML state has no Tempo Map section"
msgstr ""
-#: session_state.cc:1287
+#: session_state.cc:1209
msgid "Session: XML state has no locations section"
msgstr ""
-#: session_state.cc:1313
+#: session_state.cc:1235
msgid "Session: XML state has no Regions section"
msgstr ""
-#: session_state.cc:1320
+#: session_state.cc:1242
msgid "Session: XML state has no playlists section"
msgstr ""
-#: session_state.cc:1340
+#: session_state.cc:1262
msgid "Session: XML state has no bundles section"
msgstr ""
-#: session_state.cc:1352
+#: session_state.cc:1274
msgid "Session: XML state has no diskstreams section"
msgstr ""
-#: session_state.cc:1360
+#: session_state.cc:1282
msgid "Session: XML state has no routes section"
msgstr ""
-#: session_state.cc:1372
+#: session_state.cc:1294
msgid "Session: XML state has no route groups section"
msgstr ""
-#: session_state.cc:1381
+#: session_state.cc:1303
msgid "Session: XML state has no edit groups section"
msgstr ""
-#: session_state.cc:1388
+#: session_state.cc:1310
msgid "Session: XML state has no mix groups section"
msgstr ""
-#: session_state.cc:1396
+#: session_state.cc:1318
msgid "Session: XML state has no click section"
msgstr ""
-#: session_state.cc:1444
+#: session_state.cc:1360
msgid "Session: cannot create Route from XML description."
msgstr ""
-#: session_state.cc:1448
+#: session_state.cc:1364
msgid "Loaded track/bus %1"
msgstr "载入音轨/总线 %1"
-#: session_state.cc:1546
+#: session_state.cc:1462
msgid "Could not find diskstream for route"
msgstr ""
-#: session_state.cc:1600
+#: session_state.cc:1516
msgid "Session: cannot create Region from XML description."
msgstr ""
-#: session_state.cc:1604
+#: session_state.cc:1520
msgid "Can not load state for region '%1'"
msgstr ""
-#: session_state.cc:1640
+#: session_state.cc:1556
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
msgstr ""
-#: session_state.cc:1668
+#: session_state.cc:1584
msgid "Nested source has no ID info in session file! (ignored)"
msgstr ""
-#: session_state.cc:1680
+#: session_state.cc:1596
msgid "Cannot reconstruct nested source for region %1"
msgstr ""
-#: session_state.cc:1742
+#: session_state.cc:1658
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1750 session_state.cc:1771 session_state.cc:1791
+#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
msgid ""
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1756 session_state.cc:1777 session_state.cc:1797
+#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
msgid ""
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
"%1"
msgstr ""
-#: session_state.cc:1820
+#: session_state.cc:1736
msgid ""
"Session: XMLNode describing an AudioRegion is missing some master sources; "
"ignored"
msgstr ""
-#: session_state.cc:1854
+#: session_state.cc:1770
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
msgstr ""
-#: session_state.cc:1862
+#: session_state.cc:1778
msgid ""
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
msgstr ""
-#: session_state.cc:1868
+#: session_state.cc:1784
msgid ""
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
msgstr ""
-#: session_state.cc:1936
+#: session_state.cc:1852
msgid ""
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
"existing files with similar names"
msgstr ""
-#: session_state.cc:1959
+#: session_state.cc:1875
msgid "Session: cannot create Source from XML description."
msgstr ""
-#: session_state.cc:1993
+#: session_state.cc:1909
msgid "A sound file is missing. It will be replaced by silence."
msgstr ""
-#: session_state.cc:2016
+#: session_state.cc:1932
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
msgstr ""
-#: session_state.cc:2033
-#, fuzzy
+#: session_state.cc:1949
msgid "Could not create templates directory \"%1\" (%2)"
-msgstr "无法创建混音模æ¿ç›®å½• \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2046
+#: session_state.cc:1962
msgid "Template \"%1\" already exists - new version not created"
msgstr ""
-#: session_state.cc:2052
-#, fuzzy
+#: session_state.cc:1968
msgid "Could not create directory for Session template\"%1\" (%2)"
-msgstr "无法创建混音模æ¿ç›®å½• \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2062
+#: session_state.cc:1978
msgid "template not saved"
msgstr "模æ¿æ²¡ä¿å­˜"
-#: session_state.cc:2072
-#, fuzzy
+#: session_state.cc:1988
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
-msgstr "无法创建混音模æ¿ç›®å½• \"%1\" (%2)"
+msgstr ""
-#: session_state.cc:2267
+#: session_state.cc:2183
msgid "Unknown node \"%1\" found in Bundles list from session file"
msgstr ""
-#: session_state.cc:2809 session_state.cc:2815
+#: session_state.cc:2725 session_state.cc:2731
msgid "Cannot expand path %1 (%2)"
msgstr "无法扩展路径 %1 (%2)"
-#: session_state.cc:2868
+#: session_state.cc:2784
msgid "Session: cannot create dead file folder \"%1\" (%2)"
msgstr ""
-#: session_state.cc:2907
+#: session_state.cc:2823
msgid "cannot rename unused file source from %1 to %2 (%3)"
msgstr ""
-#: session_state.cc:2925
+#: session_state.cc:2841
msgid "cannot remove peakfile %1 for %2 (%3)"
msgstr ""
-#: session_state.cc:3227
+#: session_state.cc:3143
msgid "could not backup old history file, current history not saved"
msgstr ""
-#: session_state.cc:3240
+#: session_state.cc:3156
msgid "history could not be saved to %1"
msgstr "历å²æ— æ³•è¢«ä¿å­˜åˆ° %1"
-#: session_state.cc:3243
-#, fuzzy
+#: session_state.cc:3159
msgid "Could not remove history file at path \"%1\" (%2)"
-msgstr "无法解决路径: %1 (%2)"
+msgstr ""
-#: session_state.cc:3247
+#: session_state.cc:3163
msgid "could not restore history file from backup %1 (%2)"
msgstr ""
-#: session_state.cc:3272
+#: session_state.cc:3188
msgid "%1: no history file \"%2\" for this session."
msgstr ""
-#: session_state.cc:3278
+#: session_state.cc:3194
msgid "Could not understand session history file \"%1\""
msgstr "无法ç†è§£ä¼šè¯åŽ†å²æ–‡ä»¶ \"%1\""
-#: session_state.cc:3320
+#: session_state.cc:3236
msgid "Failed to downcast MidiSource for NoteDiffCommand"
msgstr ""
-#: session_state.cc:3331
+#: session_state.cc:3247
msgid "Failed to downcast MidiSource for SysExDiffCommand"
msgstr ""
-#: session_state.cc:3342
+#: session_state.cc:3258
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
msgstr ""
-#: session_state.cc:3350
+#: session_state.cc:3266
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
msgstr ""
-#: session_state.cc:3602
+#: session_state.cc:3502
msgid "Session: unknown diskstream type in XML"
msgstr ""
-#: session_state.cc:3607
+#: session_state.cc:3507
msgid "Session: could not load diskstream via XML state"
msgstr ""
-#: session_time.cc:215
-msgid "Unknown JACK transport state %1 in sync callback"
+#: session_time.cc:214
+msgid "Unknown transport state %1 in sync callback"
msgstr ""
-#: session_transport.cc:168
+#: session_transport.cc:167
msgid "Cannot loop - no loop range defined"
msgstr ""
-#: session_transport.cc:728
+#: session_transport.cc:739
msgid ""
"Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"
msgstr ""
-#: session_transport.cc:1094
+#: session_transport.cc:1105
msgid ""
"Global varispeed cannot be supported while %1 is connected to JACK transport "
"control"
@@ -2273,7 +2221,7 @@ msgstr ""
msgid "attempt to write a non-writable audio file source (%1)"
msgstr ""
-#: sndfilesource.cc:396 utils.cc:507 utils.cc:531 utils.cc:545 utils.cc:564
+#: sndfilesource.cc:396 utils.cc:510 utils.cc:534 utils.cc:548 utils.cc:567
msgid "programming error: %1 %2"
msgstr "程åºé”™è¯¯: %1 %2"
@@ -2493,19 +2441,19 @@ msgstr ""
msgid "programming error: unknown edit mode string \"%1\""
msgstr "程åºé”™è¯¯: 无法识别编辑模å¼å­—符串 \"%1\""
-#: utils.cc:389 utils.cc:418
+#: utils.cc:389 utils.cc:421
msgid "MIDI Timecode"
msgstr "MIDI时间ç "
-#: utils.cc:389 utils.cc:416
+#: utils.cc:389 utils.cc:419
msgid "MTC"
msgstr "MTC"
-#: utils.cc:393 utils.cc:425
+#: utils.cc:393 utils.cc:428
msgid "MIDI Clock"
msgstr "MIDI时钟"
-#: utils.cc:397 utils.cc:412 utils.cc:432
+#: utils.cc:397 utils.cc:415 utils.cc:435
msgid "JACK"
msgstr ""
@@ -2513,88 +2461,18 @@ msgstr ""
msgid "programming error: unknown sync source string \"%1\""
msgstr "程åºé”™è¯¯: 无法识别åŒæ­¥æºå­—符串 \"%1\""
-#: utils.cc:423
-#, fuzzy
+#: utils.cc:426
msgid "M-Clock"
-msgstr "MIDI时钟"
+msgstr ""
-#: utils.cc:429
-#, fuzzy
+#: utils.cc:432
msgid "LTC"
-msgstr "MTC"
+msgstr ""
-#: utils.cc:599
+#: utils.cc:602
msgid "programming error: unknown native header format: %1"
msgstr ""
-#: utils.cc:614
+#: utils.cc:617
msgid "cannot open directory %1 (%2)"
msgstr "无法打开目录 %1 (%2)"
-
-#~ msgid "Session"
-#~ msgstr "会è¯"
-
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "无法ç†è§£ardour文件 %1"
-
-#~ msgid "control protocol XML node has no name property. Ignored."
-#~ msgstr "控制åè®®XML符å·æ²¡æœ‰å称属性. 忽略之"
-
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr "控制åè®® \"%1\" 未知. 忽略之"
-
-#~ msgid "Crossfade: no \"in\" region in state"
-#~ msgstr "淡入淡出: 没有 \"入\" 区域"
-
-#~ msgid "old-style crossfade information - no position information"
-#~ msgstr "旧样å¼æ·¡å…¥æ·¡å‡ºä¿¡æ¯ - 没有ä½ç½®ä¿¡æ¯"
-
-#~ msgid "Preset file %1 exists; not overwriting"
-#~ msgstr "预设文件 %1 已存在; ä¸è¦†ç›–"
-
-#~ msgid "Cannot open preset file %1 (%2)"
-#~ msgstr "无法打开预设文件 %1 (%2)"
-
-#~ msgid "AudioUnit Outputs"
-#~ msgstr "音频å•å…ƒè¾“出"
-
-#~ msgid "AudioUnit Effects"
-#~ msgstr "音频å•å…ƒæ•ˆæžœ"
-
-#~ msgid "AudioUnit (Unknown)"
-#~ msgstr "音频å•å…ƒ(未知)"
-
-#~ msgid "Checking AudioUnit: %1"
-#~ msgstr "检查音频å•å…ƒ %1"
-
-#~ msgid ""
-#~ "%1: could not find configuration file (ardour.rc), canvas will look "
-#~ "broken."
-#~ msgstr "%1: 无法找到é…置文件(ardour.rc), è¯ä¸çœ‹èµ·æ¥ä¼šç ´ç ´çš„."
-
-#~ msgid "VST: cannot load module from \"%1\""
-#~ msgstr "VST: 无法从 %1 载入模å—"
-
-#~ msgid "You asked ardour to not use any VST plugins"
-#~ msgstr "您è¦æ±‚Ardourä¸è¦ä½¿ç”¨ä»»ä½•VSTæ’件"
-
-#~ msgid "Preset %1"
-#~ msgstr "预设 %1"
-
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr "æ¨¡æ¿ \"%1\" 已存在 - 模æ¿æ²¡è¢«é‡å‘½å"
-
-#~ msgid "Midi"
-#~ msgstr "MIDI"
-
-#~ msgid "Unable to create a backup copy of file %1 (%2)"
-#~ msgstr "无法创建 %1 (%2) 的备份文件"
-
-#~ msgid "CoreAudioSource: cannot open file \"%1\" for %2"
-#~ msgstr "核心音频æº: 无法打开文件 \"%1\" 用于 %2"
-
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "路径 (%1) 有歧义"
-
-#~ msgid "LXVST: cannot load module from \"%1\""
-#~ msgstr "LXVST: 无法从 \"%1\" 载入载入模å—"
diff --git a/libs/ardour/port_insert.cc b/libs/ardour/port_insert.cc
index 2519451b89..fa09ea05ac 100644
--- a/libs/ardour/port_insert.cc
+++ b/libs/ardour/port_insert.cc
@@ -116,7 +116,6 @@ PortInsert::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame,
_mtdm->process (nframes, in, out);
- outbuf.set_is_silent (false);
outbuf.set_written (true);
}
diff --git a/libs/ardour/processor.cc b/libs/ardour/processor.cc
index f9590bee11..d571f55688 100644
--- a/libs/ardour/processor.cc
+++ b/libs/ardour/processor.cc
@@ -63,6 +63,7 @@ Processor::Processor(Session& session, const string& name)
, _display_to_user (true)
, _pre_fader (false)
, _ui_pointer (0)
+ , _owner (0)
{
}
diff --git a/libs/ardour/quantize.cc b/libs/ardour/quantize.cc
index a4543d773c..7da1edaaa1 100644
--- a/libs/ardour/quantize.cc
+++ b/libs/ardour/quantize.cc
@@ -62,7 +62,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
to quantize relative to actual session beats (etc.) rather than from the
start of the model.
*/
- const double round_pos = ceil(position / _start_grid) * _start_grid;
+ const double round_pos = round(position / _start_grid) * _start_grid;
const double offset = round_pos - position;
bool even;
@@ -72,10 +72,13 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
even = false;
+ /* TODO 'swing' probably requires a 2nd iteration:
+ * first quantize notes to the grid, then apply beat shift
+ */
for (Evoral::Sequence<MidiModel::TimeType>::Notes::iterator i = (*s).begin(); i != (*s).end(); ++i) {
- double new_start = round ((*i)->time() / _start_grid) * _start_grid + offset;
- double new_end = round ((*i)->end_time() / _end_grid) * _end_grid + offset;
+ double new_start = round (((*i)->time() - offset) / _start_grid) * _start_grid + offset;
+ double new_end = round (((*i)->end_time() - offset) / _end_grid) * _end_grid + offset;
if (_swing > 0.0 && !even) {
@@ -86,6 +89,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
*/
new_start = new_start + (2.0/3.0 * _swing * (next_grid - new_start));
+ new_end = new_end + (2.0/3.0 * _swing * (next_grid - new_start));
} else if (_swing < 0.0 && !even) {
@@ -96,6 +100,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
*/
new_start = new_start - (2.0/3.0 * _swing * (new_start - prev_grid));
+ new_end = new_end - (2.0/3.0 * _swing * (new_start - prev_grid));
}
diff --git a/libs/ardour/rb_effect.cc b/libs/ardour/rb_effect.cc
index a5d47d2668..804b79f87d 100644
--- a/libs/ardour/rb_effect.cc
+++ b/libs/ardour/rb_effect.cc
@@ -20,8 +20,9 @@
#include <algorithm>
#include <cmath>
+#include <rubberband/RubberBandStretcher.h>
+
#include "pbd/error.h"
-#include "rubberband/RubberBandStretcher.h"
#include "ardour/audioregion.h"
#include "ardour/audiosource.h"
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 25ee527e2c..66a8ea706d 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -51,6 +51,7 @@
#include "ardour/midi_port.h"
#include "ardour/monitor_processor.h"
#include "ardour/pannable.h"
+#include "ardour/panner.h"
#include "ardour/panner_shell.h"
#include "ardour/plugin_insert.h"
#include "ardour/port.h"
@@ -69,7 +70,7 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
-PBD::Signal1<void,RouteSortOrderKey> Route::SyncOrderKeys;
+PBD::Signal0<void> Route::SyncOrderKeys;
PBD::Signal0<void> Route::RemoteControlIDChange;
Route::Route (Session& sess, string name, Flag flg, DataType default_type)
@@ -96,6 +97,8 @@ Route::Route (Session& sess, string name, Flag flg, DataType default_type)
, _have_internal_generator (false)
, _solo_safe (false)
, _default_type (default_type)
+ , _order_key (0)
+ , _has_order_key (false)
, _remote_control_id (0)
, _in_configure_processors (false)
, _initial_io_setup (false)
@@ -177,8 +180,7 @@ Route::init ()
Metering::Meter.connect_same_thread (*this, (boost::bind (&Route::meter, this)));
{
- /* run a configure so that the invisible processors get set up */
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
configure_processors (0);
}
@@ -268,52 +270,19 @@ Route::remote_control_id() const
}
bool
-Route::has_order_key (RouteSortOrderKey key) const
+Route::has_order_key () const
{
- return (order_keys.find (key) != order_keys.end());
+ return _has_order_key;
}
uint32_t
-Route::order_key (RouteSortOrderKey key) const
+Route::order_key () const
{
- OrderKeys::const_iterator i = order_keys.find (key);
-
- if (i == order_keys.end()) {
- return 0;
- }
-
- return i->second;
-}
-
-void
-Route::sync_order_keys (RouteSortOrderKey base)
-{
- /* this is called after changes to 1 or more route order keys have been
- * made, and we want to sync up.
- */
-
- OrderKeys::iterator i = order_keys.find (base);
-
- if (i == order_keys.end()) {
- return;
- }
-
- for (OrderKeys::iterator k = order_keys.begin(); k != order_keys.end(); ++k) {
-
- if (k->first != base) {
- DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("%1 set key for %2 to %3 from %4\n",
- name(),
- enum_2_string (k->first),
- i->second,
- enum_2_string (base)));
-
- k->second = i->second;
- }
- }
+ return _order_key;
}
void
-Route::set_remote_control_id_from_order_key (RouteSortOrderKey /*key*/, uint32_t rid)
+Route::set_remote_control_id_explicit (uint32_t rid)
{
if (is_master() || is_monitor() || is_auditioner()) {
/* hard-coded remote IDs, or no remote ID */
@@ -337,18 +306,18 @@ Route::set_remote_control_id_from_order_key (RouteSortOrderKey /*key*/, uint32_t
}
void
-Route::set_order_key (RouteSortOrderKey key, uint32_t n)
+Route::set_order_key (uint32_t n)
{
- OrderKeys::iterator i = order_keys.find (key);
+ _has_order_key = true;
- if (i != order_keys.end() && i->second == n) {
+ if (_order_key == n) {
return;
}
- order_keys[key] = n;
+ _order_key = n;
- DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("%1 order key %2 set to %3\n",
- name(), enum_2_string (key), order_key (key)));
+ DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("%1 order key set to %2\n",
+ name(), order_key ()));
_session.set_dirty ();
}
@@ -450,7 +419,8 @@ Route::process_output_buffers (BufferSet& bufs,
framepos_t start_frame, framepos_t end_frame, pframes_t nframes,
int declick, bool gain_automation_ok)
{
- bufs.set_is_silent (false);
+ Glib::Threads::RWLock::ReaderLock lm (_processor_lock, Glib::Threads::TRY_LOCK);
+ assert(lm.locked());
/* figure out if we're going to use gain automation */
if (gain_automation_ok) {
@@ -574,6 +544,7 @@ Route::monitor_run (framepos_t start_frame, framepos_t end_frame, pframes_t nfra
{
assert (is_monitor());
BufferSet& bufs (_session.get_route_buffers (n_process_buffers()));
+ fill_buffers_with_input (bufs, _input, nframes);
passthru (bufs, start_frame, end_frame, nframes, declick);
}
@@ -977,6 +948,7 @@ Route::add_processor (boost::shared_ptr<Processor> processor, boost::shared_ptr<
}
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
@@ -1018,8 +990,6 @@ Route::add_processor (boost::shared_ptr<Processor> processor, boost::shared_ptr<
// configure redirect ports properly, etc.
{
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
-
if (configure_processors_unlocked (err)) {
pstate.restore ();
configure_processors_unlocked (0); // it worked before we tried to add it ...
@@ -1100,7 +1070,8 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version)
} else if (node.name() == "Send") {
- processor.reset (new Send (_session, _pannable, _mute_master));
+ boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
+ processor.reset (new Send (_session, sendpan, _mute_master));
} else {
@@ -1147,6 +1118,7 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr<Processor>
}
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
@@ -1169,8 +1141,8 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr<Processor>
(*i)->activate ();
}
+ /* Think: does this really need to be called for every processor in the loop? */
{
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
if (configure_processors_unlocked (err)) {
pstate.restore ();
configure_processors_unlocked (0); // it worked before we tried to add it ...
@@ -1346,6 +1318,7 @@ Route::clear_processors (Placement p)
}
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorList new_list;
ProcessorStreams err;
@@ -1390,11 +1363,7 @@ Route::clear_processors (Placement p)
}
_processors = new_list;
-
- {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
- configure_processors_unlocked (&err); // this can't fail
- }
+ configure_processors_unlocked (&err); // this can't fail
}
processor_max_streams.reset();
@@ -1430,6 +1399,10 @@ Route::remove_processor (boost::shared_ptr<Processor> processor, ProcessorStream
processor_max_streams.reset();
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock (), Glib::Threads::NOT_LOCK);
+ if (need_process_lock) {
+ lx.acquire();
+ }
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
@@ -1470,22 +1443,11 @@ Route::remove_processor (boost::shared_ptr<Processor> processor, ProcessorStream
return 1;
}
- if (need_process_lock) {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
-
- if (configure_processors_unlocked (err)) {
- pstate.restore ();
- /* we know this will work, because it worked before :) */
- configure_processors_unlocked (0);
- return -1;
- }
- } else {
- if (configure_processors_unlocked (err)) {
- pstate.restore ();
- /* we know this will work, because it worked before :) */
- configure_processors_unlocked (0);
- return -1;
- }
+ if (configure_processors_unlocked (err)) {
+ pstate.restore ();
+ /* we know this will work, because it worked before :) */
+ configure_processors_unlocked (0);
+ return -1;
}
_have_internal_generator = false;
@@ -1500,6 +1462,9 @@ Route::remove_processor (boost::shared_ptr<Processor> processor, ProcessorStream
}
}
}
+ if (need_process_lock) {
+ lx.release();
+ }
}
reset_instrument_info ();
@@ -1522,6 +1487,7 @@ Route::remove_processors (const ProcessorList& to_be_deleted, ProcessorStreams*
processor_max_streams.reset();
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
@@ -1568,16 +1534,13 @@ Route::remove_processors (const ProcessorList& to_be_deleted, ProcessorStreams*
_output->set_user_latency (0);
- {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
-
- if (configure_processors_unlocked (err)) {
- pstate.restore ();
- /* we know this will work, because it worked before :) */
- configure_processors_unlocked (0);
- return -1;
- }
+ if (configure_processors_unlocked (err)) {
+ pstate.restore ();
+ /* we know this will work, because it worked before :) */
+ configure_processors_unlocked (0);
+ return -1;
}
+ //lx.unlock();
_have_internal_generator = false;
@@ -1795,6 +1758,7 @@ Route::reorder_processors (const ProcessorList& new_order, ProcessorStreams* err
*/
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
@@ -1856,13 +1820,9 @@ Route::reorder_processors (const ProcessorList& new_order, ProcessorStreams* err
/* If the meter is in a custom position, find it and make a rough note of its position */
maybe_note_meter_position ();
- {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
-
- if (configure_processors_unlocked (err)) {
- pstate.restore ();
- return -1;
- }
+ if (configure_processors_unlocked (err)) {
+ pstate.restore ();
+ return -1;
}
}
@@ -1913,24 +1873,8 @@ Route::state(bool full_state)
node->add_property("route-group", _route_group->name());
}
- string order_string;
- OrderKeys::iterator x = order_keys.begin();
-
- while (x != order_keys.end()) {
- order_string += enum_2_string ((*x).first);
- order_string += '=';
- snprintf (buf, sizeof(buf), "%" PRId32, (*x).second);
- order_string += buf;
-
- ++x;
-
- if (x == order_keys.end()) {
- break;
- }
-
- order_string += ':';
- }
- node->add_property ("order-keys", order_string);
+ snprintf (buf, sizeof (buf), "%d", _order_key);
+ node->add_property ("order-key", buf);
node->add_property ("self-solo", (_self_solo ? "yes" : "no"));
snprintf (buf, sizeof (buf), "%d", _soloed_by_others_upstream);
node->add_property ("soloed-by-upstream", buf);
@@ -2131,7 +2075,11 @@ Route::set_state (const XMLNode& node, int version)
set_active (yn, this);
}
- if ((prop = node.property (X_("order-keys"))) != 0) {
+ if ((prop = node.property (X_("order-key"))) != 0) { // New order key (no separate mixer/editor ordering)
+ set_order_key (atoi(prop->value()));
+ }
+
+ if ((prop = node.property (X_("order-keys"))) != 0) { // Deprecated order keys
int32_t n;
@@ -2149,17 +2097,11 @@ Route::set_state (const XMLNode& node, int version)
<< endmsg;
} else {
string keyname = remaining.substr (0, equal);
- RouteSortOrderKey sk;
- if (keyname == "signal") {
- sk = MixerSort;
- } else if (keyname == "editor") {
- sk = EditorSort;
- } else {
- sk = (RouteSortOrderKey) string_2_enum (remaining.substr (0, equal), sk);
+ if ((keyname == "EditorSort") || (keyname == "editor")) {
+ cerr << "Setting " << name() << " order key to " << n << " using saved Editor order." << endl;
+ set_order_key (n);
}
-
- set_order_key (sk, n);
}
}
@@ -2360,17 +2302,11 @@ Route::set_state_2X (const XMLNode& node, int version)
<< endmsg;
} else {
string keyname = remaining.substr (0, equal);
- RouteSortOrderKey sk;
- if (keyname == "signal") {
- sk = MixerSort;
- } else if (keyname == "editor") {
- sk = EditorSort;
- } else {
- sk = (RouteSortOrderKey) string_2_enum (remaining.substr (0, equal), sk);
+ if (keyname == "EditorSort" || keyname == "editor") {
+ info << string_compose(_("Converting deprecated order key for %1 using Editor order %2"), name (), n) << endmsg;
+ set_order_key (n);
}
-
- set_order_key (sk, n);
}
}
@@ -2566,7 +2502,7 @@ Route::set_processor_state (const XMLNode& node)
if (prop->value() == "intsend") {
- processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<Route>(), Delivery::Role (0)));
+ processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<Route>(), Delivery::Aux));
} else if (prop->value() == "ladspa" || prop->value() == "Ladspa" ||
prop->value() == "lv2" ||
@@ -2613,11 +2549,11 @@ Route::set_processor_state (const XMLNode& node)
}
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
_processors = new_order;
if (must_configure) {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
configure_processors_unlocked (0);
}
@@ -2731,6 +2667,7 @@ Route::enable_monitor_send ()
/* master never sends to monitor section via the normal mechanism */
assert (!is_master ());
+ assert (!is_monitor ());
/* make sure we have one */
if (!_monitor_send) {
@@ -2771,7 +2708,8 @@ Route::add_aux_send (boost::shared_ptr<Route> route, boost::shared_ptr<Processor
{
Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
- listener.reset (new InternalSend (_session, _pannable, _mute_master, route, Delivery::Aux));
+ boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
+ listener.reset (new InternalSend (_session, sendpan, _mute_master, route, Delivery::Aux));
}
add_processor (listener, before);
@@ -3198,17 +3136,14 @@ void
Route::listen_position_changed ()
{
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
ProcessorState pstate (this);
- {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
-
- if (configure_processors_unlocked (0)) {
- pstate.restore ();
- configure_processors_unlocked (0); // it worked before we tried to add it ...
- return;
- }
+ if (configure_processors_unlocked (0)) {
+ pstate.restore ();
+ configure_processors_unlocked (0); // it worked before we tried to add it ...
+ return;
}
}
@@ -3224,10 +3159,7 @@ Route::add_export_point()
_capturing_processor.reset (new CapturingProcessor (_session));
_capturing_processor->activate ();
- {
- Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
- configure_processors (0);
- }
+ configure_processors (0);
}
@@ -4178,7 +4110,7 @@ Route::has_external_redirects () const
boost::shared_ptr<Processor>
Route::the_instrument () const
{
- Glib::Threads::RWLock::WriterLock lm (_processor_lock);
+ Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
return the_instrument_unlocked ();
}
@@ -4206,6 +4138,7 @@ Route::non_realtime_locate (framepos_t pos)
}
{
+ //Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
diff --git a/libs/ardour/route_graph.cc b/libs/ardour/route_graph.cc
index 13264ff9fa..ee02afef24 100644
--- a/libs/ardour/route_graph.cc
+++ b/libs/ardour/route_graph.cc
@@ -170,7 +170,7 @@ struct RouteRecEnabledComparator
if (r1->record_enabled()) {
if (r2->record_enabled()) {
/* both rec-enabled, just use signal order */
- return r1->order_key (MixerSort) < r2->order_key (MixerSort);
+ return r1->order_key () < r2->order_key ();
} else {
/* r1 rec-enabled, r2 not rec-enabled, run r2 early */
return false;
@@ -181,7 +181,7 @@ struct RouteRecEnabledComparator
return true;
} else {
/* neither rec-enabled, use signal order */
- return r1->order_key (MixerSort) < r2->order_key (MixerSort);
+ return r1->order_key () < r2->order_key ();
}
}
}
diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc
index e74fd7f8ce..1664f42b35 100644
--- a/libs/ardour/send.cc
+++ b/libs/ardour/send.cc
@@ -29,6 +29,7 @@
#include "ardour/buffer_set.h"
#include "ardour/meter.h"
#include "ardour/io.h"
+#include "ardour/panner_shell.h"
#include "i18n.h"
@@ -80,12 +81,16 @@ Send::Send (Session& s, boost::shared_ptr<Pannable> p, boost::shared_ptr<MuteMas
_bitslot = 0;
}
- boost_debug_shared_ptr_mark_interesting (this, "send");
+ //boost_debug_shared_ptr_mark_interesting (this, "send");
_amp.reset (new Amp (_session));
_meter.reset (new PeakMeter (_session, name()));
add_control (_amp->gain_control ());
+
+ if (panner_shell()) {
+ panner_shell()->Changed.connect_same_thread (*this, boost::bind (&Send::panshell_changed, this));
+ }
}
Send::~Send ()
@@ -284,7 +289,7 @@ Send::can_support_io_configuration (const ChanCount& in, ChanCount& out)
bool
Send::configure_io (ChanCount in, ChanCount out)
{
- if (!_amp->configure_io (in, out) || !_meter->configure_io (in, out)) {
+ if (!_amp->configure_io (in, out)) {
return false;
}
@@ -292,11 +297,21 @@ Send::configure_io (ChanCount in, ChanCount out)
return false;
}
+ if (!_meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()))) {
+ return false;
+ }
+
reset_panner ();
return true;
}
+void
+Send::panshell_changed ()
+{
+ _meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()));
+}
+
bool
Send::set_name (const string& new_name)
{
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 4b30543cb0..d93d689459 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -257,6 +257,7 @@ Session::Session (AudioEngine &eng,
, _step_editors (0)
, _suspend_timecode_transmission (0)
, _speakers (new Speakers)
+ , _order_hint (0)
, ignore_route_processor_changes (false)
, _midi_ports (0)
, _mmc (0)
@@ -558,10 +559,10 @@ Session::setup_ltc ()
{
XMLNode* child = 0;
- _ltc_input.reset (new IO (*this, _("LTC In"), IO::Input));
- _ltc_output.reset (new IO (*this, _("LTC Out"), IO::Output));
+ _ltc_input.reset (new IO (*this, X_("LTC In"), IO::Input));
+ _ltc_output.reset (new IO (*this, X_("LTC Out"), IO::Output));
- if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-In")) != 0) {
+ if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC In"))) != 0) {
_ltc_input->set_state (*(child->children().front()), Stateful::loading_state_version);
} else {
{
@@ -571,7 +572,7 @@ Session::setup_ltc ()
reconnect_ltc_input ();
}
- if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-Out")) != 0) {
+ if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC Out"))) != 0) {
_ltc_output->set_state (*(child->children().front()), Stateful::loading_state_version);
} else {
{
@@ -585,28 +586,30 @@ Session::setup_ltc ()
* IO style of NAME/TYPE-{in,out}N
*/
- _ltc_input->nth (0)->set_name (_("LTC-in"));
- _ltc_output->nth (0)->set_name (_("LTC-out"));
+ _ltc_input->nth (0)->set_name (X_("LTC-in"));
+ _ltc_output->nth (0)->set_name (X_("LTC-out"));
}
void
Session::setup_click ()
{
_clicking = false;
- _click_io.reset (new ClickIO (*this, "click"));
+ _click_io.reset (new ClickIO (*this, X_("Click")));
_click_gain.reset (new Amp (*this));
_click_gain->activate ();
if (state_tree) {
- setup_click_state (*state_tree->root());
+ setup_click_state (state_tree->root());
+ } else {
+ setup_click_state (0);
}
}
void
-Session::setup_click_state (const XMLNode& node)
+Session::setup_click_state (const XMLNode* node)
{
const XMLNode* child = 0;
-
- if ((child = find_named_node (node, "Click")) != 0) {
+
+ if (node && (child = find_named_node (*node, "Click")) != 0) {
/* existing state for Click */
int c = 0;
@@ -802,6 +805,12 @@ Session::remove_monitor_section ()
/* force reversion to Solo-In-Place */
Config->set_solo_control_is_listen_control (false);
+ /* if we are auditioning, cancel it ... this is a workaround
+ to a problem (auditioning does not execute the process graph,
+ which is needed to remove routes when using >1 core for processing)
+ */
+ cancel_audition ();
+
{
/* Hold process lock while doing this so that we don't hear bits and
* pieces of audio as we work on each route.
@@ -832,6 +841,10 @@ Session::remove_monitor_section ()
remove_route (_monitor_out);
auto_connect_master_bus ();
+
+ if (auditioner) {
+ auditioner->connect ();
+ }
}
void
@@ -976,6 +989,10 @@ Session::add_monitor_section ()
(*x)->enable_monitor_send ();
}
}
+
+ if (auditioner) {
+ auditioner->connect ();
+ }
}
void
@@ -1697,7 +1714,7 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
DEBUG_TRACE (DEBUG::Graph, "Routes resorted, order follows:\n");
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
DEBUG_TRACE (DEBUG::Graph, string_compose ("\t%1 signal order %2\n",
- (*i)->name(), (*i)->order_key (MixerSort)));
+ (*i)->name(), (*i)->order_key ()));
}
#endif
@@ -1982,9 +1999,9 @@ Session::auto_connect_route (boost::shared_ptr<Route> route, ChanCount& existing
for (uint32_t i = output_start.get(*t); i < route->n_outputs().get(*t); ++i) {
string port;
- if ((*t) == DataType::MIDI || Config->get_output_auto_connect() & AutoConnectPhysical) {
+ if ((*t) == DataType::MIDI && (Config->get_output_auto_connect() & AutoConnectPhysical)) {
port = physoutputs[(out_offset.get(*t) + i) % nphysical_out];
- } else if ((*t) == DataType::AUDIO && Config->get_output_auto_connect() & AutoConnectMaster) {
+ } else if ((*t) == DataType::AUDIO && (Config->get_output_auto_connect() & AutoConnectMaster)) {
/* master bus is audio only */
if (_master_out && _master_out->n_inputs().get(*t) > 0) {
port = _master_out->input()->ports().port(*t,
@@ -2333,6 +2350,11 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
ChanCount existing_outputs;
uint32_t order = next_control_id();
+ if (_order_hint != 0) {
+ order = _order_hint;
+ _order_hint = 0;
+ }
+
count_existing_track_channels (existing_inputs, existing_outputs);
{
@@ -2394,15 +2416,13 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
ID in most situations.
*/
- if (!r->has_order_key (EditorSort)) {
+ if (!r->has_order_key ()) {
if (r->is_auditioner()) {
/* use an arbitrarily high value */
- r->set_order_key (EditorSort, UINT_MAX);
- r->set_order_key (MixerSort, UINT_MAX);
+ r->set_order_key (UINT_MAX);
} else {
DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("while adding, set %1 to order key %2\n", r->name(), order));
- r->set_order_key (EditorSort, order);
- r->set_order_key (MixerSort, order);
+ r->set_order_key (order);
order++;
}
}
@@ -3713,7 +3733,7 @@ Session::RoutePublicOrderSorter::operator() (boost::shared_ptr<Route> a, boost::
if (b->is_monitor()) {
return false;
}
- return a->order_key (MixerSort) < b->order_key (MixerSort);
+ return a->order_key () < b->order_key ();
}
bool
@@ -4925,8 +4945,7 @@ Session::notify_remote_id_change ()
}
switch (Config->get_remote_model()) {
- case MixerSort:
- case EditorSort:
+ case MixerOrdered:
Route::RemoteControlIDChange (); /* EMIT SIGNAL */
break;
default:
@@ -4935,7 +4954,7 @@ Session::notify_remote_id_change ()
}
void
-Session::sync_order_keys (RouteSortOrderKey sort_key_changed)
+Session::sync_order_keys ()
{
if (deletion_in_progress()) {
return;
@@ -4947,9 +4966,9 @@ Session::sync_order_keys (RouteSortOrderKey sort_key_changed)
opportunity to keep them in sync if they wish to.
*/
- DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("Sync Order Keys, based on %1\n", enum_2_string (sort_key_changed)));
+ DEBUG_TRACE (DEBUG::OrderKeys, "Sync Order Keys.\n");
- Route::SyncOrderKeys (sort_key_changed); /* EMIT SIGNAL */
+ Route::SyncOrderKeys (); /* EMIT SIGNAL */
DEBUG_TRACE (DEBUG::OrderKeys, "\tsync done\n");
}
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 3c46a2e0a6..6bfb250aec 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -83,7 +83,7 @@ Session::process (pframes_t nframes)
*/
try {
- if (!_engine.freewheeling() && Config->get_send_midi_clock() && transport_speed() == 1.0f && midi_clock->has_midi_port()) {
+ if (!_silent && !_engine.freewheeling() && Config->get_send_midi_clock() && (transport_speed() == 1.0f || transport_speed() == 0.0f) && midi_clock->has_midi_port()) {
midi_clock->tick (transport_at_start, nframes);
}
} catch (...) {
@@ -421,7 +421,9 @@ Session::process_with_events (pframes_t nframes)
check_declick_out ();
}
- _engine.split_cycle (this_nframes);
+ if (nframes > 0) {
+ _engine.split_cycle (this_nframes);
+ }
/* now handle this event and all others scheduled for the same time */
@@ -873,7 +875,7 @@ Session::process_audition (pframes_t nframes)
/* if using a monitor section, run it because otherwise we don't hear anything */
- if (auditioner->needs_monitor()) {
+ if (_monitor_out && auditioner->needs_monitor()) {
_monitor_out->monitor_run (_transport_frame, _transport_frame + nframes, nframes, false);
}
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 59bb3fd718..5c3ffae3cc 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -136,14 +136,7 @@ Session::pre_engine_init (string fullpath)
/* discover canonical fullpath */
- char buf[PATH_MAX+1];
- if (!realpath (fullpath.c_str(), buf) && (errno != ENOENT)) {
- error << string_compose(_("Could not use path %1 (%2)"), buf, strerror(errno)) << endmsg;
- destroy ();
- throw failed_constructor();
- }
-
- _path = string(buf);
+ _path = canonical_path(fullpath);
/* we require _path to end with a dir separator */
@@ -1318,7 +1311,7 @@ Session::set_state (const XMLNode& node, int version)
if ((child = find_named_node (node, "Click")) == 0) {
warning << _("Session: XML state has no click section") << endmsg;
} else if (_click_io) {
- setup_click_state (node);
+ setup_click_state (&node);
}
if ((child = find_named_node (node, ControlProtocolManager::state_node_name)) != 0) {
@@ -3483,22 +3476,6 @@ Session::config_changed (std::string p, bool ours)
/* XXX DO SOMETHING HERE TO TELL THE GUI THAT WE NEED
TO SET REMOTE ID'S
*/
- } else if (p == "sync-all-route-ordering") {
-
- /* sync to editor order unless mixer is used for remote IDs
- */
-
- switch (Config->get_remote_model()) {
- case UserOrdered:
- sync_order_keys (EditorSort);
- break;
- case EditorOrdered:
- sync_order_keys (EditorSort);
- break;
- case MixerOrdered:
- sync_order_keys (MixerSort);
- }
-
} else if (p == "initial-program-change") {
if (_mmc->output_port() && Config->get_initial_program_change() >= 0) {
diff --git a/libs/ardour/session_time.cc b/libs/ardour/session_time.cc
index e35910f2df..ab5a470a8a 100644
--- a/libs/ardour/session_time.cc
+++ b/libs/ardour/session_time.cc
@@ -164,12 +164,12 @@ Session::timecode_duration (framecnt_t when, Timecode::Time& timecode) const
}
void
-Session::timecode_duration_string (char* buf, framepos_t when) const
+Session::timecode_duration_string (char* buf, size_t len, framepos_t when) const
{
Timecode::Time timecode;
timecode_duration (when, timecode);
- snprintf (buf, sizeof (buf), "%02" PRIu32 ":%02" PRIu32 ":%02" PRIu32 ":%02" PRIu32, timecode.hours, timecode.minutes, timecode.seconds, timecode.frames);
+ snprintf (buf, len, "%02" PRIu32 ":%02" PRIu32 ":%02" PRIu32 ":%02" PRIu32, timecode.hours, timecode.minutes, timecode.seconds, timecode.frames);
}
void
diff --git a/libs/ardour/session_vst.cc b/libs/ardour/session_vst.cc
index 06a6b80e99..c746a9d388 100644
--- a/libs/ardour/session_vst.cc
+++ b/libs/ardour/session_vst.cc
@@ -22,6 +22,7 @@
#endif
#include <cstdio>
+#include "ardour/audioengine.h"
#include "ardour/session.h"
#include "ardour/tempo.h"
#include "ardour/windows_vst_plugin.h"
@@ -129,30 +130,117 @@ intptr_t Session::vst_callback (
// <value> should contain a mask indicating which fields are required
// (see valid masks above), as some items may require extensive
// conversions
- memset(&_timeInfo, 0, sizeof(_timeInfo));
+ _timeInfo.flags = 0;
+
if (session) {
- _timeInfo.samplePos = session->transport_frame();
+ framepos_t now = session->transport_frame();
+
+ _timeInfo.samplePos = now;
_timeInfo.sampleRate = session->frame_rate();
- _timeInfo.flags = 0;
+
+ const TempoMetric& tm (session->tempo_map().metric_at (now));
if (value & (kVstTempoValid)) {
- const Tempo& t (session->tempo_map().tempo_at (session->transport_frame()));
+ const Tempo& t (tm.tempo());
_timeInfo.tempo = t.beats_per_minute ();
_timeInfo.flags |= (kVstTempoValid);
}
- if (value & (kVstBarsValid)) {
- const Meter& m (session->tempo_map().meter_at (session->transport_frame()));
+ if (value & (kVstTimeSigValid)) {
+ const Meter& m (tm.meter());
_timeInfo.timeSigNumerator = m.divisions_per_bar ();
_timeInfo.timeSigDenominator = m.note_divisor ();
- _timeInfo.flags |= (kVstBarsValid);
+ _timeInfo.flags |= (kVstTimeSigValid);
+ }
+ if ((value & (kVstPpqPosValid)) || (value & (kVstBarsValid))) {
+ Timecode::BBT_Time bbt;
+
+ try {
+ session->tempo_map().bbt_time_rt (now, bbt);
+
+ /* PPQ = pulse per quarter
+ VST's "pulse" is our "division".
+
+ 8 divisions per bar, 1 division = quarter, so 8 quarters per bar, ppq = 1
+ 8 divisions per bar, 1 division = eighth, so 4 quarters per bar, ppq = 2
+ 4 divisions per bar, 1 division = quarter, so 4 quarters per bar, ppq = 1
+ 4 divisions per bar, 1 division = half, so 8 quarters per bar, ppq = 0.5
+ 4 divisions per bar, 1 division = fifth, so (4 * 5/4) quarters per bar, ppq = 5/4
+
+ general: divs_per_bar / (note_type / 4.0)
+ */
+ double ppq_scaling = tm.meter().note_divisor() / 4.0;
+
+ /* Note that this assumes constant meter/tempo throughout the session. Stupid VST
+ */
+ double ppqBar = double(bbt.bars - 1) * tm.meter().divisions_per_bar();
+ double ppqBeat = double(bbt.beats - 1);
+ double ppqTick = double(bbt.ticks) / Timecode::BBT_Time::ticks_per_beat;
+
+ ppqBar *= ppq_scaling;
+ ppqBeat *= ppq_scaling;
+ ppqTick *= ppq_scaling;
+
+ if (value & (kVstPpqPosValid)) {
+ _timeInfo.ppqPos = ppqBar + ppqBeat + ppqTick;
+ _timeInfo.flags |= (kVstPpqPosValid);
+ }
+
+ if (value & (kVstBarsValid)) {
+ _timeInfo.barStartPos = ppqBar;
+ _timeInfo.flags |= (kVstBarsValid);
+ }
+
+ } catch (...) {
+ /* relax */
+ }
+ }
+
+ if (value & (kVstSmpteValid)) {
+ Timecode::Time t;
+
+ session->timecode_time (now, t);
+
+ _timeInfo.smpteOffset = (t.hours * t.rate * 60.0 * 60.0) +
+ (t.minutes * t.rate * 60.0) +
+ (t.seconds * t.rate) +
+ (t.frames) +
+ (t.subframes);
+
+ _timeInfo.smpteOffset *= 80.0; /* VST spec is 1/80th frames */
+
+ if (session->timecode_drop_frames()) {
+ if (session->timecode_frames_per_second() == 30.0) {
+ _timeInfo.smpteFrameRate = 5;
+ } else {
+ _timeInfo.smpteFrameRate = 4; /* 29.97 assumed, thanks VST */
+ }
+ } else {
+ if (session->timecode_frames_per_second() == 24.0) {
+ _timeInfo.smpteFrameRate = 0;
+ } else if (session->timecode_frames_per_second() == 24.975) {
+ _timeInfo.smpteFrameRate = 2;
+ } else if (session->timecode_frames_per_second() == 25.0) {
+ _timeInfo.smpteFrameRate = 1;
+ } else {
+ _timeInfo.smpteFrameRate = 3; /* 30 fps */
+ }
+ }
+ _timeInfo.flags |= (kVstSmpteValid);
}
if (session->transport_speed() != 0.0f) {
- _timeInfo.flags |= kVstTransportPlaying;
+ _timeInfo.flags |= (kVstTransportPlaying);
}
- }
- return (long)&_timeInfo;
+ if (session->get_play_loop()) {
+ }
+
+ } else {
+ _timeInfo.samplePos = 0;
+ _timeInfo.sampleRate = AudioEngine::instance()->sample_rate();
+ }
+
+ return (intptr_t) &_timeInfo;
case audioMasterProcessEvents:
SHOW_CALLBACK ("amc: audioMasterProcessEvents\n");
diff --git a/libs/ardour/slave.cc b/libs/ardour/slave.cc
index e8c63b43c1..c0678ce252 100644
--- a/libs/ardour/slave.cc
+++ b/libs/ardour/slave.cc
@@ -35,6 +35,12 @@ SlaveSessionProxy::frame_rate() const
return session.frame_rate();
}
+pframes_t
+SlaveSessionProxy::frames_per_cycle() const
+{
+ return session.engine().samples_per_cycle();
+}
+
framepos_t
SlaveSessionProxy::audible_frame() const
{
@@ -53,6 +59,13 @@ SlaveSessionProxy::frames_since_cycle_start() const
return session.engine().samples_since_cycle_start();
}
+pframes_t
+SlaveSessionProxy::sample_time_at_cycle_start() const
+{
+ return session.engine().sample_time_at_cycle_start();
+}
+
+
framepos_t
SlaveSessionProxy::frame_time() const
{
diff --git a/libs/ardour/speakers.cc b/libs/ardour/speakers.cc
index 51bae16585..bbad254f6e 100644
--- a/libs/ardour/speakers.cc
+++ b/libs/ardour/speakers.cc
@@ -149,32 +149,73 @@ Speakers::move_speaker (int id, const AngularVector& new_position)
void
Speakers::setup_default_speakers (uint32_t n)
{
+ double o = 180.0;
+
/* default assignment of speaker position for n speakers */
assert (n>0);
switch (n) {
case 1:
- add_speaker (AngularVector (0.0, 0.0));
+ add_speaker (AngularVector (o +0.0, 0.0));
break;
case 2:
- add_speaker (AngularVector (0.0, 0.0));
- add_speaker (AngularVector (180.0, 0,0));
+ add_speaker (AngularVector (o +60.0, 0.0));
+ add_speaker (AngularVector (o -60.0, 0.0));
break;
case 3:
- /* top, bottom kind-of-left & bottom kind-of-right */
- add_speaker (AngularVector (90.0, 0.0));
- add_speaker (AngularVector (215.0, 0,0));
- add_speaker (AngularVector (335.0, 0,0));
+ add_speaker (AngularVector (o +60.0, 0.0));
+ add_speaker (AngularVector (o -60.0, 0.0));
+ add_speaker (AngularVector (o +180.0, 0.0));
break;
case 4:
- /* clockwise from top left */
- add_speaker (AngularVector (135.0, 0.0));
- add_speaker (AngularVector (45.0, 0.0));
- add_speaker (AngularVector (335.0, 0.0));
- add_speaker (AngularVector (215.0, 0.0));
+ /* 4.0 with regular spacing */
+ add_speaker (AngularVector (o +45.0, 0.0));
+ add_speaker (AngularVector (o -45.0, 0.0));
+ add_speaker (AngularVector (o +135.0, 0.0));
+ add_speaker (AngularVector (o -135.0, 0.0));
+ break;
+ case 5:
+ /* 5.0 with regular spacing */
+ add_speaker (AngularVector (o +72.0, 0.0));
+ add_speaker (AngularVector (o -72.0, 0.0));
+ add_speaker (AngularVector (o +0.0, 0.0));
+ add_speaker (AngularVector (o +144.0, 0.0));
+ add_speaker (AngularVector (o -144.0, 0.0));
+ break;
+ case 6:
+ /* 6.0 with regular spacing */
+ add_speaker (AngularVector (o +60.0, 0.0));
+ add_speaker (AngularVector (o -60.0, 0.0));
+ add_speaker (AngularVector (o +0.0, 0.0));
+ add_speaker (AngularVector (o +120.0, 0.0));
+ add_speaker (AngularVector (o -120.0, 0.0));
+ add_speaker (AngularVector (o +180.0, 0.0));
+ break;
+ case 7:
+ /* 7.0 with regular front spacing */
+ add_speaker (AngularVector (o +45.0, 0.0));
+ add_speaker (AngularVector (o -45.0, 0.0));
+ add_speaker (AngularVector (o +0.0, 0.0));
+ add_speaker (AngularVector (o +90.0, 0.0));
+ add_speaker (AngularVector (o -90.0, 0.0));
+ add_speaker (AngularVector (o +150.0, 0.0));
+ add_speaker (AngularVector (o -150.0, 0.0));
+ break;
+ case 10:
+ /* 5+4 with 45°/90° spacing */
+ add_speaker (AngularVector (o +45.0, 0.0));
+ add_speaker (AngularVector (o -45.0, 0.0));
+ add_speaker (AngularVector (o +0.0, 0.0));
+ add_speaker (AngularVector (o +135.0, 0.0));
+ add_speaker (AngularVector (o -135.0, 0.0));
+ add_speaker (AngularVector (o +45.0, 60.0));
+ add_speaker (AngularVector (o -45.0, 60.0));
+ add_speaker (AngularVector (o +135.0, 60.0));
+ add_speaker (AngularVector (o -135.0, 60.0));
+ add_speaker (AngularVector (o +0.0, 90.0));
break;
default:
@@ -188,12 +229,12 @@ Speakers::setup_default_speakers (uint32_t n)
*/
if (n % 2) {
- deg = 90.0 - degree_step;
+ deg = 360 + o + degree_step;
} else {
- deg = 90.0;
+ deg = 360 + o;
}
- for (i = 0; i < n; ++i, deg += degree_step) {
- add_speaker (AngularVector (deg, 0.0));
+ for (i = 0; i < n; ++i, deg -= degree_step) {
+ add_speaker (AngularVector (fmod(deg, 360), 0.0));
}
}
}
diff --git a/libs/ardour/srcfilesource.cc b/libs/ardour/srcfilesource.cc
new file mode 100644
index 0000000000..6af4aaa9d8
--- /dev/null
+++ b/libs/ardour/srcfilesource.cc
@@ -0,0 +1,160 @@
+/*
+ Copyright (C) 2014 Paul Davis
+ Written by: Robin Gareus <robin@gareus.org>
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "pbd/error.h"
+#include "pbd/failed_constructor.h"
+
+#include "ardour/audiofilesource.h"
+#include "ardour/debug.h"
+#include "ardour/srcfilesource.h"
+
+#include "i18n.h"
+
+using namespace ARDOUR;
+using namespace PBD;
+
+/* see disk_io_chunk_frames */
+const uint32_t SrcFileSource::blocksize = 65536U;
+
+SrcFileSource::SrcFileSource (Session& s, boost::shared_ptr<AudioFileSource> src, SrcQuality srcq)
+ : Source(s, DataType::AUDIO, src->name(), Flag (src->flags() & ~(Writable|Removable|RemovableIfEmpty|RemoveAtDestroy)))
+ , AudioFileSource (s, src->path(), Flag (src->flags() & ~(Writable|Removable|RemovableIfEmpty|RemoveAtDestroy)))
+ , _source (src)
+ , _src_state (0)
+ , _source_position(0)
+ , _target_position(0)
+ , _fract_position(0)
+{
+ assert(_source->n_channels() == 1);
+
+ int src_type = SRC_SINC_BEST_QUALITY;
+
+ switch (srcq) {
+ case SrcBest:
+ src_type = SRC_SINC_BEST_QUALITY;
+ break;
+ case SrcGood:
+ src_type = SRC_SINC_MEDIUM_QUALITY;
+ break;
+ case SrcQuick:
+ src_type = SRC_SINC_FASTEST;
+ break;
+ case SrcFast:
+ src_type = SRC_ZERO_ORDER_HOLD;
+ break;
+ case SrcFastest:
+ src_type = SRC_LINEAR;
+ break;
+ }
+
+
+ _ratio = s.nominal_frame_rate() / _source->sample_rate();
+ _src_data.src_ratio = _ratio;
+
+ src_buffer_size = ceil((double)blocksize / _ratio) + 2;
+ _src_buffer = new float[src_buffer_size];
+
+ int err;
+ if ((_src_state = src_new (src_type, 1, &err)) == 0) {
+ error << string_compose(_("Import: src_new() failed : %1"), src_strerror (err)) << endmsg ;
+ throw failed_constructor ();
+ }
+}
+
+SrcFileSource::~SrcFileSource ()
+{
+ DEBUG_TRACE (DEBUG::AudioPlayback, "SrcFileSource::~SrcFileSource\n");
+ _src_state = src_delete (_src_state) ;
+ delete [] _src_buffer;
+}
+
+framecnt_t
+SrcFileSource::read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const
+{
+ int err;
+ const double srccnt = cnt / _ratio;
+
+ if (_target_position != start) {
+ DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("SRC: reset %1 -> %2\n", _target_position, start));
+ src_reset(_src_state);
+ _fract_position = 0;
+ _source_position = start / _ratio;
+ _target_position = start;
+ }
+
+ const framecnt_t scnt = ceilf(srccnt - _fract_position);
+ _fract_position += (scnt - srccnt);
+
+#ifndef NDEBUG
+ if (scnt >= src_buffer_size) {
+ DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("SRC: CRASH AHEAD :) %1 >= %2 (fract=%3, cnt=%4)\n",
+ scnt, src_buffer_size, _fract_position, cnt));
+ }
+#endif
+ assert(scnt < src_buffer_size);
+
+ _src_data.input_frames = _source->read (_src_buffer, _source_position, scnt);
+
+ if ((framecnt_t) _src_data.input_frames < scnt
+ || _source_position + scnt >= _source->length(0)) {
+ _src_data.end_of_input = true;
+ _target_position += _src_data.input_frames * _ratio;
+ DEBUG_TRACE (DEBUG::AudioPlayback, "SRC: END OF INPUT\n");
+ } else {
+ _src_data.end_of_input = false;
+ _target_position += cnt;
+ }
+
+ _src_data.output_frames = cnt;
+ _src_data.data_in = _src_buffer;
+ _src_data.data_out = dst;
+
+ if (_src_data.end_of_input) {
+ _src_data.output_frames = std::min ((long)floor(_src_data.input_frames * _ratio), _src_data.output_frames);
+ }
+
+
+ if ((err = src_process (_src_state, &_src_data))) {
+ error << string_compose(_("SrcFileSource: %1"), src_strerror (err)) << endmsg ;
+ return 0;
+ }
+
+ if (_src_data.end_of_input && _src_data.output_frames_gen <= 0) {
+ return 0;
+ }
+
+ _source_position += _src_data.input_frames_used;
+
+ framepos_t saved_target = _target_position;
+ framecnt_t generated = _src_data.output_frames_gen;
+
+ while (generated < cnt) {
+ DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("SRC: recurse for %1 samples\n", cnt - generated));
+ framecnt_t g = read_unlocked(dst + generated, _target_position, cnt - generated);
+ generated += g;
+ if (g == 0) break;
+ }
+ _target_position = saved_target;
+
+ DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("SRC: in: %1-> want: %2 || got: %3 total: %4\n",
+ _src_data.input_frames, _src_data.output_frames, _src_data.output_frames_gen, generated));
+
+ return generated;
+}
diff --git a/libs/ardour/test/audio_engine_test.cc b/libs/ardour/test/audio_engine_test.cc
new file mode 100644
index 0000000000..b992caf73e
--- /dev/null
+++ b/libs/ardour/test/audio_engine_test.cc
@@ -0,0 +1,53 @@
+#include <iostream>
+
+#include "ardour/audioengine.h"
+#include "ardour/audio_backend.h"
+#include "ardour/backend_search_path.h"
+
+#include "audio_engine_test.h"
+#include "test_common.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (AudioEngineTest);
+
+using namespace std;
+using namespace ARDOUR;
+using namespace PBD;
+
+void
+print_audio_backend_info (AudioBackendInfo const* abi)
+{
+ cerr << "Audio Backend, name:" << abi->name << endl;
+}
+
+void
+AudioEngineTest::test_backends ()
+{
+ AudioEngine* engine = AudioEngine::create ();
+
+ CPPUNIT_ASSERT (engine);
+
+ std::vector<AudioBackendInfo const *> backends = engine->available_backends ();
+
+ CPPUNIT_ASSERT (backends.size () != 0);
+
+ for (std::vector<AudioBackendInfo const *>::const_iterator i = backends.begin();
+ i != backends.end(); ++i) {
+ print_audio_backend_info(*i);
+ }
+}
+
+void
+AudioEngineTest::test_start ()
+{
+ AudioEngine* engine = AudioEngine::create ();
+
+ CPPUNIT_ASSERT_NO_THROW (engine->set_default_backend ());
+
+ init_post_engine ();
+
+ CPPUNIT_ASSERT (engine->start () == 0);
+
+ // sleep
+ // stop
+ // destroy
+}
diff --git a/libs/ardour/test/audio_engine_test.h b/libs/ardour/test/audio_engine_test.h
new file mode 100644
index 0000000000..9a6d9cc241
--- /dev/null
+++ b/libs/ardour/test/audio_engine_test.h
@@ -0,0 +1,14 @@
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+class AudioEngineTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE (AudioEngineTest);
+ CPPUNIT_TEST (test_backends);
+ CPPUNIT_TEST (test_start);
+ CPPUNIT_TEST_SUITE_END ();
+
+public:
+ void test_backends ();
+ void test_start ();
+};
diff --git a/libs/ardour/test/control_surfaces_test.cc b/libs/ardour/test/control_surfaces_test.cc
index f82945c3ce..63c5e33c6f 100644
--- a/libs/ardour/test/control_surfaces_test.cc
+++ b/libs/ardour/test/control_surfaces_test.cc
@@ -35,7 +35,7 @@ ControlSurfacesTest::instantiateAndTeardownTest ()
ControlProtocolManager& m = ControlProtocolManager::instance ();
for (list<ControlProtocolInfo*>::iterator i = m.control_protocol_info.begin(); i != m.control_protocol_info.end(); ++i) {
- m.instantiate (**i);
- m.teardown (**i);
+ m.activate (**i);
+ m.deactivate (**i);
}
}
diff --git a/libs/ardour/test/interpolation_test.cc b/libs/ardour/test/interpolation_test.cc
index 23789f826f..e8ed22d03b 100644
--- a/libs/ardour/test/interpolation_test.cc
+++ b/libs/ardour/test/interpolation_test.cc
@@ -106,6 +106,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (1.0);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES * cubic.speed()), result);
for (int i = 0; i < NUM_SAMPLES; i += INTERVAL) {
CPPUNIT_ASSERT_EQUAL (1.0f, output[i]);
@@ -116,6 +117,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (0.5);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES * cubic.speed()), result);
for (int i = 0; i < NUM_SAMPLES; i += (INTERVAL / cubic.speed() +0.5)) {
CPPUNIT_ASSERT_EQUAL (1.0f, output[i]);
@@ -126,6 +128,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (0.2);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES * cubic.speed()), result);
// cout << "\nSpeed: 0.02";
@@ -133,6 +136,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (0.02);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES * cubic.speed()), result);
/* This one fails due too error accumulation
@@ -150,6 +154,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (2.0);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES / 2, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES / 2, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES / 2 * cubic.speed()), result);
for (int i = 0; i < NUM_SAMPLES / 2; i += (INTERVAL / cubic.speed() +0.5)) {
CPPUNIT_ASSERT_EQUAL (1.0f, output[i]);
@@ -159,6 +164,7 @@ InterpolationTest::cubicInterpolationTest ()
cubic.set_speed (10.0);
cubic.set_target_speed (cubic.speed());
result = cubic.interpolate (0, NUM_SAMPLES / 10, input, output);
+ CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES / 10, NULL, NULL));
CPPUNIT_ASSERT_EQUAL ((framecnt_t)(NUM_SAMPLES / 10 * cubic.speed()), result);
for (int i = 0; i < NUM_SAMPLES / 10; i += (INTERVAL / cubic.speed() +0.5)) {
CPPUNIT_ASSERT_EQUAL (1.0f, output[i]);
diff --git a/libs/ardour/thread_buffers.cc b/libs/ardour/thread_buffers.cc
index fd3160bb15..e469187ce9 100644
--- a/libs/ardour/thread_buffers.cc
+++ b/libs/ardour/thread_buffers.cc
@@ -60,7 +60,7 @@ ThreadBuffers::ensure_buffers (ChanCount howmany)
for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
size_t count = std::max (scratch_buffers->available().get(*t), howmany.get(*t));
- size_t size = _engine->raw_buffer_size (*t);
+ size_t size = _engine->raw_buffer_size (*t) / sizeof (Sample);
scratch_buffers->ensure_buffers (*t, count, size);
mix_buffers->ensure_buffers (*t, count, size);
@@ -68,12 +68,14 @@ ThreadBuffers::ensure_buffers (ChanCount howmany)
route_buffers->ensure_buffers (*t, count, size);
}
+ size_t audio_buffer_size = _engine->raw_buffer_size (DataType::AUDIO) / sizeof (Sample);
+
delete [] gain_automation_buffer;
- gain_automation_buffer = new gain_t[_engine->raw_buffer_size (DataType::AUDIO)];
+ gain_automation_buffer = new gain_t[audio_buffer_size];
delete [] send_gain_automation_buffer;
- send_gain_automation_buffer = new gain_t[_engine->raw_buffer_size (DataType::AUDIO)];
+ send_gain_automation_buffer = new gain_t[audio_buffer_size];
- allocate_pan_automation_buffers (_engine->raw_buffer_size (DataType::AUDIO), howmany.n_audio(), false);
+ allocate_pan_automation_buffers (audio_buffer_size, howmany.n_audio(), false);
}
void
diff --git a/libs/ardour/ticker.cc b/libs/ardour/ticker.cc
index 9a29df2641..15326af882 100644
--- a/libs/ardour/ticker.cc
+++ b/libs/ardour/ticker.cc
@@ -38,58 +38,66 @@ class MidiClockTicker::Position : public Timecode::BBT_Time
{
public:
- Position() : speed(0.0f), frame(0) { }
- ~Position() { }
-
- /** Sync timing information taken from the given Session
- @return True if timings differed */
- bool sync (Session* s) {
-
- bool didit = false;
-
- double sp = s->transport_speed();
- framecnt_t fr = s->transport_frame();
-
- if (speed != sp) {
- speed = sp;
- didit = true;
- }
-
- if (frame != fr) {
- frame = fr;
- didit = true;
- }
-
- /* Midi beats and clocks always gets updated for now */
-
- s->bbt_time (this->frame, *this);
-
- const TempoMap& tempo = s->tempo_map();
-
- const double divisions = tempo.meter_at(frame).divisions_per_bar();
- const double divisor = tempo.meter_at(frame).note_divisor();
- const double qnote_scale = divisor * 0.25f;
-
- /** Midi Beats in terms of Song Position Pointer is equivalent to total
- sixteenth notes at 'time' */
-
- midi_beats = (((bars - 1) * divisions) + beats - 1);
- midi_beats += (double)ticks / (double)Position::ticks_per_beat * qnote_scale;
- midi_beats *= 16.0f / divisor;
-
- midi_clocks = midi_beats * 6.0f;
-
- return didit;
- }
-
- double speed;
- framecnt_t frame;
- double midi_beats;
- double midi_clocks;
-
- void print (std::ostream& s) {
- s << "frames: " << frame << " midi beats: " << midi_beats << " speed: " << speed;
- }
+ Position() : speed(0.0f), frame(0), midi_beats(0) { }
+ ~Position() { }
+
+ /** Sync timing information taken from the given Session
+ * @return True if timings differed
+ */
+
+ bool sync (Session* s) {
+
+ bool changed = false;
+
+ double sp = s->transport_speed();
+ framecnt_t fr = s->transport_frame();
+
+ if (speed != sp) {
+ speed = sp;
+ changed = true;
+ }
+
+ if (frame != fr) {
+ frame = fr;
+ changed = true;
+ }
+
+ /* Midi beats and clocks always gets updated for now */
+
+ s->bbt_time (this->frame, *this);
+
+ const TempoMap& tempo = s->tempo_map();
+
+ const double divisions = tempo.meter_at(frame).divisions_per_bar();
+ const double divisor = tempo.meter_at(frame).note_divisor();
+ const double qnote_scale = divisor * 0.25f;
+ double mb;
+
+ /** Midi Beats in terms of Song Position Pointer is equivalent to total
+ * sixteenth notes at 'time'
+ */
+
+ mb = (((bars - 1) * divisions) + beats - 1);
+ mb += (double)ticks / (double)Position::ticks_per_beat * qnote_scale;
+ mb *= 16.0f / divisor;
+
+ if (mb != midi_beats) {
+ midi_beats = mb;
+ midi_clocks = midi_beats * 6.0f;
+ changed = true;
+ }
+
+ return changed;
+ }
+
+ double speed;
+ framecnt_t frame;
+ double midi_beats;
+ double midi_clocks;
+
+ void print (std::ostream& s) {
+ s << "frames: " << frame << " midi beats: " << midi_beats << " speed: " << speed;
+ }
};
@@ -127,7 +135,7 @@ MidiClockTicker::session_located()
{
DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Session Located: %1, speed: %2\n", _session->transport_frame(), _session->transport_speed()));
- if (0 == _session || ! _pos->sync (_session)) {
+ if (!_session || !_pos->sync (_session)) {
return;
}
@@ -212,37 +220,30 @@ MidiClockTicker::transport_looped()
void
MidiClockTicker::tick (const framepos_t& /* transport_frame */, pframes_t nframes)
{
- if (!Config->get_send_midi_clock() || _session == 0 || _session->transport_speed() != 1.0f || _midi_port == 0) {
+ if (!Config->get_send_midi_clock() || _session == 0 || _midi_port == 0) {
return;
}
if (_send_pos) {
if (_pos->speed == 0.0f) {
- uint32_t where = llrint (_pos->midi_beats);
- send_position_event (where, 0, nframes);
+ send_position_event (llrint (_pos->midi_beats), 0, nframes);
} else if (_pos->speed == 1.0f) {
-#if 1
- /* Experimental. To really do this and have accuracy, the
- stop/locate/continue sequence would need queued to send immediately
- before the next midi clock. */
-
send_stop_event (0, nframes);
if (_pos->frame == 0) {
send_start_event (0, nframes);
} else {
- uint32_t where = llrint (_pos->midi_beats);
- send_position_event (where, 0, nframes);
+ send_position_event (llrint (_pos->midi_beats), 0, nframes);
send_continue_event (0, nframes);
}
-#endif
} else {
/* Varispeed not supported */
}
- _send_pos = true;
+ _send_pos = false;
}
+
if (_send_state) {
if (_pos->speed == 1.0f) {
if (_session->get_play_loop()) {
@@ -270,6 +271,10 @@ MidiClockTicker::tick (const framepos_t& /* transport_frame */, pframes_t nframe
_send_state = false;
}
+ if (_session->transport_speed() != 1.0f) {
+ /* no varispeed support and nothing to do after this if stopped */
+ return;
+ }
const framepos_t end = _pos->frame + nframes;
double iter = _last_tick;
@@ -317,11 +322,12 @@ MidiClockTicker::send_midi_clock_event (pframes_t offset, pframes_t nframes)
return;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Tick with offset %1\n", offset));
+ static uint8_t msg = MIDI_CMD_COMMON_CLOCK;
- static uint8_t tick_byte = { MIDI_CMD_COMMON_CLOCK };
MidiBuffer& mb (_midi_port->get_midi_buffer (nframes));
- mb.push_back (offset, 1, &tick_byte);
+ mb.push_back (offset, 1, &msg);
+
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Tick with offset %1\n", offset));
}
void
@@ -331,11 +337,11 @@ MidiClockTicker::send_start_event (pframes_t offset, pframes_t nframes)
return;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Start %1\n", _last_tick));
-
- static uint8_t tick_byte = { MIDI_CMD_COMMON_START };
+ static uint8_t msg = { MIDI_CMD_COMMON_START };
MidiBuffer& mb (_midi_port->get_midi_buffer (nframes));
- mb.push_back (offset, 1, &tick_byte);
+ mb.push_back (offset, 1, &msg);
+
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Start %1\n", _last_tick));
}
void
@@ -345,11 +351,11 @@ MidiClockTicker::send_continue_event (pframes_t offset, pframes_t nframes)
return;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Continue %1\n", _last_tick));
-
- static uint8_t tick_byte = { MIDI_CMD_COMMON_CONTINUE };
+ static uint8_t msg = { MIDI_CMD_COMMON_CONTINUE };
MidiBuffer& mb (_midi_port->get_midi_buffer (nframes));
- mb.push_back (offset, 1, &tick_byte);
+ mb.push_back (offset, 1, &msg);
+
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Continue %1\n", _last_tick));
}
void
@@ -359,11 +365,11 @@ MidiClockTicker::send_stop_event (pframes_t offset, pframes_t nframes)
return;
}
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Stop %1\n", _last_tick));
-
- static uint8_t tick_byte = { MIDI_CMD_COMMON_STOP };
+ static uint8_t msg = MIDI_CMD_COMMON_STOP;
MidiBuffer& mb (_midi_port->get_midi_buffer (nframes));
- mb.push_back (offset, 1, &tick_byte);
+ mb.push_back (offset, 1, &msg);
+
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Stop %1\n", _last_tick));
}
void
@@ -387,5 +393,7 @@ MidiClockTicker::send_position_event (uint32_t midi_beats, pframes_t offset, pfr
MidiBuffer& mb (_midi_port->get_midi_buffer (nframes));
mb.push_back (offset, 3, &msg[0]);
- DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Song Position Sent: %1\n", midi_beats));
+ DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Song Position Sent: %1 to %2 (events now %3, buf = %4)\n", midi_beats, _midi_port->name(),
+ mb.size(), &mb));
+
}
diff --git a/libs/ardour/utils.cc b/libs/ardour/utils.cc
index 5356616324..d1d2372977 100644
--- a/libs/ardour/utils.cc
+++ b/libs/ardour/utils.cc
@@ -234,6 +234,41 @@ cmp_nocase (const string& s, const string& s2)
return (s2.size() == s.size()) ? 0 : (s.size() < s2.size()) ? -1 : 1;
}
+int cmp_nocase_utf8 (const string& s1, const string& s2)
+{
+ const char *cstr1 = s1.c_str();
+ const char *cstr2 = s2.c_str();
+ gchar *cstr1folded = NULL;
+ gchar *cstr2folded = NULL;
+ int retval;
+
+ if (!g_utf8_validate (cstr1, -1, NULL) ||
+ !g_utf8_validate (cstr2, -1, NULL)) {
+ // fall back to comparing ASCII
+ return g_ascii_strcasecmp (cstr1, cstr2);
+ }
+
+ cstr1folded = g_utf8_casefold (cstr1, -1);
+ cstr2folded = g_utf8_casefold (cstr2, -1);
+
+ if (cstr1folded && cstr2folded) {
+ retval = strcmp (cstr1folded, cstr2folded);
+ } else {
+ // this shouldn't happen, make the best of it
+ retval = g_ascii_strcasecmp (cstr1, cstr2);
+ }
+
+ if (cstr1folded) {
+ g_free (cstr1folded);
+ }
+
+ if (cstr2folded) {
+ g_free (cstr2folded);
+ }
+
+ return retval;
+}
+
int
touch_file (string path)
{
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 5eafe7a612..5c9c94bdac 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -298,7 +298,7 @@ VSTPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor& desc)
char label[64];
/* some VST plugins expect this buffer to be zero-filled */
- memset (label, sizeof (label), 0);
+ memset (label, 0, sizeof (label));
_plugin->dispatcher (_plugin, effGetParamName, which, 0, label, 0);
@@ -486,7 +486,7 @@ string
VSTPlugin::describe_parameter (Evoral::Parameter param)
{
char name[64];
- memset (name, sizeof (name), 0);
+ memset (name, 0, sizeof (name));
/* some VST plugins expect this buffer to be zero-filled */
@@ -528,23 +528,44 @@ VSTPlugin::connect_and_run (BufferSet& bufs,
{
Plugin::connect_and_run (bufs, in_map, out_map, nframes, offset);
- // VC++ doesn't support this C99 extension. Use alloca instead of dynamic array (rather than std::vector which allocs on the heap)
+ ChanCount bufs_count;
+ bufs_count.set(DataType::AUDIO, 1);
+ bufs_count.set(DataType::MIDI, 1);
+
+ BufferSet& silent_bufs = _session.get_silent_buffers(bufs_count);
+ BufferSet& scratch_bufs = _session.get_scratch_buffers(bufs_count);
+
+ /* VC++ doesn't support the C99 extension that allows
+
+ typeName foo[variableDefiningSize];
+
+ Use alloca instead of dynamic array (rather than std::vector which
+ allocs on the heap) because this is realtime code.
+ */
+
float** ins = (float**)alloca(_plugin->numInputs*sizeof(float*));
float** outs = (float**)alloca(_plugin->numInputs*sizeof(float*));
- int32_t i;
- const uint32_t nbufs = bufs.count().n_audio();
+ int32_t i;
- int in_index = 0;
+ uint32_t in_index = 0;
for (i = 0; i < (int32_t) _plugin->numInputs; ++i) {
- ins[i] = bufs.get_audio(min((uint32_t) in_index, nbufs - 1)).data() + offset;
- in_index++;
+ uint32_t index;
+ bool valid = false;
+ index = in_map.get(DataType::AUDIO, in_index++, &valid);
+ ins[i] = (valid)
+ ? bufs.get_audio(index).data(offset)
+ : silent_bufs.get_audio(0).data(offset);
}
- int out_index = 0;
+ uint32_t out_index = 0;
for (i = 0; i < (int32_t) _plugin->numOutputs; ++i) {
- outs[i] = bufs.get_audio(min((uint32_t) out_index, nbufs - 1)).data() + offset;
- out_index++;
+ uint32_t index;
+ bool valid = false;
+ index = out_map.get(DataType::AUDIO, out_index++, &valid);
+ outs[i] = (valid)
+ ? bufs.get_audio(index).data(offset)
+ : scratch_bufs.get_audio(0).data(offset);
}
if (bufs.count().n_midi() > 0) {
diff --git a/libs/ardour/vumeterdsp.cc b/libs/ardour/vumeterdsp.cc
index a3d0ec23c1..edd9fa5831 100644
--- a/libs/ardour/vumeterdsp.cc
+++ b/libs/ardour/vumeterdsp.cc
@@ -39,7 +39,7 @@ Vumeterdsp::~Vumeterdsp (void)
}
-void Vumeterdsp::process (float *p, int n)
+void Vumeterdsp::process (float const *p, int n)
{
float z1, z2, m, t1, t2;
@@ -86,6 +86,6 @@ void Vumeterdsp::reset ()
void Vumeterdsp::init (float fsamp)
{
- _w = 11.1f / fsamp;
+ _w = 11.1f / fsamp;
_g = 1.5f * 1.571f;
}
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index e734582197..56c864ca50 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -1,4 +1,4 @@
-1#!/usr/bin/env python
+#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
from waflib import Options
import os
@@ -201,6 +201,7 @@ libardour_sources = [
'source.cc',
'source_factory.cc',
'speakers.cc',
+ 'srcfilesource.cc',
'strip_silence.cc',
'revision.cc',
'tape_file_matcher.cc',
@@ -246,9 +247,10 @@ def configure(conf):
'libardour3', conf.env['MAJOR'], conf.env['MINOR'], 0,
'LIBARDOUR_API', 'ardour/libardour_visibility.h')
autowaf.configure(conf)
- if Options.options.dist_target == 'auto':
- if re.search ("linux", sys.platform) != None:
- autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA')
+ autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
+ atleast_version='0.3.2')
+ autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO4',
+ atleast_version='0.4.0', mandatory=False)
autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
if Options.options.dist_target != 'mingw':
autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF',
@@ -260,9 +262,6 @@ def configure(conf):
autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP',
atleast_version='2.0')
- if re.search ("linux", sys.platform) != None:
- autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA')
-
if Options.options.lv2:
autowaf.check_pkg(conf, 'lv2', uselib_store='LV2',
atleast_version='1.0.0', mandatory=True)
@@ -292,10 +291,9 @@ def configure(conf):
autowaf.check_pkg(conf, 'libcurl', uselib_store='CURL',
atleast_version='7.0.0')
- # we don't try to detect this, since its part of our source tree
-
- conf.define('HAVE_RUBBERBAND', 1) # controls whether we think we have it
- conf.define('USE_RUBBERBAND', 1) # controls whether we actually use it
+ # controls whether we actually use it in preference to soundtouch
+ # Note: as of 2104, soundtouch (WSOLA) has been out-of-use for years.
+ conf.define('USE_RUBBERBAND', 1)
conf.define('CURRENT_SESSION_FILE_VERSION', CURRENT_SESSION_FILE_VERSION)
@@ -323,17 +321,13 @@ def build(bld):
# major increment <=> incompatible changes
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
- LIBARDOUR_LIB_VERSION = "3.0.0."
+ LIBARDOUR_LIB_VERSION = "3.0.0"
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=libardour_sources)
# macros for this shared library
- obj.defines = [ 'LIBARDOUR_DLL=1', 'LIBARDOUR_DLL_EXPORTS=1' ]
- # macros for this other internal shared libraries that we use
- obj.defines += [ 'LIBEVORAL_DLL=1', 'LIBMIDIPP_DLL=1', 'LIBPBD_DLL=1' ]
- obj.cflags = [ '-fvisibility=hidden' ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBARDOUR_DLL_EXPORTS=1' ]
else:
obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=libardour_sources)
obj.cxxflags = [ '-fPIC' ]
@@ -346,10 +340,16 @@ def build(bld):
obj.target = 'ardour'
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
- 'OSX','BOOST','CURL','DL']
- obj.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer','libltc','libtimecode']
+ 'OSX','BOOST','CURL','DL','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
+ obj.use = ['libpbd','libmidipp','libevoral',
+ 'libaudiographer',
+ 'libtimecode',
+ ]
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ obj.uselib.extend(['VAMPSDK', 'LIBLTC'])
+ else:
+ obj.use.extend(['librubberband', 'libltc_includes', 'libltc'])
+
obj.vnum = LIBARDOUR_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
obj.defines += [
@@ -413,17 +413,18 @@ def build(bld):
testcommon.source = ['test/testrunner.cc', 'test/test_needing_session.cc',
'test/test_common.cc', 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc']
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
- 'SAMPLERATE','XML','LRDF','COREAUDIO']
- testcommon.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer','libltc','ardour']
+ 'SAMPLERATE','XML','LRDF','COREAUDIO','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
+ testcommon.use = ['libpbd','libmidipp','libevoral',
+ 'libaudiographer','ardour']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ testcommon.uselib.extend(['LIBLTC',])
+ else:
+ testcommon.use.extend(['libltc', 'librubberband'])
testcommon.defines = [
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.join(
os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
- 'VAMP_DIR="' + os.path.join(
- os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'
]
testcommon.name = 'testcommon'
@@ -436,6 +437,7 @@ def build(bld):
testcommon.source += [ 'sse_functions_64bit.s' ]
if bld.env['SINGLE_TESTS']:
+ create_ardour_test_program(bld, obj.includes, 'audio_engine_test', 'test_audio_engine', ['test/audio_engine_test.cc'])
create_ardour_test_program(bld, obj.includes, 'automation_list_property_test', 'test_automation_list_property', ['test/automation_list_property_test.cc'])
create_ardour_test_program(bld, obj.includes, 'bbt', 'test_bbt', ['test/bbt_test.cc'])
create_ardour_test_program(bld, obj.includes, 'tempo', 'test_tempo', ['test/tempo_test.cc'])
@@ -454,6 +456,7 @@ def build(bld):
create_ardour_test_program(bld, obj.includes, 'session_test', 'test_session', ['test/session_test.cc'])
test_sources = '''
+ test/audio_engine_test.cc
test/automation_list_property_test.cc
test/bbt_test.cc
test/tempo_test.cc
@@ -502,8 +505,6 @@ def build(bld):
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.join(
os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
- 'VAMP_DIR="' + os.path.join(
- os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'
]
if bld.env['FPU_OPTIMIZATION']:
session_load_tester.source += [ 'sse_functions_xmm.cc' ]
@@ -537,8 +538,6 @@ def build(bld):
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.join(
os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
- 'VAMP_DIR="' + os.path.join(
- os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'
]
if bld.env['FPU_OPTIMIZATION']:
profilingobj.source += [ 'sse_functions_xmm.cc' ]
@@ -553,10 +552,14 @@ def create_ardour_test_program(bld, includes, name, target, sources):
testobj.includes = includes + ['test', '../pbd', '..']
testobj.source = sources
testobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
- 'SAMPLERATE','XML','LRDF','COREAUDIO']
- testobj.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer','libltc','ardour','testcommon']
+ 'SAMPLERATE','XML','LRDF','COREAUDIO','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
+ testobj.use = ['libpbd','libmidipp','libevoral',
+ 'libaudiographer','ardour','testcommon']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ testobj.uselib.extend(['LIBLTC'])
+ else:
+ testobj.use.extend(['libltc'])
+
testobj.name = name
testobj.target = target
# not sure about install path
@@ -567,8 +570,6 @@ def create_ardour_test_program(bld, includes, name, target, sources):
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.join(
os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
- 'VAMP_DIR="' + os.path.join(
- os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'
]
def shutdown():
diff --git a/libs/audiographer/audiographer/broadcast_info.h b/libs/audiographer/audiographer/broadcast_info.h
index 66b10bd9f7..dd776d17af 100644
--- a/libs/audiographer/audiographer/broadcast_info.h
+++ b/libs/audiographer/audiographer/broadcast_info.h
@@ -33,7 +33,7 @@
namespace AudioGrapher
{
-class LIBAUDIOGRAPHER_API SndfileHandle;
+class SndfileHandle;
class LIBAUDIOGRAPHER_API BroadcastInfo
{
diff --git a/libs/audiographer/audiographer/debuggable.h b/libs/audiographer/audiographer/debuggable.h
index 8fe48159de..1cc1d6f725 100644
--- a/libs/audiographer/audiographer/debuggable.h
+++ b/libs/audiographer/audiographer/debuggable.h
@@ -45,12 +45,12 @@ class /*LIBAUDIOGRAPHER_API*/ Debuggable
: stream (debug_stream) {}
bool debug_level (DebugLevel level) {
- #ifdef NDEBUG
- level = DEFAULT_DEBUG_LEVEL; /* stop pedantic gcc complaints about unused parameter */
+#ifndef NDEBUG
+ (void) level; /* stop pedantic gcc complaints about unused parameter */
return false;
- #else
+#else
return L >= level;
- #endif
+#endif
}
std::ostream & debug_stream() { return stream; }
diff --git a/libs/audiographer/audiographer/general/silence_trimmer.h b/libs/audiographer/audiographer/general/silence_trimmer.h
index 165b29d4d5..c0d6d73c4b 100644
--- a/libs/audiographer/audiographer/general/silence_trimmer.h
+++ b/libs/audiographer/audiographer/general/silence_trimmer.h
@@ -131,6 +131,9 @@ class /*LIBAUDIOGRAPHER_API*/ SilenceTrimmer
throw Exception(*this, "process() after reacing end of input");
}
in_end = c.has_flag (ProcessContext<T>::EndOfInput);
+
+ // If adding to end, delay end of input propagation
+ if (add_to_end) { c.remove_flag(ProcessContext<T>::EndOfInput); }
framecnt_t frame_index = 0;
@@ -209,7 +212,8 @@ class /*LIBAUDIOGRAPHER_API*/ SilenceTrimmer
// Finally, if in end, add silence to end
if (in_end && add_to_end) {
-
+ c.set_flag (ProcessContext<T>::EndOfInput);
+
if (debug_level (DebugVerbose)) {
debug_stream () << DebugUtils::demangled_name (*this) <<
" adding to end" << std::endl;
diff --git a/libs/audiographer/audiographer/visibility.h b/libs/audiographer/audiographer/visibility.h
index 8c149f9efd..31a7511f8b 100644
--- a/libs/audiographer/audiographer/visibility.h
+++ b/libs/audiographer/audiographer/visibility.h
@@ -20,37 +20,26 @@
#ifndef __libaudiographer_visibility_h__
#define __libaudiographer_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * audiographer source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBAUDIOGRAPHER_DLL_IMPORT __declspec(dllimport)
#define LIBAUDIOGRAPHER_DLL_EXPORT __declspec(dllexport)
#define LIBAUDIOGRAPHER_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBAUDIOGRAPHER_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBAUDIOGRAPHER_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBAUDIOGRAPHER_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBAUDIOGRAPHER_DLL_IMPORT
- #define LIBAUDIOGRAPHER_DLL_EXPORT
- #define LIBAUDIOGRAPHER_DLL_LOCAL
- #endif
+ #define LIBAUDIOGRAPHER_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBAUDIOGRAPHER_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBAUDIOGRAPHER_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBAUDIOGRAPHER_DLL // libaudiographer is a DLL
-#ifdef LIBAUDIOGRAPHER_DLL_EXPORTS // defined if we are building the libaudiographer DLL (instead of using it)
- #define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_EXPORT
+#ifdef LIBAUDIOGRAPHER_STATIC // libaudiographer is not a DLL
+ #define LIBAUDIOGRAPHER_API
+ #define LIBAUDIOGRAPHER_LOCAL
#else
+ #ifdef LIBAUDIOGRAPHER_DLL_EXPORTS // defined if we are building the libaudiographer DLL (instead of using it)
+ #define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_EXPORT
+ #else
#define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_IMPORT
-#endif
-#define LIBAUDIOGRAPHER_LOCAL LIBAUDIOGRAPHER_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBAUDIOGRAPHER_API
-#define LIBAUDIOGRAPHER_LOCAL
+ #endif
+ #define LIBAUDIOGRAPHER_LOCAL LIBAUDIOGRAPHER_DLL_LOCAL
#endif
#endif /* __libaudiographer_visibility_h__ */
diff --git a/libs/audiographer/src/general/sample_format_converter.cc b/libs/audiographer/src/general/sample_format_converter.cc
index ea70dc6094..aaeda09477 100644
--- a/libs/audiographer/src/general/sample_format_converter.cc
+++ b/libs/audiographer/src/general/sample_format_converter.cc
@@ -52,25 +52,28 @@ SampleFormatConverter<float>::init (framecnt_t max_frames, int /* type */, int d
template <>
void
-SampleFormatConverter<int32_t>::init (framecnt_t max_frames, int /*type*/, int data_width)
+SampleFormatConverter<int32_t>::init (framecnt_t max_frames, int type, int data_width)
{
- if(throw_level (ThrowObject) && data_width < 24) {
- throw Exception (*this, "Trying to use SampleFormatConverter<int32_t> for data widths < 24");
+ if(throw_level (ThrowObject) && data_width > 32) {
+ throw Exception (*this, "Trying to use SampleFormatConverter<int32_t> with a data width > 32");
}
- init_common (max_frames);
+ // GDither is broken with GDither32bit if the dither depth is bigger than 24.
+ // And since floats only have 24 bits of data, we are fine with this.
+ data_width = std::min(data_width, 24);
- // GDither is broken with GDither32bit if the dither depth
- // is bigger than 24, so lets just use that...
- dither = gdither_new (GDitherNone, channels, GDither32bit, 24);
+ init_common (max_frames);
+ dither = gdither_new ((GDitherType) type, channels, GDither32bit, data_width);
}
template <>
void
SampleFormatConverter<int16_t>::init (framecnt_t max_frames, int type, int data_width)
{
- if (throw_level (ThrowObject) && data_width != 16) {
- throw Exception (*this, "Unsupported data width");
+ if (throw_level (ThrowObject) && data_width > 16) {
+ throw Exception (*this, boost::str(boost::format
+ ("Data width (%1%) too large for int16_t")
+ % data_width));
}
init_common (max_frames);
dither = gdither_new ((GDitherType) type, channels, GDither16bit, data_width);
@@ -80,8 +83,10 @@ template <>
void
SampleFormatConverter<uint8_t>::init (framecnt_t max_frames, int type, int data_width)
{
- if (throw_level (ThrowObject) && data_width != 8) {
- throw Exception (*this, "Unsupported data width");
+ if (throw_level (ThrowObject) && data_width > 8) {
+ throw Exception (*this, boost::str(boost::format
+ ("Data width (%1%) too large for uint8_t")
+ % data_width));
}
init_common (max_frames);
dither = gdither_new ((GDitherType) type, channels, GDither8bit, data_width);
diff --git a/libs/audiographer/tests/general/sample_format_converter_test.cc b/libs/audiographer/tests/general/sample_format_converter_test.cc
index 9239564d5b..977e2b390a 100644
--- a/libs/audiographer/tests/general/sample_format_converter_test.cc
+++ b/libs/audiographer/tests/general/sample_format_converter_test.cc
@@ -31,27 +31,31 @@ class SampleFormatConverterTest : public CppUnit::TestFixture
void testInit()
{
+ // Float never uses dithering and should always use full 32 bits of data
boost::shared_ptr<SampleFormatConverter<float> > f_converter (new SampleFormatConverter<float>(1));
f_converter->init (frames, D_Tri, 32); // Doesn't throw
CPPUNIT_ASSERT_THROW (f_converter->init (frames, D_Tri, 24), Exception);
CPPUNIT_ASSERT_THROW (f_converter->init (frames, D_Tri, 48), Exception);
-
+
+ /* Test that too large data widths throw.
+ We are fine with unnecessarily narrow data widths */
+
boost::shared_ptr<SampleFormatConverter<int32_t> > i_converter (new SampleFormatConverter<int32_t>(1));
i_converter->init (frames, D_Tri, 32); // Doesn't throw
i_converter->init (frames, D_Tri, 24); // Doesn't throw
- CPPUNIT_ASSERT_THROW (i_converter->init (frames, D_Tri, 8), Exception);
- CPPUNIT_ASSERT_THROW (i_converter->init (frames, D_Tri, 16), Exception);
+ i_converter->init (frames, D_Tri, 8); // Doesn't throw
+ i_converter->init (frames, D_Tri, 16); // Doesn't throw
CPPUNIT_ASSERT_THROW (i_converter->init (frames, D_Tri, 48), Exception);
-
+
boost::shared_ptr<SampleFormatConverter<int16_t> > i16_converter (new SampleFormatConverter<int16_t>(1));
i16_converter->init (frames, D_Tri, 16); // Doesn't throw
- CPPUNIT_ASSERT_THROW (i16_converter->init (frames, D_Tri, 8), Exception);
+ i16_converter->init (frames, D_Tri, 8); // Doesn't throw
CPPUNIT_ASSERT_THROW (i16_converter->init (frames, D_Tri, 32), Exception);
CPPUNIT_ASSERT_THROW (i16_converter->init (frames, D_Tri, 48), Exception);
-
+
boost::shared_ptr<SampleFormatConverter<uint8_t> > ui_converter (new SampleFormatConverter<uint8_t>(1));
ui_converter->init (frames, D_Tri, 8); // Doesn't throw
- CPPUNIT_ASSERT_THROW (ui_converter->init (frames, D_Tri, 4), Exception);
+ ui_converter->init (frames, D_Tri, 4); // Doesn't throw
CPPUNIT_ASSERT_THROW (ui_converter->init (frames, D_Tri, 16), Exception);
}
diff --git a/libs/audiographer/wscript b/libs/audiographer/wscript
index 9e2d1c4c3c..0e4cd5d7f4 100644
--- a/libs/audiographer/wscript
+++ b/libs/audiographer/wscript
@@ -59,7 +59,8 @@ def build(bld):
'src/general/sample_format_converter.cc',
'src/routines.cc',
'src/debug_utils.cc',
- 'src/general/broadcast_info.cc'
+ 'src/general/broadcast_info.cc',
+ 'src/general/normalizer.cc'
]
if bld.is_defined('HAVE_SAMPLERATE'):
audiographer_sources += [ 'src/general/sr_converter.cc' ]
@@ -67,11 +68,7 @@ def build(bld):
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
audiographer = bld.shlib(features = 'c cxx cshlib cxxshlib', source=audiographer_sources)
# macros for this shared library
- audiographer.defines = [ 'LIBAUDIOGRAPHER_DLL=1', 'LIBAUDIOGRAPHER_DLL_EXPORTS=1' ]
- # macros for this other internal shared libraries that we use
- audiographer.defines += [ 'LIBPBD_DLL=1' ]
- audiographer.cflags = [ '-fvisibility=hidden' ]
- audiographer.cxxflags = [ '-fvisibility=hidden' ]
+ audiographer.defines = [ 'LIBAUDIOGRAPHER_DLL_EXPORTS=1' ]
else:
audiographer = bld.stlib(features = 'c cxx cstlib cxxstlib', source=libardour_sources)
audiographer.cxxflags = [ '-fPIC' ]
diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc
index ff76486bad..62ed00952b 100644
--- a/libs/backends/jack/jack_audiobackend.cc
+++ b/libs/backends/jack/jack_audiobackend.cc
@@ -155,11 +155,11 @@ JACKAudioBackend::enumerate_devices () const
}
vector<float>
-JACKAudioBackend::available_sample_rates (const string& /*device*/) const
+JACKAudioBackend::available_sample_rates (const string& device) const
{
vector<float> f;
- if (available()) {
+ if (device == _target_device && available()) {
f.push_back (sample_rate());
return f;
}
@@ -183,11 +183,11 @@ JACKAudioBackend::available_sample_rates (const string& /*device*/) const
}
vector<uint32_t>
-JACKAudioBackend::available_buffer_sizes (const string& /*device*/) const
+JACKAudioBackend::available_buffer_sizes (const string& device) const
{
vector<uint32_t> s;
-
- if (available()) {
+
+ if (device == _target_device && available()) {
s.push_back (buffer_size());
return s;
}
@@ -509,6 +509,7 @@ JACKAudioBackend::setup_jack_startup_command (bool for_latency_measurement)
/* error, somehow - we will still try to start JACK
* automatically but it will be without our preferred options
*/
+ std::cerr << "get_jack_command_line_string () failed: using default settings." << std::endl;
return;
}
@@ -546,8 +547,11 @@ JACKAudioBackend::_start (bool for_latency_measurement)
/* Now that we have buffer size and sample rate established, the engine
can go ahead and do its stuff
*/
-
- engine.reestablish_ports ();
+
+ if (engine.reestablish_ports ()) {
+ error << _("Could not re-establish ports after connecting to JACK") << endmsg;
+ return -1;
+ }
if (!jack_port_type_get_buffer_size) {
warning << _("This version of JACK is old - you should upgrade to a newer version that supports jack_port_type_get_buffer_size()") << endmsg;
@@ -582,18 +586,6 @@ JACKAudioBackend::stop ()
}
int
-JACKAudioBackend::pause ()
-{
- GET_PRIVATE_JACK_POINTER_RET (_priv_jack, -1);
-
- if (_priv_jack) {
- jack_deactivate (_priv_jack);
- }
-
- return 0;
-}
-
-int
JACKAudioBackend::freewheel (bool onoff)
{
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, -1);
@@ -773,11 +765,9 @@ int
JACKAudioBackend::jack_sync_callback (jack_transport_state_t state, jack_position_t* pos)
{
TransportState tstate;
+ bool tstate_valid = true;
switch (state) {
- case JackTransportStopped:
- tstate = TransportStopped;
- break;
case JackTransportRolling:
tstate = TransportRolling;
break;
@@ -787,9 +777,18 @@ JACKAudioBackend::jack_sync_callback (jack_transport_state_t state, jack_positio
case JackTransportStarting:
tstate = TransportStarting;
break;
+ case JackTransportStopped:
+ tstate = TransportStopped;
+ break;
+ default:
+ // ignore "unofficial" states like JackTransportNetStarting (jackd2)
+ tstate_valid = false;
+ break;
}
- return engine.sync_callback (tstate, pos->frame);
+ if (tstate_valid) {
+ return engine.sync_callback (tstate, pos->frame);
+ }
return true;
}
@@ -1023,7 +1022,7 @@ JACKAudioBackend::disconnected (const char* why)
}
float
-JACKAudioBackend::cpu_load() const
+JACKAudioBackend::dsp_load() const
{
GET_PRIVATE_JACK_POINTER_RET(_priv_jack,0);
return jack_cpu_load (_priv_jack);
@@ -1095,6 +1094,8 @@ JACKAudioBackend::control_app_name () const
appname = "hdspconf";
} else if (_target_device == "M Audio Delta 1010") {
appname = "mudita24";
+ } else if (_target_device == "M2496") {
+ appname = "mudita24";
}
}
} else {
@@ -1131,3 +1132,46 @@ JACKAudioBackend::set_midi_option (const string& opt)
_target_midi_option = opt;
return 0;
}
+
+bool
+JACKAudioBackend::speed_and_position (double& speed, framepos_t& position)
+{
+ jack_position_t pos;
+ jack_transport_state_t state;
+ bool starting;
+
+ /* this won't be called if the port engine in use is not JACK, so we do
+ not have to worry about the type of PortEngine::private_handle()
+ */
+
+ speed = 0;
+ position = 0;
+
+ GET_PRIVATE_JACK_POINTER_RET (_priv_jack, true);
+
+ state = jack_transport_query (_priv_jack, &pos);
+
+ switch (state) {
+ case JackTransportStopped:
+ speed = 0;
+ starting = false;
+ break;
+ case JackTransportRolling:
+ speed = 1.0;
+ starting = false;
+ break;
+ case JackTransportLooping:
+ speed = 1.0;
+ starting = false;
+ break;
+ case JackTransportStarting:
+ starting = true;
+ // don't adjust speed here, just leave it as it was
+ break;
+ default:
+ std::cerr << "WARNING: Unknown JACK transport state: " << state << std::endl;
+ }
+
+ position = pos.frame;
+ return starting;
+}
diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h
index 3c48be5ead..d5378247c3 100644
--- a/libs/backends/jack/jack_audiobackend.h
+++ b/libs/backends/jack/jack_audiobackend.h
@@ -89,12 +89,10 @@ class JACKAudioBackend : public AudioBackend {
std::string control_app_name () const;
void launch_control_app ();
- int _start (bool for_latency_measurement);
int stop ();
- int pause ();
int freewheel (bool);
- float cpu_load() const;
+ float dsp_load() const;
pframes_t sample_time ();
pframes_t sample_time_at_cycle_start ();
@@ -127,7 +125,7 @@ class JACKAudioBackend : public AudioBackend {
int set_port_name (PortHandle, const std::string&);
std::string get_port_name (PortHandle) const;
- PortHandle* get_port_by_name (const std::string&) const;
+ PortHandle get_port_by_name (const std::string&) const;
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
@@ -183,6 +181,10 @@ class JACKAudioBackend : public AudioBackend {
void* get_buffer (PortHandle, pframes_t);
+ /* transport sync */
+
+ bool speed_and_position (double& sp, framepos_t& pos);
+
private:
boost::shared_ptr<JackConnection> _jack_connection;
bool _running;
@@ -269,6 +271,9 @@ class JACKAudioBackend : public AudioBackend {
*/
JACKSession* _session;
+
+ protected:
+ int _start (bool for_latency_measurement);
};
} // namespace
diff --git a/libs/backends/jack/jack_connection.cc b/libs/backends/jack/jack_connection.cc
index b3d7fcecc4..fee1b299ba 100644
--- a/libs/backends/jack/jack_connection.cc
+++ b/libs/backends/jack/jack_connection.cc
@@ -21,6 +21,8 @@
#include <boost/scoped_ptr.hpp>
#include <jack/session.h>
+#include <glibmm/timer.h>
+
#include "pbd/epa.h"
#include "jack_connection.h"
@@ -143,7 +145,12 @@ JackConnection::close ()
if (_priv_jack) {
int ret = jack_client_close (_priv_jack);
_jack = 0;
+
+ /* If we started JACK, it will be closing down */
+ Glib::usleep (500000);
+
Disconnected (""); /* EMIT SIGNAL */
+
return ret;
}
diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc
index 0d66f50448..1fe77fbb70 100644
--- a/libs/backends/jack/jack_portengine.cc
+++ b/libs/backends/jack/jack_portengine.cc
@@ -116,11 +116,11 @@ JACKAudioBackend::get_port_name (PortHandle port) const
return jack_port_name ((jack_port_t*) port);
}
-PortEngine::PortHandle*
+PortEngine::PortHandle
JACKAudioBackend:: get_port_by_name (const std::string& name) const
{
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);
- return (PortHandle*) jack_port_by_name (_priv_jack, name.c_str());
+ return (PortHandle) jack_port_by_name (_priv_jack, name.c_str());
}
void
diff --git a/libs/backends/jack/jack_session.cc b/libs/backends/jack/jack_session.cc
index ca51dafccc..60d11a8f0c 100644
--- a/libs/backends/jack/jack_session.cc
+++ b/libs/backends/jack/jack_session.cc
@@ -23,6 +23,9 @@
#include <glibmm/miscutils.h>
#include <jack/jack.h>
+#include <jack/transport.h>
+
+#include "pbd/localtime_r.h"
#include "ardour/audioengine.h"
#include "ardour/filename_extensions.h"
diff --git a/libs/backends/jack/jack_utils.cc b/libs/backends/jack/jack_utils.cc
index 57ae8cee96..01af13fe9c 100644
--- a/libs/backends/jack/jack_utils.cc
+++ b/libs/backends/jack/jack_utils.cc
@@ -756,6 +756,9 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
string command_line_driver_name;
+ string command_line_input_device_name;
+ string command_line_output_device_name;
+
if (!get_jack_command_line_audio_driver_name (options.driver, command_line_driver_name)) {
return false;
}
@@ -763,60 +766,71 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
args.push_back ("-d");
args.push_back (command_line_driver_name);
- if (options.output_device.empty() && options.input_device.empty()) {
- return false;
- }
-
- string command_line_input_device_name;
- string command_line_output_device_name;
-
- if (!get_jack_command_line_audio_device_name (options.driver,
- options.input_device, command_line_input_device_name)) {
- return false;
- }
+ if (options.driver != dummy_driver_name) {
+ if (options.output_device.empty() && options.input_device.empty()) {
+ return false;
+ }
- if (!get_jack_command_line_audio_device_name (options.driver,
- options.output_device, command_line_output_device_name)) {
- return false;
- }
- if (options.input_device.empty()) {
- // playback only
- if (options.output_device.empty()) {
+ if (!get_jack_command_line_audio_device_name (options.driver,
+ options.input_device, command_line_input_device_name)) {
return false;
}
- args.push_back ("-P");
- } else if (options.output_device.empty()) {
- // capture only
- if (options.input_device.empty()) {
+
+ if (!get_jack_command_line_audio_device_name (options.driver,
+ options.output_device, command_line_output_device_name)) {
return false;
}
- args.push_back ("-C");
- } else if (options.input_device != options.output_device) {
- // capture and playback on two devices if supported
- if (get_jack_audio_driver_supports_two_devices (options.driver)) {
- args.push_back ("-C");
- args.push_back (command_line_input_device_name);
+
+ if (options.input_device.empty()) {
+ // playback only
+ if (options.output_device.empty()) {
+ return false;
+ }
args.push_back ("-P");
- args.push_back (command_line_output_device_name);
- } else {
- return false;
+ } else if (options.output_device.empty()) {
+ // capture only
+ if (options.input_device.empty()) {
+ return false;
+ }
+ args.push_back ("-C");
+ } else if (options.input_device != options.output_device) {
+ // capture and playback on two devices if supported
+ if (get_jack_audio_driver_supports_two_devices (options.driver)) {
+ args.push_back ("-C");
+ args.push_back (command_line_input_device_name);
+ args.push_back ("-P");
+ args.push_back (command_line_output_device_name);
+ } else {
+ return false;
+ }
}
- }
- if (options.input_channels) {
- args.push_back ("-i");
- args.push_back (to_string (options.input_channels, std::dec));
- }
+ if (options.input_channels) {
+ args.push_back ("-i");
+ args.push_back (to_string (options.input_channels, std::dec));
+ }
- if (options.output_channels) {
- args.push_back ("-o");
- args.push_back (to_string (options.output_channels, std::dec));
- }
+ if (options.output_channels) {
+ args.push_back ("-o");
+ args.push_back (to_string (options.output_channels, std::dec));
+ }
- if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
- args.push_back ("-n");
- args.push_back (to_string (options.num_periods, std::dec));
+ if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
+ args.push_back ("-n");
+ args.push_back (to_string (options.num_periods, std::dec));
+ }
+ } else {
+ // jackd dummy backend
+ if (options.input_channels) {
+ args.push_back ("-C");
+ args.push_back (to_string (options.input_channels, std::dec));
+ }
+
+ if (options.output_channels) {
+ args.push_back ("-P");
+ args.push_back (to_string (options.output_channels, std::dec));
+ }
}
args.push_back ("-r");
@@ -836,9 +850,11 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
}
}
- if (options.input_device == options.output_device && options.input_device != default_device_name) {
- args.push_back ("-d");
- args.push_back (command_line_input_device_name);
+ if (options.driver != dummy_driver_name) {
+ if (options.input_device == options.output_device && options.input_device != default_device_name) {
+ args.push_back ("-d");
+ args.push_back (command_line_input_device_name);
+ }
}
if (options.driver == alsa_driver_name) {
@@ -875,11 +891,7 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
ostringstream oss;
for (vector<string>::const_iterator i = args.begin(); i != args.end();) {
-#ifdef WIN32
- oss << quote_string (*i);
-#else
oss << *i;
-#endif
if (++i != args.end()) oss << ' ';
}
diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript
index 80edd92634..b31d9b5d56 100644
--- a/libs/backends/jack/wscript
+++ b/libs/backends/jack/wscript
@@ -20,6 +20,8 @@ def options(opt):
autowaf.set_options(opt)
def configure(conf):
+ autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0')
+
#
# PortAudio is currently used to get a list of audio device names.
# We should find a better way to do this that doesn't involve this
@@ -43,7 +45,7 @@ def build(bld):
obj.includes = ['.']
obj.name = 'jack_audiobackend'
obj.target = 'jack_audiobackend'
- if Options.options.dist_target == 'mingw':
+ if (bld.env['build_target'] == 'mingw'):
obj.uselib = [ 'JACK', 'PORTAUDIO' ]
else:
obj.uselib = [ 'JACK' ]
@@ -53,8 +55,6 @@ def build(bld):
obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
'ARDOURBACKEND_DLL_EXPORTS'
]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
#
# device discovery code in the jack backend needs ALSA
diff --git a/libs/canvas/arc.cc b/libs/canvas/arc.cc
index eeecd3204a..e95fbe0ad5 100644
--- a/libs/canvas/arc.cc
+++ b/libs/canvas/arc.cc
@@ -16,8 +16,11 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <cmath>
#include <algorithm>
+
#include <cairomm/context.h>
+
#include "pbd/compose.h"
#include "canvas/circle.h"
#include "canvas/types.h"
@@ -97,7 +100,6 @@ Arc::set_radius (Coord r)
end_change ();
}
-
void
Arc::set_arc (double deg)
{
@@ -121,3 +123,15 @@ Arc::set_start (double deg)
end_change ();
}
+bool
+Arc::covers (Duple const & point) const
+{
+ Duple p = canvas_to_item (point);
+
+ double angle_degs = atan (p.y/p.x) * 2.0 * M_PI;
+ double radius = sqrt (p.x * p.x + p.y * p.y);
+
+ return (angle_degs >= _start_degrees) &&
+ (angle_degs <= (_start_degrees + _arc_degrees)) &&
+ (radius < _radius);
+}
diff --git a/libs/canvas/arrow.cc b/libs/canvas/arrow.cc
index f82f2d96de..55f5173253 100644
--- a/libs/canvas/arrow.cc
+++ b/libs/canvas/arrow.cc
@@ -221,3 +221,20 @@ Arrow::set_color (Color color)
_heads[i].polygon->set_fill_color (color);
}
}
+
+bool
+Arrow::covers (Duple const & point) const
+{
+ if (_heads[0].polygon && _heads[0].polygon->covers (point)) {
+ return true;
+ }
+ if (_line && _line->covers (point)) {
+ return true;
+ }
+
+ if (_heads[1].polygon && _heads[1].polygon->covers (point)) {
+ return true;
+ }
+
+ return false;
+}
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index 908af16065..8a31d1fa9f 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -22,6 +22,7 @@
* @brief Implementation of the main canvas classes.
*/
+#include <list>
#include <cassert>
#include <gtkmm/adjustment.h>
#include <gtkmm/label.h>
@@ -31,6 +32,7 @@
#include "canvas/canvas.h"
#include "canvas/debug.h"
+#include "canvas/line.h"
using namespace std;
using namespace ArdourCanvas;
@@ -49,6 +51,14 @@ Canvas::scroll_to (Coord x, Coord y)
{
_scroll_offset_x = x;
_scroll_offset_y = y;
+
+ pick_current_item (0); // no current mouse position
+}
+
+void
+Canvas::zoomed ()
+{
+ pick_current_item (0); // no current mouse position
}
/** Render an area of the canvas.
@@ -60,7 +70,7 @@ Canvas::render (Rect const & area, Cairo::RefPtr<Cairo::Context> const & context
{
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- cerr << "RENDER: " << area << endl;
+ cerr << this << " RENDER: " << area << endl;
//cerr << "CANVAS @ " << this << endl;
//dump (cerr);
//cerr << "-------------------------\n";
@@ -77,12 +87,20 @@ Canvas::render (Rect const & area, Cairo::RefPtr<Cairo::Context> const & context
boost::optional<Rect> draw = root_bbox->intersection (area);
if (draw) {
+
/* there's a common area between the root and the requested
area, so render it.
*/
_root.render (*draw, context);
+
+ // This outlines the rect being rendered, after it has been drawn.
+ // context->rectangle (draw->x0, draw->y0, draw->x1 - draw->x0, draw->y1 - draw->y0);
+ // context->set_source_rgba (1.0, 0, 0, 1.0);
+ // context->stroke ();
+
}
+
}
ostream&
@@ -177,7 +195,14 @@ Canvas::window_to_canvas (Duple const & d) const
Duple
Canvas::canvas_to_window (Duple const & d) const
{
- return d.translate (Duple (-_scroll_offset_x, -_scroll_offset_y));
+ Duple wd = d.translate (Duple (-_scroll_offset_x, -_scroll_offset_y));
+
+ /* Note that this intentionally always returns integer coordinates */
+
+ wd.x = round (wd.x);
+ wd.y = round (wd.y);
+
+ return wd;
}
Rect
@@ -189,7 +214,16 @@ Canvas::window_to_canvas (Rect const & r) const
Rect
Canvas::canvas_to_window (Rect const & r) const
{
- return r.translate (Duple (-_scroll_offset_x, -_scroll_offset_y));
+ Rect wr = r.translate (Duple (-_scroll_offset_x, -_scroll_offset_y));
+
+ /* Note that this intentionally always returns integer coordinates */
+
+ wr.x0 = round (wr.x0);
+ wr.x1 = round (wr.x1);
+ wr.y0 = round (wr.y0);
+ wr.y1 = round (wr.y1);
+
+ return wr;
}
/** Called when an item has moved.
@@ -205,11 +239,11 @@ Canvas::item_moved (Item* item, boost::optional<Rect> pre_change_parent_bounding
* to be in parent coordinate space since the bounding box of
* an item does not change when moved. If we use
* item->item_to_canvas() on the old bounding box, we will be
+
* using the item's new position, and so will compute the wrong
* invalidation area. If we use the parent (which has not
* moved, then this will work.
*/
-
queue_draw_item_area (item->parent(), pre_change_parent_bounding_box.get ());
}
@@ -228,67 +262,29 @@ void
Canvas::queue_draw_item_area (Item* item, Rect area)
{
ArdourCanvas::Rect canvas_area = item->item_to_canvas (area);
- // cerr << "CANVAS " << this << " for " << item->whatami() << ' ' << item->name << " invalidate " << area << " TRANSLATE AS " << canvas_area << endl;
+ // cerr << "CANVAS " << this << " for " << item->whatami() << ' ' << item->name << " invalidate " << area << " TRANSLATE AS " << canvas_area << " window = " << canvas_to_window (canvas_area) << std::endl;
request_redraw (canvas_area);
}
/** Construct a GtkCanvas */
GtkCanvas::GtkCanvas ()
: _current_item (0)
+ , _new_current_item (0)
, _grabbed_item (0)
+ , _focused_item (0)
{
/* these are the events we want to know about */
- add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK);
-}
-
-/** Handler for button presses on the canvas.
- * @param ev GDK event.
- */
-bool
-GtkCanvas::button_handler (GdkEventButton* ev)
-{
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas button %3 %1 %1\n", ev->x, ev->y, (ev->type == GDK_BUTTON_PRESS ? "press" : "release")));
- /* The Duple that we are passing in here is in canvas coordinates */
- return deliver_event (Duple (ev->x, ev->y), reinterpret_cast<GdkEvent*> (ev));
-}
-
-/** Handler for pointer motion events on the canvas.
- * @param ev GDK event.
- * @return true if the motion event was handled, otherwise false.
- */
-bool
-GtkCanvas::motion_notify_handler (GdkEventMotion* ev)
-{
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas motion @ %1, %2\n", ev->x, ev->y));
-
- if (_grabbed_item) {
- /* if we have a grabbed item, it gets just the motion event,
- since no enter/leave events can have happened.
- */
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("%1 %2 (%3) was grabbed, send MOTION event there\n",
- _grabbed_item, _grabbed_item->whatami(), _grabbed_item->name));
- return _grabbed_item->Event (reinterpret_cast<GdkEvent*> (ev));
- }
-
- Duple point (ev->x, ev->y);
-
- enter_leave_items (point, ev->state);
-
- /* Now deliver the motion event. It may seem a little inefficient
- to recompute the items under the event, but the enter notify/leave
- events may have deleted canvas items so it is important to
- recompute the list in deliver_event.
- */
- return deliver_event (point, reinterpret_cast<GdkEvent*> (ev));
+ add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK |
+ Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK);
}
void
-GtkCanvas::enter_leave_items (int state)
+GtkCanvas::pick_current_item (int state)
{
int x;
int y;
- /* this version of ::enter_leave_items() is called after an item is
+ /* this version of ::pick_current_item() is called after an item is
* added or removed, so we have no coordinates to work from as is the
* case with a motion event. Find out where the mouse is and use that.
*/
@@ -299,24 +295,75 @@ GtkCanvas::enter_leave_items (int state)
return;
}
- enter_leave_items (window_to_canvas (Duple (x, y)), state);
+ pick_current_item (window_to_canvas (Duple (x, y)), state);
}
void
-GtkCanvas::enter_leave_items (Duple const & point, int state)
+GtkCanvas::pick_current_item (Duple const & point, int state)
{
+ /* we do not enter/leave items during a drag/grab */
+
+ if (_grabbed_item) {
+ return;
+ }
+
/* find the items at the given position */
vector<Item const *> items;
_root.add_items_at_point (point, items);
+ /* put all items at point that are event-sensitive and visible and NOT
+ groups into within_items. Note that items is sorted from bottom to
+ top, but we're going to reverse that for within_items so that its
+ first item is the upper-most item that can be chosen as _current_item.
+ */
+
+ vector<Item const *>::const_iterator i;
+ list<Item const *> within_items;
+
+ for (i = items.begin(); i != items.end(); ++i) {
+
+ Item const * new_item = *i;
+
+ /* We ignore invisible items, groups and items that ignore events */
+
+ if (!new_item->visible() || new_item->ignore_events() || dynamic_cast<Group const *>(new_item) != 0) {
+ continue;
+ }
+
+ within_items.push_front (new_item);
+ }
+
+ if (within_items.empty()) {
+
+ /* no items at point, just send leave event below */
+
+ } else {
+
+ if (within_items.front() == _current_item) {
+ /* uppermost item at point is already _current_item */
+ return;
+ }
+
+ _new_current_item = const_cast<Item*> (within_items.front());
+ }
+
+ if (_new_current_item != _current_item) {
+ deliver_enter_leave (point, state);
+ }
+}
+
+void
+GtkCanvas::deliver_enter_leave (Duple const & point, int state)
+{
+ /* setup enter & leave event structures */
+
GdkEventCrossing enter_event;
enter_event.type = GDK_ENTER_NOTIFY;
enter_event.window = get_window()->gobj();
enter_event.send_event = 0;
enter_event.subwindow = 0;
enter_event.mode = GDK_CROSSING_NORMAL;
- enter_event.detail = GDK_NOTIFY_NONLINEAR;
enter_event.focus = FALSE;
enter_event.state = state;
enter_event.x = point.x;
@@ -324,73 +371,141 @@ GtkCanvas::enter_leave_items (Duple const & point, int state)
GdkEventCrossing leave_event = enter_event;
leave_event.type = GDK_LEAVE_NOTIFY;
- leave_event.detail = GDK_NOTIFY_ANCESTOR;
- leave_event.subwindow = 0;
- if (items.empty()) {
+ Item* i;
+ GdkNotifyType enter_detail;
+ GdkNotifyType leave_detail;
+ vector<Item*> items_to_leave_virtual;
+ vector<Item*> items_to_enter_virtual;
+
+ if (_new_current_item == 0) {
+
+ leave_detail = GDK_NOTIFY_UNKNOWN;
+
if (_current_item) {
- /* leave event */
- _current_item->Event (reinterpret_cast<GdkEvent*> (&leave_event));
- _current_item = 0;
+
+ /* no current item, so also send virtual leave events to the
+ * entire heirarchy for the current item
+ */
+
+ for (i = _current_item->parent(); i ; i = i->parent()) {
+ items_to_leave_virtual.push_back (i);
+ }
}
- return;
- }
- /* items is sorted from top to bottom, so reverse through it from bottom
- * to top to find the lowest, first event-sensitive item and notify that
- * we have entered it
- */
+ } else if (_current_item == 0) {
- cerr << "E/L: " << items.size() << " to check at " << point << endl;
-#ifdef CANVAS_DEBUG
- for (vector<Item const*>::const_reverse_iterator i = items.rbegin(); i != items.rend(); ++i) {
- cerr << '\t' << (*i)->whatami() << ' ' << (*i)->name << " ignore ? " << (*i)->ignore_events() << " current ? " << (_current_item == (*i)) << endl;
- }
-#endif
- cerr << "------------\n";
+ enter_detail = GDK_NOTIFY_UNKNOWN;
- for (vector<Item const*>::const_reverse_iterator i = items.rbegin(); i != items.rend(); ++i) {
+ /* no current item, so also send virtual enter events to the
+ * entire heirarchy for the new item
+ */
- Item const * new_item = *i;
-#ifdef CANVAS_DEBUG
- cerr << "\tE/L check out " << new_item->whatami() << ' ' << new_item->name << " ignore ? " << new_item->ignore_events() << " current ? " << (_current_item == new_item) << endl;
-#endif
- if (new_item->ignore_events()) {
- cerr << "continue1\n";
- continue;
+ for (i = _new_current_item->parent(); i ; i = i->parent()) {
+ items_to_enter_virtual.push_back (i);
}
- if (_current_item == new_item) {
- cerr << "continue2\n";
- continue;
+ } else if (_current_item->is_descendant_of (*_new_current_item)) {
+
+ /* move from descendant to ancestor (X: "_current_item is an
+ * inferior ("child") of _new_current_item")
+ *
+ * Deliver "virtual" leave notifications to all items in the
+ * heirarchy between current and new_current.
+ */
+
+
+ for (i = _current_item->parent(); i && i != _new_current_item; i = i->parent()) {
+ items_to_leave_virtual.push_back (i);
}
- if (_current_item) {
- /* leave event */
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("Leave %1 %2\n", _current_item->whatami(), _current_item->name));
- _current_item->Event (reinterpret_cast<GdkEvent*> (&leave_event));
+ enter_detail = GDK_NOTIFY_INFERIOR;
+ leave_detail = GDK_NOTIFY_ANCESTOR;
+
+
+ } else if (_new_current_item->is_descendant_of (*_current_item)) {
+ /* move from ancestor to descendant (X: "_new_current_item is
+ * an inferior ("child") of _current_item")
+ *
+ * Deliver "virtual" enter notifications to all items in the
+ * heirarchy between current and new_current.
+ */
+
+ for (i = _new_current_item->parent(); i && i != _current_item; i = i->parent()) {
+ items_to_enter_virtual.push_back (i);
}
- if (new_item && _current_item != new_item) {
- /* enter event */
- _current_item = new_item;
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("Enter %1 %2\n", _current_item->whatami(), _current_item->name));
- _current_item->Event (reinterpret_cast<GdkEvent*> (&enter_event));
- break;
+ enter_detail = GDK_NOTIFY_ANCESTOR;
+ leave_detail = GDK_NOTIFY_INFERIOR;
+
+ } else {
+
+ Item const * common_ancestor = _current_item->closest_ancestor_with (*_new_current_item);
+
+ /* deliver virtual leave events to everything between _current
+ * and common_ancestor.
+ */
+
+ for (i = _current_item->parent(); i && i != common_ancestor; i = i->parent()) {
+ items_to_leave_virtual.push_back (i);
}
- cerr << "Loop around again\n";
+ /* deliver virtual enter events to everything between
+ * _new_current and common_ancestor.
+ */
+
+ for (i = _new_current_item->parent(); i && i != common_ancestor; i = i->parent()) {
+ items_to_enter_virtual.push_back (i);
+ }
+
+ enter_detail = GDK_NOTIFY_NONLINEAR;
+ leave_detail = GDK_NOTIFY_NONLINEAR;
+ }
+
+
+ if (_current_item && !_current_item->ignore_events ()) {
+ leave_event.detail = leave_detail;
+ _current_item->Event ((GdkEvent*)&leave_event);
+ // std::cerr << "LEAVE " << _current_item->whatami() << '/' << _current_item->name << std::endl;
}
+
+ leave_event.detail = GDK_NOTIFY_VIRTUAL;
+ enter_event.detail = GDK_NOTIFY_VIRTUAL;
+
+ for (vector<Item*>::iterator it = items_to_leave_virtual.begin(); it != items_to_leave_virtual.end(); ++it) {
+ if (!(*it)->ignore_events()) {
+ (*it)->Event ((GdkEvent*)&leave_event);
+ // std::cerr << "leave " << (*it)->whatami() << '/' << (*it)->name << std::endl;
+ }
+ }
+
+ for (vector<Item*>::iterator it = items_to_enter_virtual.begin(); it != items_to_enter_virtual.end(); ++it) {
+ if (!(*it)->ignore_events()) {
+ (*it)->Event ((GdkEvent*)&enter_event);
+ // std::cerr << "enter " << (*it)->whatami() << '/' << (*it)->name << std::endl;
+ }
+ }
+
+ if (_new_current_item && !_new_current_item->ignore_events()) {
+ enter_event.detail = enter_detail;
+ _new_current_item->Event ((GdkEvent*)&enter_event);
+ // std::cerr << "ENTER " << _new_current_item->whatami() << '/' << _new_current_item->name << std::endl;
+ }
+
+ _current_item = _new_current_item;
}
+
/** Deliver an event to the appropriate item; either the grabbed item, or
* one of the items underneath the event.
* @param point Position that the event has occurred at, in canvas coordinates.
* @param event The event.
*/
bool
-GtkCanvas::deliver_event (Duple point, GdkEvent* event)
+GtkCanvas::deliver_event (GdkEvent* event)
{
+ /* Point in in canvas coordinate space */
+
if (_grabbed_item) {
/* we have a grabbed item, so everything gets sent there */
DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("%1 %2 (%3) was grabbed, send event there\n",
@@ -398,51 +513,37 @@ GtkCanvas::deliver_event (Duple point, GdkEvent* event)
return _grabbed_item->Event (event);
}
- /* find the items that exist at the event's position */
- vector<Item const *> items;
- _root.add_items_at_point (point, items);
+ if (!_current_item) {
+ return false;
+ }
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("%1 possible items to deliver event to\n", items.size()));
+ /* run through the items from child to parent, until one claims the event */
- /* run through the items under the event, from top to bottom, until one claims the event */
- vector<Item const *>::const_reverse_iterator i = items.rbegin ();
- while (i != items.rend()) {
+ Item* item = const_cast<Item*> (_current_item);
+
+ while (item) {
- if ((*i)->ignore_events ()) {
- DEBUG_TRACE (
- PBD::DEBUG::CanvasEvents,
- string_compose ("canvas event ignored by %1 %2\n", (*i)->whatami(), (*i)->name.empty() ? "[unknown]" : (*i)->name)
- );
- ++i;
- continue;
- }
-
- if ((*i)->Event (event)) {
+ Item* parent = item->parent ();
+
+ if (!item->ignore_events () &&
+ item->Event (event)) {
/* this item has just handled the event */
DEBUG_TRACE (
PBD::DEBUG::CanvasEvents,
- string_compose ("canvas event handled by %1 %2\n", (*i)->whatami(), (*i)->name.empty() ? "[unknown]" : (*i)->name)
+ string_compose ("canvas event handled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name)
);
return true;
}
- DEBUG_TRACE (
- PBD::DEBUG::CanvasEvents,
- string_compose ("canvas event left unhandled by %1 %2\n", (*i)->whatami(), (*i)->name.empty() ? "[unknown]" : (*i)->name)
- );
-
- ++i;
- }
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event %3 left unhandled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name, event_type_string (event->type)));
- /* debugging */
- if (PBD::debug_bits & PBD::DEBUG::CanvasEvents) {
- while (i != items.rend()) {
- DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event not seen by %1\n", (*i)->name.empty() ? "[unknown]" : (*i)->name));
- ++i;
+ if ((item = parent) == 0) {
+ break;
}
+
}
-
+
return false;
}
@@ -457,15 +558,24 @@ GtkCanvas::item_going_away (Item* item, boost::optional<Rect> bounding_box)
queue_draw_item_area (item, bounding_box.get ());
}
- if (_current_item == item) {
- _current_item = 0;
+ if (_new_current_item == item) {
+ _new_current_item = 0;
}
if (_grabbed_item == item) {
_grabbed_item = 0;
}
- enter_leave_items (0); // no mouse state
+ if (_focused_item == item) {
+ _focused_item = 0;
+ }
+
+ if (_current_item == item) {
+ /* no need to send a leave event to this item, since it is going away
+ */
+ _current_item = 0;
+ pick_current_item (0); // no mouse state
+ }
}
@@ -476,9 +586,10 @@ GtkCanvas::item_going_away (Item* item, boost::optional<Rect> bounding_box)
bool
GtkCanvas::on_expose_event (GdkEventExpose* ev)
{
- Cairo::RefPtr<Cairo::Context> c = get_window()->create_cairo_context ();
+ Cairo::RefPtr<Cairo::Context> cairo_context = get_window()->create_cairo_context ();
+ Rect area (ev->area.x, ev->area.y, ev->area.x + ev->area.width, ev->area.y + ev->area.height);
- render (Rect (ev->area.x, ev->area.y, ev->area.x + ev->area.width, ev->area.y + ev->area.height), c);
+ render (area, cairo_context);
return true;
}
@@ -509,11 +620,14 @@ GtkCanvas::on_button_press_event (GdkEventButton* ev)
copy.button.x = where.x;
copy.button.y = where.y;
-
+
/* Coordinates in the event will be canvas coordinates, correctly adjusted
for scroll if this GtkCanvas is in a GtkCanvasViewport.
*/
- return button_handler ((GdkEventButton*) &copy);
+
+ pick_current_item (where, ev->state);
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas button press @ %1, %2 => %3\n", ev->x, ev->y, where));
+ return deliver_event (reinterpret_cast<GdkEvent*>(&copy));
}
/** Handler for GDK button release events.
@@ -527,6 +641,8 @@ GtkCanvas::on_button_release_event (GdkEventButton* ev)
GdkEvent copy = *((GdkEvent*)ev);
Duple where = window_to_canvas (Duple (ev->x, ev->y));
+
+ pick_current_item (where, ev->state);
copy.button.x = where.x;
copy.button.y = where.y;
@@ -534,7 +650,10 @@ GtkCanvas::on_button_release_event (GdkEventButton* ev)
/* Coordinates in the event will be canvas coordinates, correctly adjusted
for scroll if this GtkCanvas is in a GtkCanvasViewport.
*/
- return button_handler ((GdkEventButton*) &copy);
+
+ pick_current_item (where, ev->state);
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas button release @ %1, %2 => %3\n", ev->x, ev->y, where));
+ return deliver_event (reinterpret_cast<GdkEvent*>(&copy));
}
/** Handler for GDK motion events.
@@ -547,15 +666,52 @@ GtkCanvas::on_motion_notify_event (GdkEventMotion* ev)
/* translate event coordinates from window to canvas */
GdkEvent copy = *((GdkEvent*)ev);
- Duple where = window_to_canvas (Duple (ev->x, ev->y));
+ Duple point (ev->x, ev->y);
+ Duple where = window_to_canvas (point);
copy.motion.x = where.x;
copy.motion.y = where.y;
- /* Coordinates in the event will be canvas coordinates, correctly adjusted
- for scroll if this GtkCanvas is in a GtkCanvasViewport.
+ /* Coordinates in "copy" will be canvas coordinates,
*/
- return motion_notify_handler ((GdkEventMotion*) &copy);
+
+ // DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas motion @ %1, %2\n", ev->x, ev->y));
+
+ if (_grabbed_item) {
+ /* if we have a grabbed item, it gets just the motion event,
+ since no enter/leave events can have happened.
+ */
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("%1 %2 (%3) was grabbed, send MOTION event there\n",
+ _grabbed_item, _grabbed_item->whatami(), _grabbed_item->name));
+ return _grabbed_item->Event (reinterpret_cast<GdkEvent*> (&copy));
+ }
+
+ pick_current_item (where, ev->state);
+
+ /* Now deliver the motion event. It may seem a little inefficient
+ to recompute the items under the event, but the enter notify/leave
+ events may have deleted canvas items so it is important to
+ recompute the list in deliver_event.
+ */
+
+ return deliver_event (reinterpret_cast<GdkEvent*> (&copy));
+}
+
+bool
+GtkCanvas::on_enter_notify_event (GdkEventCrossing* ev)
+{
+ Duple where = window_to_canvas (Duple (ev->x, ev->y));
+ pick_current_item (where, ev->state);
+ return true;
+}
+
+bool
+GtkCanvas::on_leave_notify_event (GdkEventCrossing* ev)
+{
+ _new_current_item = 0;
+ Duple where = window_to_canvas (Duple (ev->x, ev->y));
+ deliver_enter_leave (where, ev->state);
+ return true;
}
/** Called to request a redraw of our canvas.
@@ -564,9 +720,13 @@ GtkCanvas::on_motion_notify_event (GdkEventMotion* ev)
void
GtkCanvas::request_redraw (Rect const & request)
{
- Rect area = canvas_to_window (request);
- // cerr << this << " Invalidate " << request << " TRANSLATE AS " << area << endl;
- queue_draw_area (floor (area.x0), floor (area.y0), ceil (area.x1) - floor (area.x0), ceil (area.y1) - floor (area.y0));
+ boost::optional<Rect> req = request.intersection (visible_area());
+
+ if (req) {
+ Rect r = req.get();
+ Rect area = canvas_to_window (r);
+ queue_draw_area (area.x0, area.y0, area.width(), area.height());
+ }
}
/** Called to request that we try to get a particular size for ourselves.
@@ -600,6 +760,7 @@ GtkCanvas::grab (Item* item)
_grabbed_item = item;
}
+
/** `Ungrab' any item that was previously grabbed */
void
GtkCanvas::ungrab ()
@@ -608,6 +769,24 @@ GtkCanvas::ungrab ()
_grabbed_item = 0;
}
+/** Set keyboard focus on an item, so that all keyboard events are sent to that item until the focus
+ * moves elsewhere.
+ * @param item Item to grab.
+ */
+void
+GtkCanvas::focus (Item* item)
+{
+ _focused_item = item;
+}
+
+void
+GtkCanvas::unfocus (Item* item)
+{
+ if (item == _focused_item) {
+ _focused_item = 0;
+ }
+}
+
/** @return The visible area of the canvas, in canvas coordinates */
Rect
GtkCanvas::visible_area () const
diff --git a/libs/canvas/canvas/arc.h b/libs/canvas/canvas/arc.h
index fc1b72163e..306a1acb7b 100644
--- a/libs/canvas/canvas/arc.h
+++ b/libs/canvas/canvas/arc.h
@@ -19,13 +19,14 @@
#ifndef __CANVAS_ARC_H__
#define __CANVAS_ARC_H__
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/outline.h"
#include "canvas/fill.h"
namespace ArdourCanvas {
-class Arc : virtual public Item, public Outline, public Fill
+class LIBCANVAS_API Arc : virtual public Item, public Outline, public Fill
{
public:
Arc (Group *);
@@ -51,6 +52,8 @@ public:
return _start_degrees;
}
+ bool covers (Duple const &) const;
+
private:
Duple _center;
Coord _radius;
diff --git a/libs/canvas/canvas/arrow.h b/libs/canvas/canvas/arrow.h
index a5a338a3ba..beaed84c27 100644
--- a/libs/canvas/canvas/arrow.h
+++ b/libs/canvas/canvas/arrow.h
@@ -25,6 +25,8 @@
#ifndef __CANVAS_ARROW_H__
#define __CANVAS_ARROW_H__
+#include "canvas/visibility.h"
+
#include "canvas/group.h"
namespace ArdourCanvas {
@@ -43,7 +45,7 @@ class Polygon;
* to draw lines at any angle.
*/
-class Arrow : public Group
+class LIBCANVAS_API Arrow : public Group
{
public:
Arrow (Group *);
@@ -62,6 +64,8 @@ public:
void set_y0 (Coord);
void set_y1 (Coord);
+ bool covers (Duple const &) const;
+
private:
void setup_polygon (int);
diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h
index e65abf6b27..616336409d 100644
--- a/libs/canvas/canvas/canvas.h
+++ b/libs/canvas/canvas/canvas.h
@@ -24,12 +24,18 @@
#ifndef __CANVAS_CANVAS_H__
#define __CANVAS_CANVAS_H__
+#include <set>
+
#include <gdkmm/window.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/alignment.h>
#include <cairomm/surface.h>
#include <cairomm/context.h>
+
#include "pbd/signals.h"
+
+#include "canvas/visibility.h"
+
#include "canvas/root_group.h"
namespace ArdourCanvas
@@ -48,7 +54,7 @@ class Group;
* rightwards and y increases downwards.
*/
-class Canvas
+class LIBCANVAS_API Canvas
{
public:
Canvas ();
@@ -63,6 +69,11 @@ public:
/** called to ask the canvas' host to `ungrab' any grabbed item */
virtual void ungrab () = 0;
+ /** called to ask the canvas' host to keyboard focus on an item */
+ virtual void focus (Item *) = 0;
+ /** called to ask the canvas' host to drop keyboard focus on an item */
+ virtual void unfocus (Item*) = 0;
+
void render (Rect const &, Cairo::RefPtr<Cairo::Context> const &) const;
/** @return root group */
@@ -99,6 +110,8 @@ public:
void scroll_to (Coord x, Coord y);
virtual Rect visible_area () const = 0;
+ void zoomed();
+
std::string indent() const;
std::string render_indent() const;
void dump (std::ostream&) const;
@@ -112,12 +125,12 @@ protected:
Coord _scroll_offset_x;
Coord _scroll_offset_y;
- virtual void enter_leave_items (int state) = 0;
- virtual void enter_leave_items (Duple const &, int state) = 0;
+ virtual void pick_current_item (int state) = 0;
+ virtual void pick_current_item (Duple const &, int state) = 0;
};
/** A canvas which renders onto a GTK EventBox */
-class GtkCanvas : public Canvas, public Gtk::EventBox
+class LIBCANVAS_API GtkCanvas : public Canvas, public Gtk::EventBox
{
public:
GtkCanvas ();
@@ -126,6 +139,8 @@ public:
void request_size (Duple);
void grab (Item *);
void ungrab ();
+ void focus (Item *);
+ void unfocus (Item*);
Cairo::RefPtr<Cairo::Context> context ();
@@ -136,23 +151,29 @@ protected:
bool on_button_press_event (GdkEventButton *);
bool on_button_release_event (GdkEventButton* event);
bool on_motion_notify_event (GdkEventMotion *);
+ bool on_enter_notify_event (GdkEventCrossing*);
+ bool on_leave_notify_event (GdkEventCrossing*);
bool button_handler (GdkEventButton *);
bool motion_notify_handler (GdkEventMotion *);
- bool deliver_event (Duple, GdkEvent *);
-
- void enter_leave_items (int state);
- void enter_leave_items (Duple const &, int state);
+ bool deliver_event (GdkEvent *);
+ void deliver_enter_leave (Duple const & point, int state);
+
+ void pick_current_item (int state);
+ void pick_current_item (Duple const &, int state);
private:
void item_going_away (Item *, boost::optional<Rect>);
bool send_leave_event (Item const *, double, double) const;
-
- /** the item that the mouse is currently over, or 0 */
- Item const * _current_item;
+ /** Item currently chosen for event delivery based on pointer position */
+ Item * _current_item;
+ /** Item pending as _current_item */
+ Item * _new_current_item;
/** the item that is currently grabbed, or 0 */
- Item const * _grabbed_item;
+ Item * _grabbed_item;
+ /** the item that currently has key focus or 0 */
+ Item * _focused_item;
};
/** A GTK::Alignment with a GtkCanvas inside it plus some Gtk::Adjustments for
@@ -161,7 +182,7 @@ private:
* This provides a GtkCanvas that can be scrolled. It does NOT implement the
* Gtk::Scrollable interface.
*/
-class GtkCanvasViewport : public Gtk::Alignment
+class LIBCANVAS_API GtkCanvasViewport : public Gtk::Alignment
{
public:
GtkCanvasViewport (Gtk::Adjustment &, Gtk::Adjustment &);
diff --git a/libs/canvas/canvas/circle.h b/libs/canvas/canvas/circle.h
index 030e73312c..ee17208a1f 100644
--- a/libs/canvas/canvas/circle.h
+++ b/libs/canvas/canvas/circle.h
@@ -19,11 +19,13 @@
#ifndef __CANVAS_CIRCLE_H__
#define __CANVAS_CIRCLE_H__
+#include "canvas/visibility.h"
+
#include "canvas/arc.h"
namespace ArdourCanvas {
-class Circle : public Arc
+class LIBCANVAS_API Circle : public Arc
{
public:
Circle (Group *);
diff --git a/libs/canvas/canvas/curve.h b/libs/canvas/canvas/curve.h
index f2ed6a1d0e..93c14386dc 100644
--- a/libs/canvas/canvas/curve.h
+++ b/libs/canvas/canvas/curve.h
@@ -19,21 +19,23 @@
#ifndef __CANVAS_CURVE_H__
#define __CANVAS_CURVE_H__
+#include "canvas/visibility.h"
+
#include "canvas/poly_item.h"
namespace ArdourCanvas {
-class Curve : public PolyItem
+class LIBCANVAS_API Curve : public PolyItem
{
public:
Curve (Group *);
void compute_bounding_box () const;
-
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
-
void set (Points const &);
+ bool covers (Duple const &) const;
+
protected:
void render_path (Rect const &, Cairo::RefPtr<Cairo::Context>) const;
void render_curve (Rect const &, Cairo::RefPtr<Cairo::Context>) const;
diff --git a/libs/canvas/canvas/debug.h b/libs/canvas/canvas/debug.h
index a025e605dc..5feb42c8a5 100644
--- a/libs/canvas/canvas/debug.h
+++ b/libs/canvas/canvas/debug.h
@@ -24,12 +24,14 @@
#include <map>
#include "pbd/debug.h"
+#include "canvas/visibility.h"
+
namespace PBD {
namespace DEBUG {
- extern uint64_t CanvasItems;
- extern uint64_t CanvasItemsDirtied;
- extern uint64_t CanvasEvents;
- extern uint64_t CanvasRender;
+ LIBCANVAS_API extern uint64_t CanvasItems;
+ LIBCANVAS_API extern uint64_t CanvasItemsDirtied;
+ LIBCANVAS_API extern uint64_t CanvasEvents;
+ LIBCANVAS_API extern uint64_t CanvasRender;
}
}
@@ -40,13 +42,14 @@ namespace PBD {
#endif
namespace ArdourCanvas {
- extern struct timeval epoch;
- extern std::map<std::string, struct timeval> last_time;
- extern void checkpoint (std::string, std::string);
- extern void set_epoch ();
- extern int render_count;
- extern int render_depth;
- extern int dump_depth;
+ LIBCANVAS_API extern struct timeval epoch;
+ LIBCANVAS_API extern std::map<std::string, struct timeval> last_time;
+ LIBCANVAS_API extern void checkpoint (std::string, std::string);
+ LIBCANVAS_API extern void set_epoch ();
+ LIBCANVAS_API extern const char* event_type_string (int event_type);
+ LIBCANVAS_API extern int render_count;
+ LIBCANVAS_API extern int render_depth;
+ LIBCANVAS_API extern int dump_depth;
}
#endif
diff --git a/libs/canvas/canvas/drag_handle.h b/libs/canvas/canvas/drag_handle.h
new file mode 100644
index 0000000000..389386fb1a
--- /dev/null
+++ b/libs/canvas/canvas/drag_handle.h
@@ -0,0 +1,41 @@
+/*
+ Copyright (C) 2011-2014 Paul Davis
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef __canvas_drag_handle_h__
+#define __canvas_drag_handle_h__
+
+#include "canvas/rectangle.h"
+#include "canvas/circle.h"
+
+namespace ArdourCanvas
+{
+
+class LIBCANVAS_API DragHandle : public Rectangle
+{
+ public:
+ DragHandle (Group *, Rect const &, bool left_side);
+ void render (Rect const &, Cairo::RefPtr<Cairo::Context>) const;
+
+ protected:
+ bool _left_side;
+};
+
+}
+
+
+#endif /* __canvas_drag_handle_h__ */
diff --git a/libs/canvas/canvas/fill.h b/libs/canvas/canvas/fill.h
index f52260c571..23708e42e5 100644
--- a/libs/canvas/canvas/fill.h
+++ b/libs/canvas/canvas/fill.h
@@ -22,11 +22,13 @@
#include <vector>
#include <stdint.h>
+
+#include "canvas/visibility.h"
#include "canvas/item.h"
namespace ArdourCanvas {
-class Fill : virtual public Item
+class LIBCANVAS_API Fill : virtual public Item
{
public:
Fill (Group *);
diff --git a/libs/canvas/canvas/flag.h b/libs/canvas/canvas/flag.h
index 6664524a19..0975d9373e 100644
--- a/libs/canvas/canvas/flag.h
+++ b/libs/canvas/canvas/flag.h
@@ -17,6 +17,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "canvas/visibility.h"
#include "canvas/group.h"
#include "canvas/types.h"
@@ -26,13 +27,15 @@ class Text;
class Line;
class Rectangle;
-class Flag : public Group
+class LIBCANVAS_API Flag : public Group
{
public:
Flag (Group *, Distance, Color, Color, Duple);
void set_text (std::string const &);
void set_height (Distance);
+
+ bool covers (Duple const &) const;
private:
Distance _height;
diff --git a/libs/canvas/canvas/group.h b/libs/canvas/canvas/group.h
index 9a72d50873..b89f1467ba 100644
--- a/libs/canvas/canvas/group.h
+++ b/libs/canvas/canvas/group.h
@@ -22,13 +22,15 @@
#include <list>
#include <vector>
+
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/types.h"
#include "canvas/lookup_table.h"
namespace ArdourCanvas {
-class Group : public Item
+class LIBCANVAS_API Group : public Item
{
public:
explicit Group (Group *);
@@ -44,7 +46,7 @@ public:
std::list<Item*> const & items () const {
return _items;
}
-
+
void raise_child_to_top (Item *);
void raise_child (Item *, int);
void lower_child_to_bottom (Item *);
diff --git a/libs/canvas/canvas/image.h b/libs/canvas/canvas/image.h
index 0dcf8e51b3..d54edd3827 100644
--- a/libs/canvas/canvas/image.h
+++ b/libs/canvas/canvas/image.h
@@ -23,6 +23,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp>
+#include "canvas/visibility.h"
#include "canvas/item.h"
typedef void (*ImageReleaseCallback)(uint8_t *d, void *arg);
@@ -30,7 +31,7 @@ typedef void (*ImageReleaseCallback)(uint8_t *d, void *arg);
namespace ArdourCanvas {
-class Image : public Item
+class LIBCANVAS_API Image : public Item
{
public:
Image (Group *, Cairo::Format, int width, int height);
@@ -90,7 +91,7 @@ public:
void render (Rect const &, Cairo::RefPtr<Cairo::Context>) const;
void compute_bounding_box () const;
-
+
private:
Cairo::Format _format;
int _width;
diff --git a/libs/canvas/canvas/item.h b/libs/canvas/canvas/item.h
index e856c7e149..da061f5bfc 100644
--- a/libs/canvas/canvas/item.h
+++ b/libs/canvas/canvas/item.h
@@ -28,6 +28,7 @@
#include "pbd/signals.h"
+#include "canvas/visibility.h"
#include "canvas/types.h"
namespace ArdourCanvas
@@ -48,7 +49,7 @@ class Rect;
* and all except the `root group' have a pointer to their parent group.
*/
-class Item
+class LIBCANVAS_API Item
{
public:
Item (Canvas *);
@@ -56,6 +57,8 @@ public:
Item (Group *, Duple);
virtual ~Item ();
+ void redraw () const;
+
/** Render this item to a Cairo context.
* @param area Area to draw, in **window** coordinates
*
@@ -73,6 +76,8 @@ public:
items.push_back (this);
}
+ virtual bool covers (Duple const &) const;
+
/** Update _bounding_box and _bounding_box_dirty */
virtual void compute_bounding_box () const = 0;
@@ -86,6 +91,21 @@ public:
Group* parent () const {
return _parent;
}
+
+ uint32_t depth() const;
+ const Item* closest_ancestor_with (const Item& other) const;
+ bool common_ancestor_within (uint32_t, const Item& other) const;
+
+ /** returns true if this item is an ancestor of @param candidate,
+ * and false otherwise.
+ */
+ bool is_ancestor_of (const Item& candidate) const {
+ return candidate.is_descendant_of (*this);
+ }
+ /** returns true if this Item is a descendant of @param candidate,
+ * and false otherwise.
+ */
+ bool is_descendant_of (const Item& candidate) const;
void set_position (Duple);
void set_x_position (Coord);
@@ -222,7 +242,7 @@ private:
bool _ignore_events;
};
-extern std::ostream& operator<< (std::ostream&, const ArdourCanvas::Item&);
+extern LIBCANVAS_API std::ostream& operator<< (std::ostream&, const ArdourCanvas::Item&);
}
diff --git a/libs/canvas/canvas/line.h b/libs/canvas/canvas/line.h
index 36c0f48379..85b1d41e15 100644
--- a/libs/canvas/canvas/line.h
+++ b/libs/canvas/canvas/line.h
@@ -20,19 +20,21 @@
#ifndef __CANVAS_LINE_H__
#define __CANVAS_LINE_H__
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/outline.h"
#include "canvas/poly_line.h"
namespace ArdourCanvas {
-class Line : virtual public Item, public Outline
+class LIBCANVAS_API Line : virtual public Item, public Outline
{
public:
Line (Group *);
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
void compute_bounding_box () const;
+ bool covers (Duple const &) const;
void set (Duple, Duple);
void set_x0 (Coord);
diff --git a/libs/canvas/canvas/line_set.h b/libs/canvas/canvas/line_set.h
index cd551438b1..a9b13651d9 100644
--- a/libs/canvas/canvas/line_set.h
+++ b/libs/canvas/canvas/line_set.h
@@ -17,11 +17,12 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "canvas/visibility.h"
#include "canvas/item.h"
namespace ArdourCanvas {
-class LineSet : public Item
+class LIBCANVAS_API LineSet : public Item
{
public:
enum Orientation {
@@ -34,6 +35,8 @@ public:
void compute_bounding_box () const;
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
+ bool covers (Duple const &) const;
+
void set_height (Distance);
void add (Coord, Distance, Color);
diff --git a/libs/canvas/canvas/lookup_table.h b/libs/canvas/canvas/lookup_table.h
index 4ab69b6167..5be33c1bca 100644
--- a/libs/canvas/canvas/lookup_table.h
+++ b/libs/canvas/canvas/lookup_table.h
@@ -22,6 +22,8 @@
#include <vector>
#include <boost/multi_array.hpp>
+
+#include "canvas/visibility.h"
#include "canvas/types.h"
class OptimizingLookupTableTest;
@@ -31,53 +33,56 @@ namespace ArdourCanvas {
class Item;
class Group;
-class LookupTable
+class LIBCANVAS_API LookupTable
{
public:
- LookupTable (Group const &);
- virtual ~LookupTable ();
-
- virtual std::vector<Item*> get (Rect const &) = 0;
- virtual std::vector<Item*> items_at_point (Duple) const = 0;
+ LookupTable (Group const &);
+ virtual ~LookupTable ();
+
+ virtual std::vector<Item*> get (Rect const &) = 0;
+ virtual std::vector<Item*> items_at_point (Duple const &) const = 0;
+ virtual bool has_item_at_point (Duple const & point) const = 0;
protected:
- Group const & _group;
+ Group const & _group;
};
-class DumbLookupTable : public LookupTable
+class LIBCANVAS_API DumbLookupTable : public LookupTable
{
public:
- DumbLookupTable (Group const &);
-
- std::vector<Item*> get (Rect const &);
- std::vector<Item*> items_at_point (Duple) const;
+ DumbLookupTable (Group const &);
+
+ std::vector<Item*> get (Rect const &);
+ std::vector<Item*> items_at_point (Duple const &) const;
+ bool has_item_at_point (Duple const & point) const;
};
-class OptimizingLookupTable : public LookupTable
+class LIBCANVAS_API OptimizingLookupTable : public LookupTable
{
public:
- OptimizingLookupTable (Group const &, int);
- ~OptimizingLookupTable ();
- std::vector<Item*> get (Rect const &);
- std::vector<Item*> items_at_point (Duple) const;
-
- static int default_items_per_cell;
-
-private:
-
- void area_to_indices (Rect const &, int &, int &, int &, int &) const;
- void point_to_indices (Duple, int &, int &) const;
-
- friend class ::OptimizingLookupTableTest;
-
- typedef std::vector<Item*> Cell;
- int _items_per_cell;
- int _dimension;
- Duple _cell_size;
- Duple _offset;
- Cell** _cells;
- bool _added;
+ OptimizingLookupTable (Group const &, int);
+ ~OptimizingLookupTable ();
+ std::vector<Item*> get (Rect const &);
+ std::vector<Item*> items_at_point (Duple const &) const;
+ bool has_item_at_point (Duple const & point) const;
+
+ static int default_items_per_cell;
+
+ private:
+
+ void area_to_indices (Rect const &, int &, int &, int &, int &) const;
+ void point_to_indices (Duple, int &, int &) const;
+
+ friend class ::OptimizingLookupTableTest;
+
+ typedef std::vector<Item*> Cell;
+ int _items_per_cell;
+ int _dimension;
+ Duple _cell_size;
+ Duple _offset;
+ Cell** _cells;
+ bool _added;
};
}
diff --git a/libs/canvas/canvas/outline.h b/libs/canvas/canvas/outline.h
index c315da874c..972c07b11c 100644
--- a/libs/canvas/canvas/outline.h
+++ b/libs/canvas/canvas/outline.h
@@ -21,12 +21,14 @@
#define __CANVAS_OUTLINE_H__
#include <stdint.h>
+
+#include "canvas/visibility.h"
#include "canvas/types.h"
#include "canvas/item.h"
namespace ArdourCanvas {
-class Outline : virtual public Item
+class LIBCANVAS_API Outline : virtual public Item
{
public:
Outline (Group *);
@@ -50,27 +52,6 @@ public:
virtual void set_outline (bool);
-#ifdef CANVAS_COMPATIBILITY
- int& property_first_arrowhead () {
- return _foo_int;
- }
- int& property_last_arrowhead () {
- return _foo_int;
- }
- int& property_arrow_shape_a () {
- return _foo_int;
- }
- int& property_arrow_shape_b () {
- return _foo_int;
- }
- int& property_arrow_shape_c () {
- return _foo_int;
- }
- bool& property_draw () {
- return _foo_bool;
- }
-#endif
-
protected:
void setup_outline_context (Cairo::RefPtr<Cairo::Context>) const;
@@ -78,11 +59,6 @@ protected:
Color _outline_color;
Distance _outline_width;
bool _outline;
-
-#ifdef CANVAS_COMPATIBILITY
- int _foo_int;
- bool _foo_bool;
-#endif
};
}
diff --git a/libs/canvas/canvas/pixbuf.h b/libs/canvas/canvas/pixbuf.h
index ed1be5fe5c..3974b560a9 100644
--- a/libs/canvas/canvas/pixbuf.h
+++ b/libs/canvas/canvas/pixbuf.h
@@ -22,6 +22,7 @@
#include <glibmm/refptr.h>
+#include "canvas/visibility.h"
#include "canvas/item.h"
namespace Gdk {
@@ -30,7 +31,7 @@ namespace Gdk {
namespace ArdourCanvas {
-class Pixbuf : public Item
+class LIBCANVAS_API Pixbuf : public Item
{
public:
Pixbuf (Group *);
diff --git a/libs/canvas/canvas/poly_item.h b/libs/canvas/canvas/poly_item.h
index 10e41e9ca6..4745d24ab9 100644
--- a/libs/canvas/canvas/poly_item.h
+++ b/libs/canvas/canvas/poly_item.h
@@ -20,12 +20,13 @@
#ifndef __CANVAS_POLY_ITEM_H__
#define __CANVAS_POLY_ITEM_H__
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/outline.h"
namespace ArdourCanvas {
-class PolyItem : virtual public Item, public Outline
+class LIBCANVAS_API PolyItem : virtual public Item, public Outline
{
public:
PolyItem (Group *);
diff --git a/libs/canvas/canvas/poly_line.h b/libs/canvas/canvas/poly_line.h
index 911dd140fc..72c20e0674 100644
--- a/libs/canvas/canvas/poly_line.h
+++ b/libs/canvas/canvas/poly_line.h
@@ -20,17 +20,20 @@
#ifndef __CANVAS_POLY_LINE_H__
#define __CANVAS_POLY_LINE_H__
+#include "canvas/visibility.h"
#include "canvas/poly_item.h"
#include "canvas/outline.h"
namespace ArdourCanvas {
-class PolyLine : public PolyItem
+class LIBCANVAS_API PolyLine : public PolyItem
{
public:
PolyLine (Group *);
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
+
+ bool covers (Duple const &) const;
};
}
diff --git a/libs/canvas/canvas/polygon.h b/libs/canvas/canvas/polygon.h
index addfe48100..917122a9a2 100644
--- a/libs/canvas/canvas/polygon.h
+++ b/libs/canvas/canvas/polygon.h
@@ -20,18 +20,29 @@
#ifndef __CANVAS_POLYGON_H__
#define __CANVAS_POLYGON_H__
+#include "canvas/visibility.h"
#include "canvas/poly_item.h"
#include "canvas/outline.h"
#include "canvas/fill.h"
namespace ArdourCanvas {
-class Polygon : public PolyItem, public Fill
+class LIBCANVAS_API Polygon : public PolyItem, public Fill
{
public:
Polygon (Group *);
+ virtual ~Polygon();
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
+ void compute_bounding_box () const;
+ bool covers (Duple const &) const;
+
+ protected:
+ mutable float* multiple;
+ mutable float* constant;
+ mutable Points::size_type cached_size;
+
+ void cache_shape_computation () const;
};
}
diff --git a/libs/canvas/canvas/rectangle.h b/libs/canvas/canvas/rectangle.h
index f93324b39e..ff2ff994b7 100644
--- a/libs/canvas/canvas/rectangle.h
+++ b/libs/canvas/canvas/rectangle.h
@@ -20,6 +20,7 @@
#ifndef __CANVAS_RECTANGLE_H__
#define __CANVAS_RECTANGLE_H__
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/types.h"
#include "canvas/outline.h"
@@ -28,7 +29,7 @@
namespace ArdourCanvas
{
-class Rectangle : virtual public Item, public Outline, public Fill
+class LIBCANVAS_API Rectangle : virtual public Item, public Outline, public Fill
{
public:
Rectangle (Group *);
diff --git a/libs/canvas/canvas/root_group.h b/libs/canvas/canvas/root_group.h
index 74cfbac29f..70c3e5b90b 100644
--- a/libs/canvas/canvas/root_group.h
+++ b/libs/canvas/canvas/root_group.h
@@ -20,11 +20,12 @@
#ifndef __CANVAS_ROOT_GROUP_H__
#define __CANVAS_ROOT_GROUP_H__
-#include "group.h"
+#include "canvas/visibility.h"
+#include "canvas/group.h"
namespace ArdourCanvas {
-class RootGroup : public Group
+class LIBCANVAS_API RootGroup : public Group
{
private:
friend class Canvas;
diff --git a/libs/canvas/canvas/text.h b/libs/canvas/canvas/text.h
index 6ae6d58a37..59d2007ceb 100644
--- a/libs/canvas/canvas/text.h
+++ b/libs/canvas/canvas/text.h
@@ -23,11 +23,12 @@
#include <pangomm/fontdescription.h>
#include <pangomm/layout.h>
+#include "canvas/visibility.h"
#include "canvas/item.h"
namespace ArdourCanvas {
-class Text : public Item
+class LIBCANVAS_API Text : public Item
{
public:
Text (Group *);
@@ -46,6 +47,8 @@ public:
void set_size_chars (int nchars);
void dump (std::ostream&) const;
+ std::string text() const { return _text; }
+
private:
std::string _text;
uint32_t _color;
@@ -59,6 +62,8 @@ private:
double _clamped_width;
void redraw (Cairo::RefPtr<Cairo::Context>) const;
+ void redraw (Glib::RefPtr<Pango::Context>) const;
+ void _redraw (Glib::RefPtr<Pango::Layout>) const;
};
}
diff --git a/libs/canvas/canvas/types.h b/libs/canvas/canvas/types.h
index 33bb92ca58..1e8b7b145f 100644
--- a/libs/canvas/canvas/types.h
+++ b/libs/canvas/canvas/types.h
@@ -27,6 +27,8 @@
#include <cairomm/refptr.h>
+#include "canvas/visibility.h"
+
namespace Cairo {
struct Context;
}
@@ -38,9 +40,9 @@ typedef double Coord;
typedef double Distance;
typedef uint32_t Color;
-extern Coord const COORD_MAX;
+extern LIBCANVAS_API Coord const COORD_MAX;
-struct Duple
+struct LIBCANVAS_API Duple
{
Duple ()
: x (0)
@@ -59,14 +61,14 @@ struct Duple
};
-extern Duple operator- (Duple const &);
-extern Duple operator+ (Duple const &, Duple const &);
-extern bool operator== (Duple const &, Duple const &);
-extern Duple operator- (Duple const &, Duple const &);
-extern Duple operator/ (Duple const &, double);
-extern std::ostream & operator<< (std::ostream &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &);
+extern LIBCANVAS_API Duple operator+ (Duple const &, Duple const &);
+extern LIBCANVAS_API bool operator== (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator/ (Duple const &, double);
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Duple const &);
-struct Rect
+struct LIBCANVAS_API Rect
{
Rect ()
: x0 (0)
@@ -93,9 +95,7 @@ struct Rect
Rect expand (Distance) const;
bool contains (Duple) const;
Rect fix () const;
-
- Rect convert_to_device (Cairo::RefPtr<Cairo::Context>) const;
- Rect convert_to_user (Cairo::RefPtr<Cairo::Context>) const;
+ bool empty() const { return (x0 == x1 && y0 == y1); }
Distance width () const {
return x1 - x0;
@@ -106,7 +106,7 @@ struct Rect
}
};
-extern std::ostream & operator<< (std::ostream &, Rect const &);
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Rect const &);
typedef std::vector<Duple> Points;
diff --git a/libs/canvas/canvas/utils.h b/libs/canvas/canvas/utils.h
index 9db677b61b..cd9d884475 100644
--- a/libs/canvas/canvas/utils.h
+++ b/libs/canvas/canvas/utils.h
@@ -17,16 +17,19 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "canvas/visibility.h"
#include "canvas/types.h"
namespace ArdourCanvas {
- extern void color_to_hsv (Color color, double& h, double& s, double& v);
- extern Color hsv_to_color (double h, double s, double v, double a);
+ extern LIBCANVAS_API void color_to_hsv (Color color, double& h, double& s, double& v);
+ extern LIBCANVAS_API Color hsv_to_color (double h, double s, double v, double a);
- extern void color_to_rgba (Color, double& r, double& g, double& b, double& a);
- extern Color rgba_to_color (double r, double g, double b, double a);
+ extern LIBCANVAS_API void color_to_rgba (Color, double& r, double& g, double& b, double& a);
+ extern LIBCANVAS_API Color rgba_to_color (double r, double g, double b, double a);
- extern void set_source_rgba (Cairo::RefPtr<Cairo::Context>, Color);
+ extern LIBCANVAS_API void set_source_rgba (Cairo::RefPtr<Cairo::Context>, Color);
+
+ Distance LIBCANVAS_API distance_to_segment_squared (Duple const & p, Duple const & p1, Duple const & p2, double& t, Duple& at);
}
diff --git a/libs/canvas/canvas/visibility.h b/libs/canvas/canvas/visibility.h
new file mode 100644
index 0000000000..e44fe86705
--- /dev/null
+++ b/libs/canvas/canvas/visibility.h
@@ -0,0 +1,45 @@
+/*
+ Copyright (C) 2013 Paul Davis
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __libcanvas_visibility_h__
+#define __libcanvas_visibility_h__
+
+#if defined(COMPILER_MSVC)
+ #define LIBCANVAS_DLL_IMPORT __declspec(dllimport)
+ #define LIBCANVAS_DLL_EXPORT __declspec(dllexport)
+ #define LIBCANVAS_DLL_LOCAL
+#else
+ #define LIBCANVAS_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBCANVAS_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBCANVAS_DLL_LOCAL __attribute__ ((visibility ("hidden")))
+#endif
+
+#ifdef LIBCANVAS_STATIC // libcanvas is not a DLL
+#define LIBCANVAS_API
+#define LIBCANVAS_LOCAL
+#else
+ #ifdef LIBCANVAS_DLL_EXPORTS // defined if we are building the libcanvas DLL (instead of using it)
+ #define LIBCANVAS_API LIBCANVAS_DLL_EXPORT
+ #else
+ #define LIBCANVAS_API LIBCANVAS_DLL_IMPORT
+ #endif
+ #define LIBCANVAS_LOCAL LIBCANVAS_DLL_LOCAL
+#endif
+
+#endif /* __libcanvas_visibility_h__ */
diff --git a/libs/canvas/canvas/wave_view.h b/libs/canvas/canvas/wave_view.h
index fc39d7e555..b80ae5183d 100644
--- a/libs/canvas/canvas/wave_view.h
+++ b/libs/canvas/canvas/wave_view.h
@@ -28,6 +28,7 @@
#include <glibmm/refptr.h>
+#include "canvas/visibility.h"
#include "canvas/item.h"
#include "canvas/fill.h"
#include "canvas/outline.h"
@@ -44,7 +45,7 @@ class WaveViewTest;
namespace ArdourCanvas {
-class WaveView : virtual public Item, public Outline, public Fill
+class LIBCANVAS_API WaveView : virtual public Item, public Outline, public Fill
{
public:
enum Shape {
@@ -97,7 +98,6 @@ public:
double gradient_depth() const { return _gradient_depth; }
void set_shape (Shape);
-
/* currently missing because we don't need them (yet):
set_shape_independent();
set_logscaled_independent()
@@ -115,6 +115,9 @@ public:
void set_amplitude_above_axis (double v);
double amplitude_above_axis () const { return _amplitude_above_axis; }
+ static void set_clip_level (double dB);
+ static PBD::Signal0<void> ClipLevelChanged;
+
#ifdef CANVAS_COMPATIBILITY
void*& property_gain_src () {
return _foo_void;
@@ -163,6 +166,7 @@ private:
static bool _global_logscaled;
static Shape _global_shape;
static bool _global_show_waveform_clipping;
+ static double _clip_level;
static PBD::Signal0<void> VisualPropertiesChanged;
diff --git a/libs/canvas/curve.cc b/libs/canvas/curve.cc
index 5bbd33799d..de988ee4b2 100644
--- a/libs/canvas/curve.cc
+++ b/libs/canvas/curve.cc
@@ -209,3 +209,25 @@ Curve::solve (std::vector<double> const & rhs)
return x;
}
+
+bool
+Curve::covers (Duple const & pc) const
+{
+ Duple point = canvas_to_item (pc);
+
+ /* XXX Hellaciously expensive ... */
+
+ for (Points::const_iterator p = _points.begin(); p != _points.end(); ++p) {
+
+ const Coord dx = point.x - (*p).x;
+ const Coord dy = point.y - (*p).y;
+ const Coord dx2 = dx * dx;
+ const Coord dy2 = dy * dy;
+
+ if ((dx2 < 2.0 && dy2 < 2.0) || (dx2 + dy2 < 4.0)) {
+ return true;
+ }
+ }
+
+ return false;
+}
diff --git a/libs/canvas/debug.cc b/libs/canvas/debug.cc
index 04dd2ef31b..bb154cf528 100644
--- a/libs/canvas/debug.cc
+++ b/libs/canvas/debug.cc
@@ -19,6 +19,7 @@
#include <sys/time.h>
#include <iostream>
+#include <gdk/gdk.h>
#include "canvas/debug.h"
using namespace std;
@@ -70,3 +71,87 @@ ArdourCanvas::checkpoint (string group, string message)
last_time[group] = now;
}
+const char*
+ArdourCanvas::event_type_string (int event_type)
+{
+ switch (event_type) {
+ case GDK_NOTHING:
+ return "nothing";
+ case GDK_DELETE:
+ return "delete";
+ case GDK_DESTROY:
+ return "destroy";
+ case GDK_EXPOSE:
+ return "expose";
+ case GDK_MOTION_NOTIFY:
+ return "motion_notify";
+ case GDK_BUTTON_PRESS:
+ return "button_press";
+ case GDK_2BUTTON_PRESS:
+ return "2button_press";
+ case GDK_3BUTTON_PRESS:
+ return "3button_press";
+ case GDK_BUTTON_RELEASE:
+ return "button_release";
+ case GDK_KEY_PRESS:
+ return "key_press";
+ case GDK_KEY_RELEASE:
+ return "key_release";
+ case GDK_ENTER_NOTIFY:
+ return "enter_notify";
+ case GDK_LEAVE_NOTIFY:
+ return "leave_notify";
+ case GDK_FOCUS_CHANGE:
+ return "focus_change";
+ case GDK_CONFIGURE:
+ return "configure";
+ case GDK_MAP:
+ return "map";
+ case GDK_UNMAP:
+ return "unmap";
+ case GDK_PROPERTY_NOTIFY:
+ return "property_notify";
+ case GDK_SELECTION_CLEAR:
+ return "selection_clear";
+ case GDK_SELECTION_REQUEST:
+ return "selection_request";
+ case GDK_SELECTION_NOTIFY:
+ return "selection_notify";
+ case GDK_PROXIMITY_IN:
+ return "proximity_in";
+ case GDK_PROXIMITY_OUT:
+ return "proximity_out";
+ case GDK_DRAG_ENTER:
+ return "drag_enter";
+ case GDK_DRAG_LEAVE:
+ return "drag_leave";
+ case GDK_DRAG_MOTION:
+ return "drag_motion";
+ case GDK_DRAG_STATUS:
+ return "drag_status";
+ case GDK_DROP_START:
+ return "drop_start";
+ case GDK_DROP_FINISHED:
+ return "drop_finished";
+ case GDK_CLIENT_EVENT:
+ return "client_event";
+ case GDK_VISIBILITY_NOTIFY:
+ return "visibility_notify";
+ case GDK_NO_EXPOSE:
+ return "no_expose";
+ case GDK_SCROLL:
+ return "scroll";
+ case GDK_WINDOW_STATE:
+ return "window_state";
+ case GDK_SETTING:
+ return "setting";
+ case GDK_OWNER_CHANGE:
+ return "owner_change";
+ case GDK_GRAB_BROKEN:
+ return "grab_broken";
+ case GDK_DAMAGE:
+ return "damage";
+ }
+
+ return "unknown";
+}
diff --git a/libs/canvas/drag_handle.cc b/libs/canvas/drag_handle.cc
new file mode 100644
index 0000000000..94b2e7dafb
--- /dev/null
+++ b/libs/canvas/drag_handle.cc
@@ -0,0 +1,55 @@
+/*
+ Copyright (C) 2014 Paul Davis
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <iostream>
+#include <cairomm/context.h>
+#include "pbd/stacktrace.h"
+#include "pbd/compose.h"
+
+#include "canvas/drag_handle.h"
+
+using namespace ArdourCanvas;
+
+DragHandle::DragHandle (Group* g, Rect const & r, bool left_side)
+ : Item (g)
+ , Rectangle (g, r)
+ , _left_side (left_side)
+{
+}
+
+void
+DragHandle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
+{
+ Rectangle::render (area, context);
+
+#if 0
+ Duple circle_center (_left_side ? x0() : x1(), (y1() - y0())/2.0);
+ Duple window_circle_center = item_to_window (circle_center);
+
+ context->set_source_rgba (1.0, 0.0, 0.0, 1.0);
+
+ if (_left_side) {
+ context->arc (window_circle_center.x, window_circle_center.y, 7.0, -M_PI/2.0, +M_PI/2.0);
+ } else {
+ context->arc_negative (window_circle_center.x, window_circle_center.y, 7.0, -M_PI/2.0, +M_PI/2.0);
+ }
+
+ context->fill ();
+#endif
+
+}
diff --git a/libs/canvas/flag.cc b/libs/canvas/flag.cc
index 8eb320e74b..756b54545f 100644
--- a/libs/canvas/flag.cc
+++ b/libs/canvas/flag.cc
@@ -66,3 +66,13 @@ Flag::set_height (Distance)
{
_line->set (Duple (0, 0), Duple (0, _height));
}
+
+bool
+Flag::covers (Duple const & point) const
+{
+ if (_rectangle) {
+ return _rectangle->covers (point);
+ }
+
+ return false;
+}
diff --git a/libs/canvas/group.cc b/libs/canvas/group.cc
index 63754ae72f..619444c4e6 100644
--- a/libs/canvas/group.cc
+++ b/libs/canvas/group.cc
@@ -74,21 +74,21 @@ Group::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
ensure_lut ();
vector<Item*> items = _lut->get (area);
- ++render_depth;
-
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- cerr << string_compose ("%1GROUP %2 render %5 %3 items out of %4\n",
- _canvas->render_indent(), (name.empty() ? string ("[unnamed]") : name), items.size(), _items.size(), area);
+ cerr << string_compose ("%1GROUP %2 @ %7 render %5 @ %6 %3 items out of %4\n",
+ _canvas->render_indent(), (name.empty() ? string ("[unnamed]") : name), items.size(), _items.size(), area, _position, this);
}
#endif
+ ++render_depth;
+
for (vector<Item*>::const_iterator i = items.begin(); i != items.end(); ++i) {
if (!(*i)->visible ()) {
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- // cerr << _canvas->render_indent() << "Item " << (*i)->whatami() << " [" << (*i)->name << "] invisible - skipped\n";
+ cerr << _canvas->render_indent() << "Item " << (*i)->whatami() << " [" << (*i)->name << "] invisible - skipped\n";
}
#endif
continue;
@@ -99,33 +99,52 @@ Group::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
if (!item_bbox) {
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- // cerr << _canvas->render_indent() << "Item " << (*i)->whatami() << " [" << (*i)->name << "] empty - skipped\n";
+ cerr << _canvas->render_indent() << "Item " << (*i)->whatami() << " [" << (*i)->name << "] empty - skipped\n";
}
#endif
continue;
}
-
+
Rect item = (*i)->item_to_window (item_bbox.get());
- boost::optional<Rect> draw = item.intersection (area);
+ boost::optional<Rect> d = item.intersection (area);
- if (draw) {
+ if (d) {
+ Rect draw = d.get();
+ if (draw.width() && draw.height()) {
#ifdef CANVAS_DEBUG
- if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- cerr << string_compose ("%1render %2 %3\n", _canvas->render_indent(), (*i)->whatami(),
- (*i)->name);
- }
+ if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
+ if (dynamic_cast<Group*>(*i) == 0) {
+ cerr << _canvas->render_indent() << "render "
+ << ' '
+ << (*i)
+ << ' '
+ << (*i)->whatami()
+ << ' '
+ << (*i)->name
+ << " item = "
+ << item
+ << " intersect = "
+ << draw
+ << " @ "
+ << _position
+ << endl;
+ }
+ }
#endif
- (*i)->render (area, context);
- ++render_count;
+ (*i)->render (area, context);
+ ++render_count;
+ }
} else {
+
#ifdef CANVAS_DEBUG
if (DEBUG_ENABLED(PBD::DEBUG::CanvasRender)) {
- //cerr << string_compose ("%1skip render of %2 %3, no intersection\n", _canvas->render_indent(), (*i)->whatami(),
- // (*i)->name);
+ cerr << string_compose ("%1skip render of %2 %3, no intersection\n", _canvas->render_indent(), (*i)->whatami(),
+ (*i)->name);
}
#endif
+
}
}
@@ -139,7 +158,9 @@ Group::compute_bounding_box () const
bool have_one = false;
for (list<Item*>::const_iterator i = _items.begin(); i != _items.end(); ++i) {
+
boost::optional<Rect> item_bbox = (*i)->bounding_box ();
+
if (!item_bbox) {
continue;
}
@@ -216,6 +237,12 @@ Group::clear (bool with_delete)
void
Group::raise_child_to_top (Item* i)
{
+ if (!_items.empty()) {
+ if (_items.back() == i) {
+ return;
+ }
+ }
+
_items.remove (i);
_items.push_back (i);
invalidate_lut ();
@@ -242,6 +269,11 @@ Group::raise_child (Item* i, int levels)
void
Group::lower_child_to_bottom (Item* i)
{
+ if (!_items.empty()) {
+ if (_items.front() == i) {
+ return;
+ }
+ }
_items.remove (i);
_items.push_front (i);
invalidate_lut ();
@@ -278,17 +310,24 @@ Group::add_items_at_point (Duple const point, vector<Item const *>& items) const
{
boost::optional<Rect> const bbox = bounding_box ();
- if (!bbox || !bbox.get().contains (point)) {
+ /* Point is in canvas coordinate system */
+
+ if (!bbox || !item_to_canvas (bbox.get()).contains (point)) {
return;
}
- Item::add_items_at_point (point, items);
-
+ /* now recurse and add any items within our group that contain point */
+
ensure_lut ();
-
vector<Item*> our_items = _lut->items_at_point (point);
+
+ if (!our_items.empty()) {
+ /* this adds this group itself to the list of items at point */
+ Item::add_items_at_point (point, items);
+ }
+
for (vector<Item*>::iterator i = our_items.begin(); i != our_items.end(); ++i) {
- (*i)->add_items_at_point (point - (*i)->position(), items);
+ (*i)->add_items_at_point (point, items);
}
}
diff --git a/libs/canvas/item.cc b/libs/canvas/item.cc
index b553d8d6ae..3c3816881a 100644
--- a/libs/canvas/item.cc
+++ b/libs/canvas/item.cc
@@ -287,6 +287,103 @@ Item::reparent (Group* new_parent)
_parent->add (this);
}
+bool
+Item::common_ancestor_within (uint32_t limit, const Item& other) const
+{
+ uint32_t d1 = depth();
+ uint32_t d2 = other.depth();
+ const Item* i1 = this;
+ const Item* i2 = &other;
+
+ /* move towards root until we are at the same level
+ for both items
+ */
+
+ while (d1 != d2) {
+ if (d1 > d2) {
+ i1 = i1->parent();
+ d1--;
+ limit--;
+ } else {
+ i2 = i2->parent();
+ d2--;
+ limit--;
+ }
+ if (limit == 0) {
+ return false;
+ }
+ }
+
+ /* now see if there is a common parent */
+
+ while (i1 != i2) {
+ if (i1) {
+ i1 = i1->parent();
+ }
+ if (i2) {
+ i2 = i2->parent ();
+ }
+
+ limit--;
+ if (limit == 0) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+const Item*
+Item::closest_ancestor_with (const Item& other) const
+{
+ uint32_t d1 = depth();
+ uint32_t d2 = other.depth();
+ const Item* i1 = this;
+ const Item* i2 = &other;
+
+ /* move towards root until we are at the same level
+ for both items
+ */
+
+ while (d1 != d2) {
+ if (d1 > d2) {
+ i1 = i1->parent();
+ d1--;
+ } else {
+ i2 = i2->parent();
+ d2--;
+ }
+ }
+
+ /* now see if there is a common parent */
+
+ while (i1 != i2) {
+ if (i1) {
+ i1 = i1->parent();
+ }
+ if (i2) {
+ i2 = i2->parent ();
+ }
+ }
+
+ return i1;
+}
+
+bool
+Item::is_descendant_of (const Item& candidate) const
+{
+ Item const * i = _parent;
+
+ while (i) {
+ if (i == &candidate) {
+ return true;
+ }
+ i = i->parent();
+ }
+
+ return false;
+}
+
void
Item::grab_focus ()
{
@@ -329,6 +426,14 @@ Item::width () const
}
void
+Item::redraw () const
+{
+ if (_visible && _bounding_box && _canvas) {
+ _canvas->request_redraw (item_to_canvas (_bounding_box.get()));
+ }
+}
+
+void
Item::begin_change ()
{
_pre_change_bounding_box = bounding_box ();
@@ -429,9 +534,40 @@ Item::whatami () const
return type.substr (type.find_last_of (':') + 1);
}
+uint32_t
+Item::depth () const
+{
+ Item* i = _parent;
+ int d = 0;
+ while (i) {
+ ++d;
+ i = i->parent();
+ }
+ return d;
+}
+
+bool
+Item::covers (Duple const & point) const
+{
+ Duple p = canvas_to_item (point);
+
+ if (_bounding_box_dirty) {
+ compute_bounding_box ();
+ }
+
+ boost::optional<Rect> r = bounding_box();
+
+ if (!r) {
+ return false;
+ }
+
+ return r.get().contains (p);
+}
+
ostream&
ArdourCanvas::operator<< (ostream& o, const Item& i)
{
i.dump (o);
return o;
}
+
diff --git a/libs/canvas/line.cc b/libs/canvas/line.cc
index af2a0e47db..61acf89252 100644
--- a/libs/canvas/line.cc
+++ b/libs/canvas/line.cc
@@ -147,3 +147,53 @@ Line::set_y1 (Coord y1)
DEBUG_TRACE (PBD::DEBUG::CanvasItemsDirtied, "canvas item dirty: line change\n");
}
+
+bool
+Line::covers (Duple const & point) const
+{
+ const Duple p = canvas_to_item (point);
+ static const Distance threshold = 2.0;
+
+ /* this quick check works for vertical and horizontal lines, which are
+ * common.
+ */
+
+ if (_points[0].x == _points[1].x) {
+ /* line is vertical, just check x coordinate */
+ return fabs (_points[0].x - p.x) <= threshold;
+ }
+
+ if (_points[0].y == _points[1].y) {
+ /* line is horizontal, just check y coordinate */
+ return fabs (_points[0].y - p.y) <= threshold;
+ }
+
+ Duple at;
+ double t;
+ Duple a (_points[0]);
+ Duple b (_points[1]);
+ const Rect visible (_canvas->visible_area());
+
+ /*
+ Clamp the line endpoints to the visible area of the canvas. If we do
+ not do this, we have a line segment extending to COORD_MAX and our
+ math goes wrong.
+ */
+
+ a.x = min (a.x, visible.x1);
+ a.y = min (a.y, visible.y1);
+ b.x = min (b.x, visible.x1);
+ b.y = min (b.y, visible.y1);
+
+ double d = distance_to_segment_squared (p, a, b, t, at);
+
+ if (t < 0.0 || t > 1.0) {
+ return false;
+ }
+
+ if (d < threshold) {
+ return true;
+ }
+
+ return false;
+}
diff --git a/libs/canvas/line_set.cc b/libs/canvas/line_set.cc
index 5aefe1bf47..1625e0478d 100644
--- a/libs/canvas/line_set.cc
+++ b/libs/canvas/line_set.cc
@@ -45,11 +45,9 @@ LineSet::compute_bounding_box () const
{
if (_lines.empty ()) {
_bounding_box = boost::optional<Rect> ();
- _bounding_box_dirty = false;
- return;
+ } else {
+ _bounding_box = Rect (0, _lines.front().y - (_lines.front().width/2.0), COORD_MAX, min (_height, _lines.back().y - (_lines.back().width/2.0)));
}
-
- _bounding_box = Rect (0, _lines.front().y, COORD_MAX, min (_height, _lines.back().y));
_bounding_box_dirty = false;
}
@@ -67,18 +65,22 @@ LineSet::set_height (Distance height)
void
LineSet::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
{
+ /* area is in window coordinates */
+
for (list<Line>::const_iterator i = _lines.begin(); i != _lines.end(); ++i) {
- if (i->y > area.y1) {
- break;
- } else if (i->y > area.y0) {
- set_source_rgba (context, i->color);
- context->set_line_width (i->width);
- Duple p0 = item_to_window (Duple (area.x0, i->y));
- Duple p1 = item_to_window (Duple (area.x1, i->y));
- context->move_to (p0.x, p0.y);
- context->line_to (p1.x, p1.y);
- context->stroke ();
+
+ Rect self = item_to_window (Rect (0, i->y - (i->width/2.0), COORD_MAX, i->y + (i->width/2.0)));
+ boost::optional<Rect> intersect = self.intersection (area);
+
+ if (!intersect) {
+ continue;
}
+
+ set_source_rgba (context, i->color);
+ context->set_line_width (i->width);
+ context->move_to (intersect->x0, self.y0 + ((self.y1 - self.y0)/2.0));
+ context->line_to (intersect->x1, self.y0 + ((self.y1 - self.y0)/2.0));
+ context->stroke ();
}
}
@@ -102,3 +104,9 @@ LineSet::clear ()
_bounding_box_dirty = true;
end_change ();
}
+
+bool
+LineSet::covers (Duple const & /*point*/) const
+{
+ return false;
+}
diff --git a/libs/canvas/lookup_table.cc b/libs/canvas/lookup_table.cc
index 9697ba8103..f88531537a 100644
--- a/libs/canvas/lookup_table.cc
+++ b/libs/canvas/lookup_table.cc
@@ -49,26 +49,49 @@ DumbLookupTable::get (Rect const &)
return vitems;
}
-/* XXX: what coordinate system is the point in? parent of our group I think */
vector<Item *>
-DumbLookupTable::items_at_point (Duple point) const
+DumbLookupTable::items_at_point (Duple const & point) const
{
- list<Item *> items = _group.items ();
+ /* Point is in canvas coordinate system */
+
+ list<Item *> const & items (_group.items ());
vector<Item *> vitems;
for (list<Item *>::const_iterator i = items.begin(); i != items.end(); ++i) {
- boost::optional<Rect> item_bbox = (*i)->bounding_box ();
- if (item_bbox) {
- Rect parent_bbox = (*i)->item_to_parent (item_bbox.get ());
- if (parent_bbox.contains (point)) {
- vitems.push_back (*i);
- }
+
+ if ((*i)->covers (point)) {
+ // std::cerr << "\t\t" << (*i)->whatami() << '/' << (*i)->name << " covers " << point << std::endl;
+ vitems.push_back (*i);
}
}
return vitems;
}
+bool
+DumbLookupTable::has_item_at_point (Duple const & point) const
+{
+ /* Point is in canvas coordinate system */
+
+ list<Item *> const & items (_group.items ());
+ vector<Item *> vitems;
+
+ for (list<Item *>::const_iterator i = items.begin(); i != items.end(); ++i) {
+
+ if (!(*i)->visible()) {
+ continue;
+ }
+
+ if ((*i)->covers (point)) {
+ // std::cerr << "\t\t" << (*i)->whatami() << '/' << (*i)->name << " covers " << point << std::endl;
+ return true;
+
+ }
+ }
+
+ return false;
+}
+
OptimizingLookupTable::OptimizingLookupTable (Group const & group, int items_per_cell)
: LookupTable (group)
, _items_per_cell (items_per_cell)
@@ -188,7 +211,7 @@ OptimizingLookupTable::point_to_indices (Duple point, int& x, int& y) const
}
vector<Item*>
-OptimizingLookupTable::items_at_point (Duple point) const
+OptimizingLookupTable::items_at_point (Duple const & point) const
{
int x;
int y;
@@ -223,6 +246,43 @@ OptimizingLookupTable::items_at_point (Duple point) const
return items;
}
+
+bool
+OptimizingLookupTable::has_item_at_point (Duple const & point) const
+{
+ int x;
+ int y;
+ point_to_indices (point, x, y);
+
+ if (x >= _dimension) {
+ cout << "WARNING: x=" << x << ", dim=" << _dimension << ", px=" << point.x << " cellsize=" << _cell_size << "\n";
+ }
+
+ if (y >= _dimension) {
+ cout << "WARNING: y=" << y << ", dim=" << _dimension << ", py=" << point.y << " cellsize=" << _cell_size << "\n";
+ }
+
+ /* XXX: hmm */
+ x = min (_dimension - 1, x);
+ y = min (_dimension - 1, y);
+
+ assert (x >= 0);
+ assert (y >= 0);
+
+ Cell const & cell = _cells[x][y];
+ vector<Item*> items;
+ for (Cell::const_iterator i = cell.begin(); i != cell.end(); ++i) {
+ boost::optional<Rect> const item_bbox = (*i)->bounding_box ();
+ if (item_bbox) {
+ Rect parent_bbox = (*i)->item_to_parent (item_bbox.get ());
+ if (parent_bbox.contains (point)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
/** @param area Area in our owning group's coordinates */
vector<Item*>
diff --git a/libs/canvas/outline.cc b/libs/canvas/outline.cc
index 3e57887070..be8b924df2 100644
--- a/libs/canvas/outline.cc
+++ b/libs/canvas/outline.cc
@@ -32,7 +32,7 @@ using namespace ArdourCanvas;
Outline::Outline (Group* parent)
: Item (parent)
, _outline_color (0x000000ff)
- , _outline_width (0.5)
+ , _outline_width (1.0)
, _outline (true)
{
diff --git a/libs/canvas/poly_item.cc b/libs/canvas/poly_item.cc
index 2500ac90e2..3b2e2efad9 100644
--- a/libs/canvas/poly_item.cc
+++ b/libs/canvas/poly_item.cc
@@ -38,7 +38,6 @@ void
PolyItem::compute_bounding_box () const
{
bool have_one = false;
-
Rect bbox;
for (Points::const_iterator i = _points.begin(); i != _points.end(); ++i) {
@@ -65,26 +64,29 @@ PolyItem::compute_bounding_box () const
}
void
-PolyItem::render_path (Rect const & /*area*/, Cairo::RefPtr<Cairo::Context> context) const
+PolyItem::render_path (Rect const & /* area */, Cairo::RefPtr<Cairo::Context> context) const
{
- bool done_first = false;
- for (Points::const_iterator i = _points.begin(); i != _points.end(); ++i) {
- if (done_first) {
- Duple c = item_to_window (Duple (i->x, i->y));
- context->line_to (c.x, c.y);
- } else {
- Duple c = item_to_window (Duple (i->x, i->y));
- context->move_to (c.x, c.y);
- done_first = true;
- }
+ if (_points.size() < 2) {
+ return;
+ }
+
+ Points::const_iterator i = _points.begin();
+ Duple c (item_to_window (Duple (i->x, i->y)));
+ const double pixel_adjust = (_outline_width == 1.0 ? 0.5 : 0.0);
+
+ context->move_to (c.x + pixel_adjust, c.y + pixel_adjust);
+ ++i;
+
+ while (i != _points.end()) {
+ c = item_to_window (Duple (i->x, i->y));
+ context->line_to (c.x + pixel_adjust, c.y + pixel_adjust);
+ ++i;
}
}
void
PolyItem::render_curve (Rect const & area, Cairo::RefPtr<Cairo::Context> context, Points const & first_control_points, Points const & second_control_points) const
{
- bool done_first = false;
-
if (_points.size() <= 2) {
render_path (area, context);
return;
@@ -92,26 +94,30 @@ PolyItem::render_curve (Rect const & area, Cairo::RefPtr<Cairo::Context> context
Points::const_iterator cp1 = first_control_points.begin();
Points::const_iterator cp2 = second_control_points.begin();
-
- for (Points::const_iterator i = _points.begin(); i != _points.end(); ++i) {
-
- if (done_first) {
-
- Duple c1 = item_to_window (Duple (cp1->x, cp1->y));
- Duple c2 = item_to_window (Duple (cp2->x, cp2->y));
- Duple c3 = item_to_window (Duple (i->x, i->y));
-
- context->curve_to (c1.x, c1.y, c2.x, c2.y, c3.x, c3.y);
-
- cp1++;
- cp2++;
-
- } else {
-
- Duple c = item_to_window (Duple (i->x, i->y));
- context->move_to (c.x, c.y);
- done_first = true;
- }
+ Points::const_iterator p = _points.begin();
+ const double pixel_adjust = (_outline_width == 1.0 ? 0.5 : 0.0);
+
+ Duple c = item_to_window (Duple (p->x, p->y));
+ context->move_to (c.x + pixel_adjust, c.y + pixel_adjust);
+ ++p;
+
+ while (p != _points.end()) {
+
+ Duple c1 = item_to_window (Duple (cp1->x, cp1->y));
+ Duple c2 = item_to_window (Duple (cp2->x, cp2->y));
+
+ c = item_to_window (Duple (p->x, p->y));
+
+ context->curve_to (c1.x + pixel_adjust,
+ c1.y + pixel_adjust,
+ c2.x + pixel_adjust,
+ c2.y + pixel_adjust,
+ c.x + pixel_adjust,
+ c.y + pixel_adjust);
+
+ ++cp1;
+ ++cp2;
+ ++p;
}
}
diff --git a/libs/canvas/poly_line.cc b/libs/canvas/poly_line.cc
index bdc4af9c10..7118e47555 100644
--- a/libs/canvas/poly_line.cc
+++ b/libs/canvas/poly_line.cc
@@ -17,7 +17,11 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <algorithm>
+
#include "canvas/poly_line.h"
+#include "canvas/canvas.h"
+#include "canvas/utils.h"
using namespace ArdourCanvas;
@@ -37,3 +41,55 @@ PolyLine::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) cons
context->stroke ();
}
}
+
+bool
+PolyLine::covers (Duple const & point) const
+{
+ Duple p = canvas_to_item (point);
+
+ const Points::size_type npoints = _points.size();
+
+ if (npoints < 2) {
+ return false;
+ }
+
+ Points::size_type i;
+ Points::size_type j;
+
+ /* repeat for each line segment */
+
+ const Rect visible (_canvas->visible_area());
+ static const double threshold = 2.0;
+
+ for (i = 1, j = 0; i < npoints; ++i, ++j) {
+
+ Duple at;
+ double t;
+ Duple a (_points[j]);
+ Duple b (_points[i]);
+
+ /*
+ Clamp the line endpoints to the visible area of the canvas. If we do
+ not do this, we may have a line segment extending to COORD_MAX and our
+ math goes wrong.
+ */
+
+ a.x = std::min (a.x, visible.x1);
+ a.y = std::min (a.y, visible.y1);
+ b.x = std::min (b.x, visible.x1);
+ b.y = std::min (b.y, visible.y1);
+
+ double d = distance_to_segment_squared (p, a, b, t, at);
+
+ if (t < 0.0 || t > 1.0) {
+ return false;
+ }
+
+ if (d < threshold) {
+ return true;
+ }
+
+ }
+
+ return false;
+}
diff --git a/libs/canvas/polygon.cc b/libs/canvas/polygon.cc
index 1103cedbee..2e81823616 100644
--- a/libs/canvas/polygon.cc
+++ b/libs/canvas/polygon.cc
@@ -25,10 +25,19 @@ Polygon::Polygon (Group* parent)
: Item (parent)
, PolyItem (parent)
, Fill (parent)
+ , multiple (0)
+ , constant (0)
+ , cached_size (0)
{
}
+Polygon::~Polygon ()
+{
+ delete [] multiple;
+ delete [] constant;
+}
+
void
Polygon::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
{
@@ -51,3 +60,72 @@ Polygon::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
}
}
+void
+Polygon::cache_shape_computation () const
+{
+ Points::size_type npoints = _points.size();
+
+ if (npoints == 0) {
+ return;
+ }
+
+ Points::size_type i;
+ Points::size_type j = npoints -1;
+
+ if (cached_size < npoints) {
+ cached_size = npoints;
+ delete [] multiple;
+ multiple = new float[cached_size];
+ delete [] constant;
+ constant = new float[cached_size];
+ }
+
+ for (i = 0; i < npoints; i++) {
+ if (_points[j].y == _points[i].y) {
+ constant[i] = _points[i].x;
+ multiple[i] = 0;
+ } else {
+ constant[i] = _points[i].x-(_points[i].y*_points[j].x)/(_points[j].y-_points[i].y)+(_points[i].y*_points[i].x)/(_points[j].y-_points[i].y);
+ multiple[i] = (_points[j].x-_points[i].x)/(_points[j].y-_points[i].y);
+ }
+
+ j = i;
+ }
+}
+
+bool
+Polygon::covers (Duple const & point) const
+{
+ Duple p = canvas_to_item (point);
+
+ Points::size_type npoints = _points.size();
+
+ if (npoints == 0) {
+ return false;
+ }
+
+ Points::size_type i;
+ Points::size_type j = npoints -1;
+ bool oddNodes = false;
+
+ if (_bounding_box_dirty) {
+ compute_bounding_box ();
+ }
+
+ for (i = 0; i < npoints; i++) {
+ if (((_points[i].y < p.y && _points[j].y >= p.y) || (_points[j].y < p.y && _points[i].y >= p.y))) {
+ oddNodes ^= (p.y * multiple[i] + constant[i] < p.x);
+ }
+ j = i;
+ }
+
+ return oddNodes;
+}
+
+void
+Polygon::compute_bounding_box () const
+{
+ PolyItem::compute_bounding_box ();
+ cache_shape_computation ();
+}
+
diff --git a/libs/canvas/rectangle.cc b/libs/canvas/rectangle.cc
index a5aa0a2895..d5808b9bb0 100644
--- a/libs/canvas/rectangle.cc
+++ b/libs/canvas/rectangle.cc
@@ -36,7 +36,6 @@ Rectangle::Rectangle (Group* parent)
, Fill (parent)
, _outline_what ((What) (LEFT | RIGHT | TOP | BOTTOM))
{
-
}
Rectangle::Rectangle (Group* parent, Rect const & rect)
@@ -53,24 +52,14 @@ void
Rectangle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
{
Rect self = item_to_window (_rect);
- boost::optional<Rect> d = self.intersection (area);
+ boost::optional<Rect> r = self.intersection (area);
- if (!d) {
+ if (!r) {
+ std::cerr << whatami() << '/' << name << " not covered by render area! ... " << self << " vs. " << area << std::endl;
return;
}
-
- Rect draw = d.get();
- static const double boundary = 0.5;
- const double x_limit = _canvas->visible_area().width();
-
- draw.x0 = max (self.x0, max (0.0, draw.x0 - boundary));
- draw.x1 = min (self.x1, min (x_limit, draw.x1 + boundary));
- draw.y0 = max (self.y0, max (0.0, draw.y0 - boundary));
- draw.y1 = min (self.y1, min (x_limit, draw.y1 + boundary));
-
- Rect fill_rect = draw;
- Rect stroke_rect = fill_rect.expand (0.5);
+ Rect draw = r.get ();
if (_fill) {
if (_stops.empty()) {
@@ -78,32 +67,56 @@ Rectangle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) con
} else {
setup_gradient_context (context, self, Duple (draw.x0, draw.y0));
}
- context->rectangle (fill_rect.x0, fill_rect.y0, fill_rect.width(), fill_rect.height());
+
+ context->rectangle (draw.x0, draw.y0, draw.width(), draw.height());
context->fill ();
- }
+ }
if (_outline) {
setup_outline_context (context);
-
- if (_outline_what & LEFT) {
- context->move_to (stroke_rect.x0, stroke_rect.y0);
- context->line_to (stroke_rect.x0, stroke_rect.y1);
- }
-
- if (_outline_what & BOTTOM) {
- context->move_to (stroke_rect.x0, stroke_rect.y1);
- context->line_to (stroke_rect.x1, stroke_rect.y1);
- }
- if (_outline_what & RIGHT) {
- context->move_to (stroke_rect.x1, stroke_rect.y0);
- context->line_to (stroke_rect.x1, stroke_rect.y1);
- }
-
- if (_outline_what & TOP) {
- context->move_to (stroke_rect.x0, stroke_rect.y0);
- context->line_to (stroke_rect.x1, stroke_rect.y0);
+ if (_outline_what == What (LEFT|RIGHT|BOTTOM|TOP)) {
+
+ /* outline must be on pixels (hence 0.5 offset) and
+ must be WITHIN coordinates of rect, not outside it
+ (hence the -2.0 size adjustment, since we use 1
+ pixel on each side for the outline)
+ */
+
+ context->rectangle (self.x0 + 0.5, self.y0 + 0.5, self.width() - 1.0, self.height() - 1.0);
+
+ } else {
+
+ // context->set_line_cap (Cairo::LINE_CAP_SQUARE);
+
+ /* see the cairo FAQ on single pixel lines to see why we do
+ * this expansion of the perimeter.
+ */
+
+ if (_outline_what & LEFT) {
+ /* vertical line: move x-coordinate by 0.5 pixels */
+ context->move_to (self.x0 + 0.5, self.y0);
+ context->line_to (self.x0 + 0.5, self.y1);
+ }
+
+ if (_outline_what & BOTTOM) {
+ /* horizontal line: move y-coordinate by 0.5 pixels */
+ context->move_to (self.x0, self.y1 - 0.5);
+ context->line_to (self.x1, self.y1 - 0.5);
+ }
+
+ if (_outline_what & RIGHT) {
+ /* vertical line: move x-coordinate by 0.5 pixels */
+ context->move_to (self.x1 - 0.5, self.y0);
+ context->line_to (self.x1 - 0.5, self.y1);
+ }
+
+ if (_outline_what & TOP) {
+ /* horizontal line: move y-coordinate by 0.5 pixels */
+ context->move_to (self.x0, self.y0 + 0.5);
+ context->line_to (self.x1, self.y0 + 0.5);
+ }
}
context->stroke ();
@@ -113,9 +126,19 @@ Rectangle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) con
void
Rectangle::compute_bounding_box () const
{
- Rect r = _rect.fix ();
- _bounding_box = boost::optional<Rect> (r.expand (_outline_width / 2));
-
+ if (!_rect.empty()) {
+ Rect r = _rect.fix ();
+
+ /* our outlines are always inside our coordinates, but we have
+ * to ensure that our bounding box fully *contains* the
+ * rectangle
+ *
+ * XXX: or something like that, waffle.
+ *
+ */
+ _bounding_box = _rect.fix ();
+ }
+
_bounding_box_dirty = false;
}
diff --git a/libs/canvas/text.cc b/libs/canvas/text.cc
index 7143f2aca7..438413080a 100644
--- a/libs/canvas/text.cc
+++ b/libs/canvas/text.cc
@@ -71,6 +71,23 @@ Text::redraw (Cairo::RefPtr<Cairo::Context> context) const
Glib::RefPtr<Pango::Layout> layout = Pango::Layout::create (context);
+ _redraw (layout);
+}
+
+void
+Text::redraw (Glib::RefPtr<Pango::Context> context) const
+{
+ if (_text.empty()) {
+ return;
+ }
+
+ Glib::RefPtr<Pango::Layout> layout = Pango::Layout::create (context);
+ _redraw (layout);
+}
+
+void
+Text::_redraw (Glib::RefPtr<Pango::Layout> layout) const
+{
layout->set_text (_text);
if (_font_description) {
@@ -79,13 +96,13 @@ Text::redraw (Cairo::RefPtr<Cairo::Context> context) const
layout->set_alignment (_alignment);
- Pango::Rectangle ink_rect = layout->get_ink_extents();
-
- _origin.x = ink_rect.get_x() / Pango::SCALE;
- _origin.y = ink_rect.get_y() / Pango::SCALE;
+ int w;
+ int h;
- _width = _origin.x + (ink_rect.get_width() / Pango::SCALE);
- _height = _origin.y + (ink_rect.get_height() / Pango::SCALE);
+ layout->get_size (w, h);
+
+ _width = w / Pango::SCALE;
+ _height = h / Pango::SCALE;
_image = Cairo::ImageSurface::create (Cairo::FORMAT_ARGB32, _width, _height);
@@ -116,6 +133,7 @@ Text::render (Rect const & /*area*/, Cairo::RefPtr<Cairo::Context> context) cons
}
Rect self = item_to_window (Rect (0, 0, min (_clamped_width, _width), _height));
+
context->rectangle (self.x0, self.y0, self.width(), self.height());
context->set_source (_image, self.x0, self.y0);
context->fill ();
@@ -137,29 +155,11 @@ Text::compute_bounding_box () const
}
if (_bounding_box_dirty) {
- if (!_image) {
-
- PangoContext* _pc = gdk_pango_context_get ();
- Glib::RefPtr<Pango::Context> context = Glib::wrap (_pc); // context now owns _pc and will free it
- Glib::RefPtr<Pango::Layout> layout = Pango::Layout::create (context);
-
- layout->set_text (_text);
- if (_font_description) {
- layout->set_font_description (*_font_description);
- }
- layout->set_alignment (_alignment);
- Pango::Rectangle const r = layout->get_ink_extents ();
-
- _bounding_box = Rect (
- 0, 0,
- (r.get_x() + r.get_width()) / Pango::SCALE,
- (r.get_y() + r.get_height()) / Pango::SCALE
- );
- } else {
-
- _bounding_box = Rect (0, 0, _image->get_width(), _image->get_height());
+ if (_need_redraw || !_image) {
+ Glib::RefPtr<Pango::Context> context = Glib::wrap (gdk_pango_context_get()); // context now owns C object and will free it
+ redraw (context);
}
-
+ _bounding_box = Rect (0, 0, min (_clamped_width, (double) _image->get_width()), _image->get_height());
_bounding_box_dirty = false;
}
}
diff --git a/libs/canvas/types.cc b/libs/canvas/types.cc
index a8c690bbbe..9d8ed05622 100644
--- a/libs/canvas/types.cc
+++ b/libs/canvas/types.cc
@@ -95,8 +95,8 @@ Rect
Rect::expand (Distance amount) const
{
Rect r;
- r.x0 = x0 - amount;
- r.y0 = y0 - amount;
+ r.x0 = max (0.0, x0 - amount);
+ r.y0 = max (0.0, y0 - amount);
r.x1 = safe_add (x1, amount);
r.y1 = safe_add (y1, amount);
return r;
@@ -121,39 +121,6 @@ Rect::fix () const
return r;
}
-Rect
-Rect::convert_to_device (Cairo::RefPtr<Cairo::Context> c) const
-{
- Coord xa, ya, xb, yb;
-
- xa = x0;
- xb = x1;
- ya = y0;
- yb = y1;
-
- c->user_to_device (xa, ya);
- c->user_to_device (xb, yb);
-
- return Rect (xa, ya, xb, yb);
-}
-
-
-Rect
-Rect::convert_to_user (Cairo::RefPtr<Cairo::Context> c) const
-{
- Coord xa, ya, xb, yb;
-
- xa = x0;
- xb = x1;
- ya = y0;
- yb = y1;
-
- c->device_to_user (xa, ya);
- c->device_to_user (xb, yb);
-
- return Rect (xa, ya, xb, yb);
-}
-
Duple
ArdourCanvas::operator- (Duple const & o)
{
diff --git a/libs/canvas/utils.cc b/libs/canvas/utils.cc
index b431042c35..bdc8fad039 100644
--- a/libs/canvas/utils.cc
+++ b/libs/canvas/utils.cc
@@ -154,3 +154,69 @@ ArdourCanvas::set_source_rgba (Cairo::RefPtr<Cairo::Context> context, Color colo
);
}
+ArdourCanvas::Distance
+ArdourCanvas::distance_to_segment_squared (Duple const & p, Duple const & p1, Duple const & p2, double& t, Duple& at)
+{
+ static const double kMinSegmentLenSquared = 0.00000001; // adjust to suit. If you use float, you'll probably want something like 0.000001f
+ static const double kEpsilon = 1.0E-14; // adjust to suit. If you use floats, you'll probably want something like 1E-7f
+ double dx = p2.x - p1.x;
+ double dy = p2.y - p1.y;
+ double dp1x = p.x - p1.x;
+ double dp1y = p.y - p1.y;
+ const double segLenSquared = (dx * dx) + (dy * dy);
+
+ if (segLenSquared >= -kMinSegmentLenSquared && segLenSquared <= kMinSegmentLenSquared) {
+ // segment is a point.
+ at = p1;
+ t = 0.0;
+ return ((dp1x * dp1x) + (dp1y * dp1y));
+ }
+
+
+ // Project a line from p to the segment [p1,p2]. By considering the line
+ // extending the segment, parameterized as p1 + (t * (p2 - p1)),
+ // we find projection of point p onto the line.
+ // It falls where t = [(p - p1) . (p2 - p1)] / |p2 - p1|^2
+
+ t = ((dp1x * dx) + (dp1y * dy)) / segLenSquared;
+
+ if (t < kEpsilon) {
+ // intersects at or to the "left" of first segment vertex (p1.x, p1.y). If t is approximately 0.0, then
+ // intersection is at p1. If t is less than that, then there is no intersection (i.e. p is not within
+ // the 'bounds' of the segment)
+ if (t > -kEpsilon) {
+ // intersects at 1st segment vertex
+ t = 0.0;
+ }
+ // set our 'intersection' point to p1.
+ at = p1;
+ // Note: If you wanted the ACTUAL intersection point of where the projected lines would intersect if
+ // we were doing PointLineDistanceSquared, then qx would be (p1.x + (t * dx)) and qy would be (p1.y + (t * dy)).
+
+ } else if (t > (1.0 - kEpsilon)) {
+ // intersects at or to the "right" of second segment vertex (p2.x, p2.y). If t is approximately 1.0, then
+ // intersection is at p2. If t is greater than that, then there is no intersection (i.e. p is not within
+ // the 'bounds' of the segment)
+ if (t < (1.0 + kEpsilon)) {
+ // intersects at 2nd segment vertex
+ t = 1.0;
+ }
+ // set our 'intersection' point to p2.
+ at = p2;
+ // Note: If you wanted the ACTUAL intersection point of where the projected lines would intersect if
+ // we were doing PointLineDistanceSquared, then qx would be (p1.x + (t * dx)) and qy would be (p1.y + (t * dy)).
+ } else {
+ // The projection of the point to the point on the segment that is perpendicular succeeded and the point
+ // is 'within' the bounds of the segment. Set the intersection point as that projected point.
+ at = Duple (p1.x + (t * dx), p1.y + (t * dy));
+ }
+
+ // return the squared distance from p to the intersection point. Note that we return the squared distance
+ // as an optimization because many times you just need to compare relative distances and the squared values
+ // works fine for that. If you want the ACTUAL distance, just take the square root of this value.
+ double dpqx = p.x - at.x;
+ double dpqy = p.y - at.y;
+
+ return ((dpqx * dpqx) + (dpqy * dpqy));
+}
+
diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc
index 4ea9ff9fd3..c36ee8f147 100644
--- a/libs/canvas/wave_view.cc
+++ b/libs/canvas/wave_view.cc
@@ -45,8 +45,10 @@ double WaveView::_global_gradient_depth = 0.6;
bool WaveView::_global_logscaled = false;
WaveView::Shape WaveView::_global_shape = WaveView::Normal;
bool WaveView::_global_show_waveform_clipping = true;
+double WaveView::_clip_level = 0.98853;
PBD::Signal0<void> WaveView::VisualPropertiesChanged;
+PBD::Signal0<void> WaveView::ClipLevelChanged;
WaveView::WaveView (Group* parent, boost::shared_ptr<ARDOUR::AudioRegion> region)
: Item (parent)
@@ -57,7 +59,7 @@ WaveView::WaveView (Group* parent, boost::shared_ptr<ARDOUR::AudioRegion> region
, _samples_per_pixel (0)
, _height (64)
, _wave_color (0xffffffff)
- , _show_zero (true)
+ , _show_zero (false)
, _zero_color (0xff0000ff)
, _clip_color (0xff0000ff)
, _logscaled (_global_logscaled)
@@ -161,6 +163,13 @@ alt_log_meter (float power)
return _log_meter (power, -192.0, 0.0, 8.0);
}
+void
+WaveView::set_clip_level (double dB)
+{
+ _clip_level = dB_to_coefficient (dB);
+ ClipLevelChanged ();
+}
+
struct LineTips {
double top;
double bot;
@@ -189,7 +198,7 @@ WaveView::draw_image (PeakData* _peaks, int n_peaks) const
has been scaled by scale_amplitude() already.
*/
- const double clip_level = 0.98853 * _region->scale_amplitude();
+ const double clip_level = _clip_level * _region->scale_amplitude();
if (_shape == WaveView::Rectified) {
@@ -381,9 +390,11 @@ WaveView::draw_image (PeakData* _peaks, int n_peaks) const
}
if (show_zero_line()) {
+
set_source_rgba (context, _zero_color);
- context->move_to (0, position (0.0));
- context->line_to (n_peaks, position (0.0));
+ context->set_line_width (1.0);
+ context->move_to (0, position (0.0) + 0.5);
+ context->line_to (n_peaks, position (0.0) + 0.5);
context->stroke ();
}
}
@@ -686,3 +697,4 @@ WaveView::set_global_show_waveform_clipping (bool yn)
VisualPropertiesChanged (); /* EMIT SIGNAL */
}
}
+
diff --git a/libs/canvas/wscript b/libs/canvas/wscript
index d4b9ad4177..59b2526254 100644
--- a/libs/canvas/wscript
+++ b/libs/canvas/wscript
@@ -34,6 +34,7 @@ canvas_sources = [
'circle.cc',
'curve.cc',
'debug.cc',
+ 'drag_handle.cc',
'item.cc',
'fill.cc',
'flag.cc',
@@ -61,12 +62,16 @@ def options(opt):
def configure(conf):
conf.load ('compiler_cxx')
autowaf.configure(conf)
+ autowaf.build_version_files(path_prefix+'canvas/version.h', path_prefix+'version.cc',
+ 'libcanvas', conf.env['MAJOR'], conf.env['MINOR'], 0,
+ 'LIBCANVAS_API', 'canvas/visibility.h')
autowaf.check_pkg(conf, 'cairomm-1.0', uselib_store='CAIROMM', atleast_version='1.8.4')
def build(bld):
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'cxx cxxshlib', source=canvas_sources)
+ obj.defines = [ 'LIBCANVAS_DLL_EXPORTS=1' ]
else:
obj = bld.stlib(features = 'cxx cxxstlib', source=canvas_sources)
obj.cxxflags = [ '-fPIC' ]
diff --git a/libs/clearlooks-newer/clearlooks_draw_glossy.c b/libs/clearlooks-newer/clearlooks_draw_glossy.c
index 0e573e1b53..a8dd9ef7a3 100644
--- a/libs/clearlooks-newer/clearlooks_draw_glossy.c
+++ b/libs/clearlooks-newer/clearlooks_draw_glossy.c
@@ -746,7 +746,7 @@ clearlooks_glossy_draw_tab (cairo_t *cr,
if (params->active)
{
- CairoColor shadow, hilight, f1, f2;
+ CairoColor shadow, f1, f2;
pattern = cairo_pattern_create_linear (tab->gap_side == CL_GAP_LEFT ? width-1 : 0,
tab->gap_side == CL_GAP_TOP ? height-2 : 1,
diff --git a/libs/clearlooks-newer/clearlooks_rc_style.c b/libs/clearlooks-newer/clearlooks_rc_style.c
index b54abebb4d..8d6e0aa898 100644
--- a/libs/clearlooks-newer/clearlooks_rc_style.c
+++ b/libs/clearlooks-newer/clearlooks_rc_style.c
@@ -306,7 +306,7 @@ clearlooks_gtk2_rc_parse_style (GtkSettings *settings,
static guint
clearlooks_gtk2_rc_parse_dummy (GtkSettings *settings,
GScanner *scanner,
- gchar *name)
+ const gchar *name)
{
guint token;
diff --git a/libs/clearlooks-newer/wscript b/libs/clearlooks-newer/wscript
index 68abc4de01..e0e5d5fb8a 100644
--- a/libs/clearlooks-newer/wscript
+++ b/libs/clearlooks-newer/wscript
@@ -36,6 +36,7 @@ def build(bld):
obj.uselib = 'GTK'
obj.includes = '.'
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'engines')
+ autowaf.ensure_visible_symbols (obj, True)
if sys.platform == 'darwin':
# Bit of a hack: make a symlink to the .dylib that meets GTK's criteria for finding it (namely that the library must be a *.so
diff --git a/libs/evoral/evoral/Note.hpp b/libs/evoral/evoral/Note.hpp
index 0effff10b9..e84d6b9dc4 100644
--- a/libs/evoral/evoral/Note.hpp
+++ b/libs/evoral/evoral/Note.hpp
@@ -33,7 +33,7 @@ namespace Evoral {
* Currently a note is defined as (on event, length, off event).
*/
template<typename Time>
-class /*LIBEVORAL_API*/ Note {
+class LIBEVORAL_TEMPLATE_API Note {
public:
Note(uint8_t chan=0, Time time=0, Time len=0, uint8_t note=0, uint8_t vel=0x40);
Note(const Note<Time>& copy);
@@ -116,7 +116,9 @@ template<typename Time>
return o;
}
+#ifdef COMPILER_MSVC
#include "../src/Note.impl"
+#endif
#endif // EVORAL_NOTE_HPP
diff --git a/libs/evoral/evoral/TimeConverter.hpp b/libs/evoral/evoral/TimeConverter.hpp
index 29576c6ee8..5572876cef 100644
--- a/libs/evoral/evoral/TimeConverter.hpp
+++ b/libs/evoral/evoral/TimeConverter.hpp
@@ -35,7 +35,7 @@ namespace Evoral {
* from() converts a time _origin_b + b into an offset from _origin_b in units of A.
*/
template<typename A, typename B>
-class LIBEVORAL_API TimeConverter {
+class LIBEVORAL_TEMPLATE_API TimeConverter {
public:
TimeConverter () : _origin_b (0) {}
TimeConverter (B ob) : _origin_b (ob) {}
@@ -65,16 +65,12 @@ protected:
* going on.
*/
template<typename A, typename B>
-class /*LIBEVORAL_API*/ IdentityConverter : public TimeConverter<A,B> {
+class LIBEVORAL_TEMPLATE_API IdentityConverter : public TimeConverter<A,B> {
public:
- LIBEVORAL_API /* Added by JE - 27-10-2013 */IdentityConverter() {}
-
- LIBEVORAL_API /* Added by JE - 27-10-2013 */B to(A a) const;
- LIBEVORAL_API /* Added by JE - 27-10-2013 */A from(B b) const;
-/* Changed by JE - 27-10-2013. Was formerly. . .
- B to(A a) const { return static_cast<B>(a); }
- A from(B b) const { return static_cast<A>(b); }
-*/
+ IdentityConverter() {}
+
+ B to(A a) const;
+ A from(B b) const;
};
diff --git a/libs/evoral/evoral/visibility.h b/libs/evoral/evoral/visibility.h
index 380caca2fd..7f4a898875 100644
--- a/libs/evoral/evoral/visibility.h
+++ b/libs/evoral/evoral/visibility.h
@@ -20,37 +20,32 @@
#ifndef __libevoral_visibility_h__
#define __libevoral_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * evoral source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBEVORAL_DLL_IMPORT __declspec(dllimport)
#define LIBEVORAL_DLL_EXPORT __declspec(dllexport)
#define LIBEVORAL_DLL_LOCAL
+ #define LIBEVORAL_TEMPLATE_DLL_IMPORT
+ #define LIBEVORAL_TEMPLATE_DLL_EXPORT
#else
- #if __GNUC__ >= 4
- #define LIBEVORAL_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBEVORAL_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBEVORAL_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBEVORAL_DLL_IMPORT
- #define LIBEVORAL_DLL_EXPORT
- #define LIBEVORAL_DLL_LOCAL
- #endif
+ #define LIBEVORAL_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBEVORAL_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBEVORAL_DLL_LOCAL __attribute__ ((visibility ("hidden")))
+ #define LIBEVORAL_TEMPLATE_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBEVORAL_TEMPLATE_DLL_EXPORT __attribute__ ((visibility ("default")))
#endif
-#ifdef LIBEVORAL_DLL // libevoral is a DLL
-#ifdef LIBEVORAL_DLL_EXPORTS // defined if we are building the libevoral DLL (instead of using it)
- #define LIBEVORAL_API LIBEVORAL_DLL_EXPORT
+#ifdef LIBEVORAL_STATIC // libevoral is not a DLL
+ #define LIBEVORAL_API
+ #define LIBEVORAL_LOCAL
#else
+ #ifdef LIBEVORAL_DLL_EXPORTS // defined if we are building the libevoral DLL (instead of using it)
+ #define LIBEVORAL_API LIBEVORAL_DLL_EXPORT
+ #define LIBEVORAL_TEMPLATE_API LIBEVORAL_TEMPLATE_DLL_EXPORT
+ #else
#define LIBEVORAL_API LIBEVORAL_DLL_IMPORT
-#endif
-#define LIBEVORAL_LOCAL LIBEVORAL_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBEVORAL_API
-#define LIBEVORAL_LOCAL
+ #define LIBEVORAL_TEMPLATE_API LIBEVORAL_TEMPLATE_DLL_IMPORT
+ #endif
+ #define LIBEVORAL_LOCAL LIBEVORAL_DLL_LOCAL
#endif
#endif /* __libevoral_visibility_h__ */
diff --git a/libs/evoral/src/IdentityConverter.cpp b/libs/evoral/src/IdentityConverter.cpp
index 61e98cacec..1af21debae 100644
--- a/libs/evoral/src/IdentityConverter.cpp
+++ b/libs/evoral/src/IdentityConverter.cpp
@@ -16,9 +16,10 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdint.h>
#include "evoral/TimeConverter.hpp"
-typedef long long framepos_t;
+typedef int64_t framepos_t; /* MUST match libs/ardour/ardour/types.h */
namespace Evoral {
diff --git a/libs/evoral/src/Note.impl b/libs/evoral/src/Note.impl
new file mode 100644
index 0000000000..d63e31a831
--- /dev/null
+++ b/libs/evoral/src/Note.impl
@@ -0,0 +1,112 @@
+/* This file is part of Evoral.
+ * Copyright (C) 2008 David Robillard <http://drobilla.net>
+ * Copyright (C) 2000-2008 Paul Davis
+ *
+ * Evoral 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.
+ *
+ * Evoral 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 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 St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <iostream>
+#include <limits>
+#include <glib.h>
+// Commented out by JE - 23-10-2013 #include "evoral/Note.hpp"
+
+namespace Evoral {
+
+template<typename Time>
+Note<Time>::Note(uint8_t chan, Time t, Time l, uint8_t n, uint8_t v)
+ // FIXME: types?
+ : _on_event (0xDE, t, 3, NULL, true)
+ , _off_event (0xAD, t + l, 3, NULL, true)
+{
+ assert(chan < 16);
+
+ _on_event.buffer()[0] = MIDI_CMD_NOTE_ON + chan;
+ _on_event.buffer()[1] = n;
+ _on_event.buffer()[2] = v;
+
+ _off_event.buffer()[0] = MIDI_CMD_NOTE_OFF + chan;
+ _off_event.buffer()[1] = n;
+ _off_event.buffer()[2] = 0x40;
+
+ assert(musical_time_equal (time(),t));
+ assert(musical_time_equal (length(), l));
+ assert(note() == n);
+ assert(velocity() == v);
+ assert(_on_event.channel() == _off_event.channel());
+ assert(channel() == chan);
+}
+
+
+template<typename Time>
+Note<Time>::Note(const Note<Time>& copy)
+ : _on_event(copy._on_event, true)
+ , _off_event(copy._off_event, true)
+{
+ set_id (copy.id());
+
+ assert(_on_event.buffer());
+ assert(_off_event.buffer());
+ /*
+ assert(copy._on_event.size == 3);
+ _on_event.buffer = _on_event_buffer;
+ memcpy(_on_event_buffer, copy._on_event_buffer, 3);
+
+ assert(copy._off_event.size == 3);
+ _off_event.buffer = _off_event_buffer;
+ memcpy(_off_event_buffer, copy._off_event_buffer, 3);
+ */
+
+ assert(musical_time_equal (time(),copy.time()));
+ assert(musical_time_equal (end_time(), copy.end_time()));
+ assert(musical_time_equal (length(), copy.length()));
+ assert(note() == copy.note());
+ assert(velocity() == copy.velocity());
+ assert(_on_event.channel() == _off_event.channel());
+ assert(channel() == copy.channel());
+}
+
+template<typename Time>
+Note<Time>::~Note()
+{
+}
+
+template<typename Time> void
+Note<Time>::set_id (event_id_t id)
+{
+ _on_event.set_id (id);
+ _off_event.set_id (id);
+}
+
+template<typename Time>
+const Note<Time>&
+Note<Time>::operator=(const Note<Time>& other)
+{
+ _on_event = other._on_event;
+ _off_event = other._off_event;
+
+ assert(musical_time_equal (time(),other.time()));
+ assert(musical_time_equal (end_time(), other.end_time()));
+ assert(musical_time_equal (length(), other.length()));
+ assert(note() == other.note());
+ assert(velocity() == other.velocity());
+ assert(_on_event.channel() == _off_event.channel());
+ assert(channel() == other.channel());
+
+ return *this;
+}
+
+template class Note<Evoral::MusicalTime>;
+
+} // namespace Evoral
+
diff --git a/libs/evoral/src/libsmf/smf.c b/libs/evoral/src/libsmf/smf.c
index ba805e0b04..3fde1d831e 100644
--- a/libs/evoral/src/libsmf/smf.c
+++ b/libs/evoral/src/libsmf/smf.c
@@ -155,7 +155,9 @@ smf_track_delete(smf_track_t *track)
void
smf_add_track(smf_t *smf, smf_track_t *track)
{
+#ifndef NDEBUG
int cantfail;
+#endif
assert(track->smf == NULL);
@@ -166,8 +168,13 @@ smf_add_track(smf_t *smf, smf_track_t *track)
track->track_number = smf->number_of_tracks;
if (smf->number_of_tracks > 1) {
+#ifndef NDEBUG
cantfail = smf_set_format(smf, 1);
assert(!cantfail);
+#else
+ smf_set_format(smf, 1);
+#endif
+
}
}
@@ -864,9 +871,8 @@ smf_get_next_event(smf_t *smf)
void
smf_skip_next_event(smf_t *smf)
{
- void *notused;
-
- notused = smf_get_next_event(smf);
+ smf_event_t *ignored = smf_get_next_event(smf);
+ (void) ignored;
}
/**
diff --git a/libs/evoral/src/libsmf/smf_decode.c b/libs/evoral/src/libsmf/smf_decode.c
index 7a64a15d0d..8037fd80d2 100644
--- a/libs/evoral/src/libsmf/smf_decode.c
+++ b/libs/evoral/src/libsmf/smf_decode.c
@@ -494,7 +494,7 @@ static void
note_from_int(char *buf, int note_number)
{
int note, octave;
- char *names[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"};
+ const char *names[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"};
octave = note_number / 12 - 1;
note = note_number % 12;
diff --git a/libs/evoral/src/libsmf/smf_load.c b/libs/evoral/src/libsmf/smf_load.c
index fed4d28bb7..d8168d0e6a 100644
--- a/libs/evoral/src/libsmf/smf_load.c
+++ b/libs/evoral/src/libsmf/smf_load.c
@@ -282,7 +282,11 @@ expected_sysex_length(const unsigned char status, const unsigned char *second_by
uint32_t sysex_length = 0;
uint32_t len = 0;
+#ifndef NDEBUG
+ (void) status;
+#else
assert(status == 0xF0);
+#endif
if (buffer_length < 3) {
g_critical("SMF error: end of buffer in expected_sysex_length().");
@@ -545,7 +549,7 @@ extract_midi_event(const unsigned char *buf, const size_t buffer_length, smf_eve
static smf_event_t *
parse_next_event(smf_track_t *track)
{
- uint32_t time = 0;
+ uint32_t etime = 0;
uint32_t len;
size_t buffer_length;
unsigned char *c, *start;
@@ -564,7 +568,7 @@ parse_next_event(smf_track_t *track)
assert(buffer_length > 0);
/* First, extract time offset from previous event. */
- if (smf_extract_vlq(c, buffer_length, &time, &len))
+ if (smf_extract_vlq(c, buffer_length, &etime, &len))
goto error;
c += len;
@@ -582,7 +586,7 @@ parse_next_event(smf_track_t *track)
track->last_status = event->midi_buffer[0];
track->next_event_offset += c - start;
- smf_track_add_event_delta_pulses(track, event, time);
+ smf_track_add_event_delta_pulses(track, event, etime);
return (event);
@@ -637,7 +641,7 @@ smf_event_is_textual(const smf_event_t *event)
if (event->midi_buffer_length < 4)
return (0);
- if (event->midi_buffer[3] < 1 && event->midi_buffer[3] > 9)
+ if (event->midi_buffer[3] < 1 || event->midi_buffer[3] > 9)
return (0);
return (1);
diff --git a/libs/evoral/src/libsmf/smf_private.h b/libs/evoral/src/libsmf/smf_private.h
index 537a29b889..f415eac9da 100644
--- a/libs/evoral/src/libsmf/smf_private.h
+++ b/libs/evoral/src/libsmf/smf_private.h
@@ -75,6 +75,7 @@ void remove_last_tempo_with_pulses(smf_t *smf, size_t pulses);
int smf_event_is_tempo_change_or_time_signature(const smf_event_t *event) WARN_UNUSED_RESULT;
int smf_event_length_is_valid(const smf_event_t *event) WARN_UNUSED_RESULT;
int is_status_byte(const unsigned char status) WARN_UNUSED_RESULT;
+smf_track_t* smf_find_track_with_next_event (smf_t *smf);
#endif /* SMF_PRIVATE_H */
diff --git a/libs/evoral/src/libsmf/smf_save.c b/libs/evoral/src/libsmf/smf_save.c
index 3b313cff5a..120c3a95eb 100644
--- a/libs/evoral/src/libsmf/smf_save.c
+++ b/libs/evoral/src/libsmf/smf_save.c
@@ -219,7 +219,11 @@ smf_event_new_textual(int type, const char *text)
vlq_length = smf_format_vlq(event->midi_buffer + 2, MAX_VLQ_LENGTH - 2, text_length);
copied_length = snprintf((char *)event->midi_buffer + vlq_length + 2, event->midi_buffer_length - vlq_length - 2, "%s", text);
+#ifndef NDEBUG
+ (void) copied_length; /* stop gcc warning about unusued vars for non-debug build */
+#else
assert(copied_length == text_length);
+#endif
event->midi_buffer_length = 2 + vlq_length + text_length;
diff --git a/libs/evoral/src/libsmf/smf_tempo.c b/libs/evoral/src/libsmf/smf_tempo.c
index 6620cd405c..f3e3f7fc1b 100644
--- a/libs/evoral/src/libsmf/smf_tempo.c
+++ b/libs/evoral/src/libsmf/smf_tempo.c
@@ -133,13 +133,13 @@ maybe_add_to_tempo_map(smf_event_t *event)
/* Tempo Change? */
if (event->midi_buffer[1] == 0x51) {
- int new_tempo = (event->midi_buffer[3] << 16) + (event->midi_buffer[4] << 8) + event->midi_buffer[5];
- if (new_tempo <= 0) {
+ int ntempo = (event->midi_buffer[3] << 16) + (event->midi_buffer[4] << 8) + event->midi_buffer[5];
+ if (ntempo <= 0) {
g_critical("Ignoring invalid tempo change.");
return;
}
- add_tempo(event->track->smf, event->time_pulses, new_tempo);
+ add_tempo(event->track->smf, event->time_pulses, ntempo);
}
/* Time Signature? */
diff --git a/libs/evoral/wscript b/libs/evoral/wscript
index 569aa0fc6b..55c03fcdf5 100644
--- a/libs/evoral/wscript
+++ b/libs/evoral/wscript
@@ -57,7 +57,7 @@ def build(bld):
# Pkgconfig file
#autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD')
- libsmf = bld(features = 'c cshlib')
+ libsmf = bld(features = 'c cstlib')
libsmf.source = '''
src/libsmf/smf.c
src/libsmf/smf_decode.c
@@ -66,11 +66,13 @@ def build(bld):
src/libsmf/smf_tempo.c
'''
libsmf.export_includes = ['./src/libsmf']
- libsmf.defines = 'SMF_VERSION="1.2"'
+ libsmf.defines = ['SMF_VERSION="1.2"', 'LIBSMF_DLL_EXPORTS']
libsmf.includes = ['./src']
libsmf.name = 'libsmf'
libsmf.target = 'smf'
libsmf.uselib = 'GLIB'
+ libsmf.cxxflags = [ '-fPIC' ]
+ libsmf.cflags = [ '-fPIC' ]
libsmf.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
lib_source = '''
@@ -79,6 +81,7 @@ def build(bld):
src/ControlSet.cpp
src/Curve.cpp
src/Event.cpp
+ src/IdentityConverter.cpp
src/midi_util.cpp
src/MIDIEvent.cpp
src/Note.cpp
@@ -91,11 +94,7 @@ def build(bld):
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=lib_source)
# DLL exports for this library
- obj.defines = [ 'LIBEVORAL_DLL=1', 'LIBEVORAL_DLL_EXPORTS=1' ]
- # DLL imports for other libraries
- obj.defines += [ 'LIBPBD_DLL=1' ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
- obj.cflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBEVORAL_DLL_EXPORTS' ]
else:
obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=lib_source)
obj.cxxflags = [ '-fPIC' ]
diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h
index 31fea82a35..5c8ca44f9b 100644
--- a/libs/gtkmm2ext/gtkmm2ext/bindings.h
+++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h
@@ -62,13 +62,9 @@ class LIBGTKMM2EXT_API MouseButton {
std::string name() const;
static bool make_button (const std::string&, MouseButton&);
- static void set_ignored_state (int mask) {
- _ignored_state = mask;
- }
private:
uint64_t _val;
- static uint32_t _ignored_state;
};
class LIBGTKMM2EXT_API ActionMap {
diff --git a/libs/gtkmm2ext/gtkmm2ext/dndvbox.h b/libs/gtkmm2ext/gtkmm2ext/dndvbox.h
index da6690f5f9..157cd59bef 100644
--- a/libs/gtkmm2ext/gtkmm2ext/dndvbox.h
+++ b/libs/gtkmm2ext/gtkmm2ext/dndvbox.h
@@ -298,7 +298,7 @@ private:
/* make up an icon for the drag */
_drag_icon = new Gtk::Window (Gtk::WINDOW_POPUP);
- Gtk::Allocation a = child->widget().get_allocation ();
+ Gtk::Allocation a = child->action_widget().get_allocation ();
_drag_icon->set_size_request (a.get_width(), a.get_height());
_drag_icon->signal_expose_event().connect (sigc::mem_fun (*this, &DnDVBox::icon_expose));
@@ -328,7 +328,7 @@ private:
cairo_t* cr = gdk_cairo_create (_drag_icon->get_window()->gobj ());
- Glib::RefPtr<Gdk::Pixmap> p = _drag_child->widget().get_snapshot();
+ Glib::RefPtr<Gdk::Pixmap> p = _drag_child->action_widget().get_snapshot();
gdk_cairo_set_source_pixmap (cr, p->gobj(), 0, 0);
cairo_rectangle (cr, 0, 0, w, h);
cairo_fill (cr);
diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h
index de939bb136..1e36868814 100644
--- a/libs/gtkmm2ext/gtkmm2ext/utils.h
+++ b/libs/gtkmm2ext/gtkmm2ext/utils.h
@@ -56,6 +56,10 @@ namespace Gtkmm2ext {
LIBGTKMM2EXT_API void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>,
int& width, int& height);
+
+ LIBGTKMM2EXT_API void get_pixel_size (Glib::RefPtr<Pango::Layout>,
+ int& width, int& height);
+
LIBGTKMM2EXT_API void set_size_request_to_display_given_text (Gtk::Widget &w,
const gchar *text,
gint hpadding,
@@ -104,6 +108,7 @@ namespace Gtkmm2ext {
LIBGTKMM2EXT_API void rounded_top_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
LIBGTKMM2EXT_API void rounded_bottom_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
LIBGTKMM2EXT_API void rounded_right_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
+ LIBGTKMM2EXT_API void rounded_left_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
/* C API for rounded rectangles */
@@ -114,6 +119,7 @@ namespace Gtkmm2ext {
LIBGTKMM2EXT_API void rounded_top_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
LIBGTKMM2EXT_API void rounded_bottom_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
LIBGTKMM2EXT_API void rounded_right_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
+ LIBGTKMM2EXT_API void rounded_left_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r=10);
LIBGTKMM2EXT_API Gtk::Label* left_aligned_label (std::string const &);
@@ -121,7 +127,8 @@ namespace Gtkmm2ext {
LIBGTKMM2EXT_API void enable_tooltips ();
LIBGTKMM2EXT_API void disable_tooltips ();
- void convert_bgra_to_rgba (guint8 const *, guint8 * dst, int, int);
+ LIBGTKMM2EXT_API void convert_bgra_to_rgba (guint8 const *, guint8 * dst, int, int);
+ LIBGTKMM2EXT_API const char* event_type_string (int event_type);
};
#endif /* __gtkmm2ext_utils_h__ */
diff --git a/libs/gtkmm2ext/gtkmm2ext/visibility.h b/libs/gtkmm2ext/gtkmm2ext/visibility.h
index ce2d3e6e42..902e94d779 100644
--- a/libs/gtkmm2ext/gtkmm2ext/visibility.h
+++ b/libs/gtkmm2ext/gtkmm2ext/visibility.h
@@ -20,37 +20,26 @@
#ifndef __libgtkmm2ext_visibility_h__
#define __libgtkmm2ext_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * gtkmm2ext source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBGTKMM2EXT_DLL_IMPORT __declspec(dllimport)
#define LIBGTKMM2EXT_DLL_EXPORT __declspec(dllexport)
#define LIBGTKMM2EXT_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBGTKMM2EXT_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBGTKMM2EXT_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBGTKMM2EXT_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBGTKMM2EXT_DLL_IMPORT
- #define LIBGTKMM2EXT_DLL_EXPORT
- #define LIBGTKMM2EXT_DLL_LOCAL
- #endif
+ #define LIBGTKMM2EXT_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBGTKMM2EXT_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBGTKMM2EXT_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBGTKMM2EXT_DLL // libgtkmm2ext is a DLL
-#ifdef LIBGTKMM2EXT_DLL_EXPORTS // defined if we are building the libgtkmm2ext DLL (instead of using it)
- #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_EXPORT
+#ifdef LIBGTKMM2EXT_STATIC // libgtkmm2ext is a DLL
+ #define LIBGTKMM2EXT_API
+ #define LIBGTKMM2EXT_LOCAL
#else
- #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_IMPORT
-#endif
-#define LIBGTKMM2EXT_LOCAL LIBGTKMM2EXT_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBGTKMM2EXT_API
-#define LIBGTKMM2EXT_LOCAL
+ #ifdef LIBGTKMM2EXT_DLL_EXPORTS // defined if we are building the libgtkmm2ext DLL (instead of using it)
+ #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_EXPORT
+ #else
+ #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_IMPORT
+ #endif
+ #define LIBGTKMM2EXT_LOCAL LIBGTKMM2EXT_DLL_LOCAL
#endif
#endif /* __libgtkmm2ext_visibility_h__ */
diff --git a/libs/gtkmm2ext/pixfader.cc b/libs/gtkmm2ext/pixfader.cc
index 0185550259..ef1dffc1dd 100644
--- a/libs/gtkmm2ext/pixfader.cc
+++ b/libs/gtkmm2ext/pixfader.cc
@@ -33,7 +33,9 @@ using namespace Gtk;
using namespace std;
#define CORNER_RADIUS 4
-#define FADER_RESERVE (2*CORNER_RADIUS)
+#define CORNER_SIZE 2
+#define CORNER_OFFSET 1
+#define FADER_RESERVE 5
std::list<PixFader::FaderImage*> PixFader::_patterns;
@@ -54,6 +56,12 @@ PixFader::PixFader (Gtk::Adjustment& adj, int orientation, int fader_length, int
adjustment.signal_value_changed().connect (mem_fun (*this, &PixFader::adjustment_changed));
adjustment.signal_changed().connect (mem_fun (*this, &PixFader::adjustment_changed));
+
+ if (_orien == VERT) {
+ DrawingArea::set_size_request(girth, span);
+ } else {
+ DrawingArea::set_size_request(span, girth);
+ }
}
PixFader::~PixFader ()
@@ -105,11 +113,8 @@ PixFader::create_patterns ()
cairo_surface_t* surface;
cairo_t* tc = 0;
- float radius = CORNER_RADIUS;
- double w = get_width();
-
- if (w <= 1 || get_height() <= 1) {
+ if (get_width() <= 1 || get_height() <= 1) {
return;
}
@@ -136,13 +141,12 @@ PixFader::create_patterns ()
/* paint lower shade */
- w -= 2.0;
-
- shade_pattern = cairo_pattern_create_linear (0.0, 0.0, w, 0);
+ shade_pattern = cairo_pattern_create_linear (0.0, 0.0, get_width() - 2 - CORNER_OFFSET , 0);
cairo_pattern_add_color_stop_rgba (shade_pattern, 0, fr*0.8,fg*0.8,fb*0.8, 1.0);
cairo_pattern_add_color_stop_rgba (shade_pattern, 1, fr*0.6,fg*0.6,fb*0.6, 1.0);
cairo_set_source (tc, shade_pattern);
- Gtkmm2ext::rounded_top_half_rectangle (tc, 1.0, get_height(), w, get_height(), radius-1.5);
+ Gtkmm2ext::rounded_top_half_rectangle (tc, CORNER_OFFSET, get_height() + CORNER_OFFSET,
+ get_width() - CORNER_SIZE, get_height(), CORNER_RADIUS);
cairo_fill (tc);
cairo_pattern_destroy (shade_pattern);
@@ -169,7 +173,8 @@ PixFader::create_patterns ()
cairo_pattern_add_color_stop_rgba (shade_pattern, 0, fr*0.8,fg*0.8,fb*0.8, 1.0);
cairo_pattern_add_color_stop_rgba (shade_pattern, 1, fr*0.6,fg*0.6,fb*0.6, 1.0);
cairo_set_source (tc, shade_pattern);
- Gtkmm2ext::rounded_right_half_rectangle (tc, 0, 1, get_width(), get_height() - 2.0, radius-1.5);
+ Gtkmm2ext::rounded_right_half_rectangle (tc, CORNER_OFFSET, CORNER_OFFSET,
+ get_width() - CORNER_OFFSET, get_height() - CORNER_SIZE, CORNER_RADIUS);
cairo_fill (tc);
cairo_pattern_destroy (shade_pattern);
@@ -212,7 +217,6 @@ PixFader::on_expose_event (GdkEventExpose* ev)
cairo_set_source_rgb (cr, br, bg, bb);
cairo_rectangle (cr, ev->area.x, ev->area.y, ev->area.width, ev->area.height);
cairo_fill (cr);
-
return true;
}
@@ -223,18 +227,27 @@ PixFader::on_expose_event (GdkEventExpose* ev)
float w = get_width();
float h = get_height();
+ Gdk::Color c = get_style()->get_bg (Gtk::STATE_PRELIGHT);
+ cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ cairo_rectangle (cr, 0, 0, w, h);
+ cairo_fill(cr);
+
+ cairo_set_line_width (cr, 1);
+ cairo_set_source_rgba (cr, 0, 0, 0, 1.0);
+
cairo_matrix_t matrix;
+ Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, CORNER_OFFSET, w-CORNER_SIZE, h-CORNER_SIZE, CORNER_RADIUS);
+ cairo_stroke_preserve(cr);
if (_orien == VERT) {
- if (ds > h - FADER_RESERVE) {
- ds = h - FADER_RESERVE;
+ if (ds > h - FADER_RESERVE - CORNER_OFFSET) {
+ ds = h - FADER_RESERVE - CORNER_OFFSET;
}
cairo_set_source (cr, pattern);
cairo_matrix_init_translate (&matrix, 0, (h - ds));
cairo_pattern_set_matrix (pattern, &matrix);
- Gtkmm2ext::rounded_rectangle (cr, 0, 0, w, h, CORNER_RADIUS-1.5);
cairo_fill (cr);
} else {
@@ -258,7 +271,6 @@ PixFader::on_expose_event (GdkEventExpose* ev)
cairo_set_source (cr, pattern);
cairo_matrix_init_translate (&matrix, w - ds, 0);
cairo_pattern_set_matrix (pattern, &matrix);
- Gtkmm2ext::rounded_rectangle (cr, 0, 0, w, h, CORNER_RADIUS-1.5);
cairo_fill (cr);
}
@@ -270,14 +282,14 @@ PixFader::on_expose_event (GdkEventExpose* ev)
context->set_source_rgba (c.get_red_p()*1.5, c.get_green_p()*1.5, c.get_blue_p()*1.5, 0.85);
if ( _orien == VERT) {
if (unity_loc < h ) {
- context->move_to (1.5, unity_loc + .5);
- context->line_to (girth - 1.5, unity_loc + .5);
+ context->move_to (1.5, unity_loc + CORNER_OFFSET + .5);
+ context->line_to (girth - 1.5, unity_loc + CORNER_OFFSET + .5);
context->stroke ();
}
} else {
if ( unity_loc < w ){
- context->move_to (unity_loc + .5, 1.5);
- context->line_to (unity_loc + .5, girth - 1.5);
+ context->move_to (unity_loc - CORNER_OFFSET + .5, 1.5);
+ context->line_to (unity_loc - CORNER_OFFSET + .5, girth - 1.5);
context->stroke ();
}
}
@@ -293,11 +305,11 @@ PixFader::on_expose_event (GdkEventExpose* ev)
}
if (!get_sensitive()) {
- Gtkmm2ext::rounded_rectangle (cr, 0, 0, get_width(), get_height(), 3);
+ Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, CORNER_OFFSET, w-CORNER_SIZE, h-CORNER_SIZE, CORNER_RADIUS);
cairo_set_source_rgba (cr, 0.505, 0.517, 0.525, 0.4);
cairo_fill (cr);
} else if (_hovering) {
- Gtkmm2ext::rounded_rectangle (cr, 0, 0, get_width(), get_height(), 3);
+ Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, CORNER_OFFSET, w-CORNER_SIZE, h-CORNER_SIZE, CORNER_RADIUS);
cairo_set_source_rgba (cr, 0.905, 0.917, 0.925, 0.1);
cairo_fill (cr);
}
@@ -546,9 +558,9 @@ void
PixFader::update_unity_position ()
{
if (_orien == VERT) {
- unity_loc = (int) rint (span * (1 - (default_value / (adjustment.get_upper() - adjustment.get_lower())))) - 1;
+ unity_loc = (int) rint (span * (1 - ((default_value - adjustment.get_lower()) / (adjustment.get_upper() - adjustment.get_lower())))) - 1;
} else {
- unity_loc = (int) rint (default_value * span / (adjustment.get_upper() - adjustment.get_lower()));
+ unity_loc = (int) rint ((default_value - adjustment.get_lower()) * span / (adjustment.get_upper() - adjustment.get_lower()));
}
queue_draw ();
@@ -614,6 +626,7 @@ PixFader::on_state_changed (Gtk::StateType old_state)
{
Widget::on_state_changed (old_state);
create_patterns ();
+ queue_draw ();
}
void
@@ -630,4 +643,5 @@ PixFader::on_style_changed (const Glib::RefPtr<Gtk::Style>&)
*/
pattern = 0;
+ queue_draw ();
}
diff --git a/libs/gtkmm2ext/po/cs.po b/libs/gtkmm2ext/po/cs.po
index fa282e4ed5..1c99a821c5 100644
--- a/libs/gtkmm2ext/po/cs.po
+++ b/libs/gtkmm2ext/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-06-13 22:33+0200\n"
"Last-Translator: Pavel Fric <pavelfric@seznam.cz>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@ -33,7 +33,7 @@ msgstr "TlaÄítko nemůže sledovat stav neexistujícího ovladatelného cíle\
msgid "Log"
msgstr "Zápis"
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
@@ -43,11 +43,11 @@ msgstr ""
"\n"
"Kurzbefehl: "
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr "Stisknout pro ukonÄení"
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr "Bohužel to nelze udělat, %1"
@@ -75,11 +75,11 @@ msgstr "Alt"
msgid "Meta"
msgstr "Meta"
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr "Neznámý"
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
"Soubor s přiřazením kláves \"%2\"se nepodařilo najít, nebo obsahuje chyby."
diff --git a/libs/gtkmm2ext/po/de.po b/libs/gtkmm2ext/po/de.po
index 4c032c8b15..673193333b 100644
--- a/libs/gtkmm2ext/po/de.po
+++ b/libs/gtkmm2ext/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-02-05 19:50+0100\n"
"Last-Translator: Edgar Aichinger <edogawa@aon.at>\n"
"Language-Team: German <ardour-dev@lists.ardour.org>\n"
@@ -35,7 +35,7 @@ msgstr ""
msgid "Log"
msgstr "Log"
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
@@ -45,11 +45,11 @@ msgstr ""
"\n"
"Kurzbefehl: "
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr "Zum Beenden drücken"
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr "Leider kann ich das nicht tun, %1"
@@ -77,11 +77,11 @@ msgstr "Alt"
msgid "Meta"
msgstr "Meta"
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr "Unbekannt"
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
"Die Tastenkürzel-Datei \"%1\" konnte nicht gefunden werden oder enthält "
diff --git a/libs/gtkmm2ext/po/el.po b/libs/gtkmm2ext/po/el.po
index 62b4303bbf..65bef4ec02 100644
--- a/libs/gtkmm2ext/po/el.po
+++ b/libs/gtkmm2ext/po/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.99beta23\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2005-01-11\n"
"Last-Translator: Muadibas\n"
"Language-Team: Hellenic(Greek) <LL@li.org>\n"
@@ -21,9 +21,8 @@ msgid "Unknown action name: %1"
msgstr ""
#: binding_proxy.cc:84
-#, fuzzy
msgid "operate controller now"
-msgstr "λειτουÏγία ελεγκτή MIDI Ï„ÏŽÏα"
+msgstr ""
#: bindable_button.cc:48
msgid "button cannot watch state of non-existing Controllable\n"
@@ -33,18 +32,18 @@ msgstr ""
msgid "Log"
msgstr ""
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
"Shortcut: "
msgstr ""
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr ""
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr ""
@@ -72,11 +71,11 @@ msgstr ""
msgid "Meta"
msgstr ""
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr ""
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
@@ -91,33 +90,3 @@ msgstr ""
#: textviewer.cc:34
msgid "Close"
msgstr "Κλείσιμο"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "Location:"
-#~ msgstr "Τοποθεσία:"
-
-#~ msgid "Browse ..."
-#~ msgstr "Αναζήτηση ..."
-
-#~ msgid "Cancel"
-#~ msgstr "ΑκÏÏωση"
-
-#~ msgid "New folder"
-#~ msgstr "Îέος φάκελος"
-
-#~ msgid "Add to favorites"
-#~ msgstr "ΠÏόσθεση στα 'Αγαπημένα'"
-
-#~ msgid "Remove from favorites"
-#~ msgstr "Απαλοιφή από τα 'Αγαπημένα'"
-
-#~ msgid "Show Hidden"
-#~ msgstr "Ανάδειξη κÏυμμένων"
-
-#~ msgid "Hide browser"
-#~ msgstr "ΑπόκÏυψη browser"
-
-#~ msgid "Rescan"
-#~ msgstr "Ανανέωση"
diff --git a/libs/gtkmm2ext/po/es.po b/libs/gtkmm2ext/po/es.po
index 220c7501ee..6acaf755a4 100644
--- a/libs/gtkmm2ext/po/es.po
+++ b/libs/gtkmm2ext/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gtkmm2ext\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-02-09 16:21+0100\n"
"Last-Translator: Pablo Fernández <pablo.fbus@gmail.com>\n"
"Language-Team: Spanish\n"
@@ -31,7 +31,7 @@ msgstr ""
msgid "Log"
msgstr "Log"
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
@@ -41,11 +41,11 @@ msgstr ""
"\n"
"Atajo: "
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr "Pulse para salir"
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr "Lo siento %1, no puedo hacer eso"
@@ -73,11 +73,11 @@ msgstr ""
msgid "Meta"
msgstr ""
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr ""
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
"El archivo de combinaciones de teclado no se encontró en \"%2\" o contiene "
@@ -94,36 +94,3 @@ msgstr "Pulsa para llevarlo a la ventana principal"
#: textviewer.cc:34
msgid "Close"
msgstr "Cerrar"
-
-#~ msgid "Error"
-#~ msgstr "Error"
-
-#~ msgid "OK"
-#~ msgstr "ACEPTAR"
-
-#~ msgid "Location:"
-#~ msgstr "Localización:"
-
-#~ msgid "Browse ..."
-#~ msgstr "Seleccionar ..."
-
-#~ msgid "Cancel"
-#~ msgstr "Cancelar"
-
-#~ msgid "New folder"
-#~ msgstr "Nueva carpeta"
-
-#~ msgid "Add to favorites"
-#~ msgstr "Agregar a favoritos"
-
-#~ msgid "Remove from favorites"
-#~ msgstr "Quitar de favoritos"
-
-#~ msgid "Show Hidden"
-#~ msgstr "Mostrar ocultos"
-
-#~ msgid "Hide browser"
-#~ msgstr "Ocultar explorador"
-
-#~ msgid "Rescan"
-#~ msgstr "Buscar de nuevo"
diff --git a/libs/gtkmm2ext/po/fr.po b/libs/gtkmm2ext/po/fr.po
index b9ad99d844..310e648c67 100644
--- a/libs/gtkmm2ext/po/fr.po
+++ b/libs/gtkmm2ext/po/fr.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2011-06-13 00:30+0200\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: en_US\n"
@@ -31,18 +31,18 @@ msgstr "Le bouton ne peut pas surveiller l'état d'un Controllable inexistant\n"
msgid "Log"
msgstr "Log"
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
"Shortcut: "
msgstr ""
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr "Appuyer pour quitter"
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr ""
@@ -55,9 +55,8 @@ msgid "Control"
msgstr "Ctrl"
#: keyboard.cc:70 keyboard.cc:73 keyboard.cc:87 keyboard.cc:90
-#, fuzzy
msgid "Key|Shift"
-msgstr "Maj"
+msgstr ""
#: keyboard.cc:71
msgid "Option"
@@ -71,14 +70,13 @@ msgstr "Alt"
msgid "Meta"
msgstr "Meta"
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr "Inconnu"
-#: keyboard.cc:542
-#, fuzzy
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
-msgstr "Raccourcis clavier pour %1 introuvable dans \"%1\" ou corrompu."
+msgstr ""
#: tearoff.cc:57
msgid "Click to tear this into its own window"
@@ -91,6 +89,3 @@ msgstr "Cliquez pour remettre dans la fenêtre principale"
#: textviewer.cc:34
msgid "Close"
msgstr "Fermer"
-
-#~ msgid "Mod1"
-#~ msgstr "Mod1"
diff --git a/libs/gtkmm2ext/po/nn.po b/libs/gtkmm2ext/po/nn.po
index 7e3d72bed1..4a410bee50 100644
--- a/libs/gtkmm2ext/po/nn.po
+++ b/libs/gtkmm2ext/po/nn.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libardour\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-01-01 20:30+0100\n"
"Last-Translator: Eivind Ødegård <meinmycell-lists@yahoo.no>\n"
"Language-Team: Nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -36,18 +36,18 @@ msgstr ""
msgid "Log"
msgstr ""
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
"Shortcut: "
msgstr ""
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr ""
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr ""
@@ -56,9 +56,8 @@ msgid "Command"
msgstr ""
#: keyboard.cc:69 keyboard.cc:72 keyboard.cc:85 keyboard.cc:89
-#, fuzzy
msgid "Control"
-msgstr "dim kontroll"
+msgstr ""
#: keyboard.cc:70 keyboard.cc:73 keyboard.cc:87 keyboard.cc:90
msgid "Key|Shift"
@@ -76,11 +75,11 @@ msgstr ""
msgid "Meta"
msgstr ""
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr "Ukjend"
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
@@ -95,2973 +94,3 @@ msgstr ""
#: textviewer.cc:34
msgid "Close"
msgstr ""
-
-#~ msgid "Fader"
-#~ msgstr "Volumkontroll"
-
-#~ msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist"
-#~ msgstr "Lyd-diskstraum: Spelelista \"%1\" er ikkje ei lydspeleliste"
-
-#~ msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!"
-#~ msgstr "Lyd-diskstraum %1: det finst inga speleliste å kopiera!"
-
-#~ msgid ""
-#~ "AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame "
-#~ "%3"
-#~ msgstr ""
-#~ "Lyd-diskstraum %1: greidde ikkje lesa %2 frå spelelista, ramme %3, ved "
-#~ "attfylling"
-
-#~ msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3"
-#~ msgstr "Lyd-diskstraum %1: greidde ikkje lesa %2 frå spelelista, ramme %3"
-
-#~ msgid "AudioDiskstream %1: cannot write to disk"
-#~ msgstr "Lyd-diskstraum %1: greidde ikkje skriva til disk"
-
-#~ msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!"
-#~ msgstr "Lyd-diskstraum \"%1\": greier ikkje skriva opptaket til disken!"
-
-#~ msgid "%1: could not create region for complete audio file"
-#~ msgstr "%1: greidde ikkje laga bolk for heil lydfil"
-
-#~ msgid "AudioDiskstream: could not create region for captured audio!"
-#~ msgstr "Lyd-diskstraum: greidde ikkje laga bolk frå opptaket!"
-
-#~ msgid "programmer error: %1"
-#~ msgstr "programmerarfeil: %1"
-
-#~ msgid "AudioDiskstream: channel %1 out of range"
-#~ msgstr "Lyd-diskstraum: kanal %1 utanfor rekkjevidd"
-
-#~ msgid "%1:%2 new capture file not initialized correctly"
-#~ msgstr "%1: ny opptaksfil %2 vart ikkje påbyrja rett"
-
-#~ msgid "%1: cannot restore pending capture source file %2"
-#~ msgstr "%1: greidde ikkje henta fram att den ventande opptakskjeldefila %2"
-
-#~ msgid "%1: incorrect number of pending sources listed - ignoring them all"
-#~ msgstr "%1: feil tal på ventande kjelder på lista - ser bort frå alle"
-
-#~ msgid "%1: cannot create whole-file region from pending capture sources"
-#~ msgstr "%1: greidde ikkje laga heilfilbolk frå ventande opptakskjelder"
-
-#~ msgid "Could not open %1. Audio Library not saved"
-#~ msgstr "Greidde ikkje opna %1. Lydbiblioteket er ikkje lagra"
-
-#~ msgid ""
-#~ "Legacy crossfade involved an incoming region not present in playlist "
-#~ "\"%1\" - crossfade discarded"
-#~ msgstr ""
-#~ "Gamal overtoning inneheld ein innkomande bolk som ikkje finst i "
-#~ "spelelista «%1» - overtoninga ignorert"
-
-#~ msgid ""
-#~ "Legacy crossfade involved an outgoing region not present in playlist "
-#~ "\"%1\" - crossfade discarded"
-#~ msgstr ""
-#~ "Gamal overtoning inneheld ein utgåande bolk som ikkje finst i spelelista "
-#~ "«%1» - overtoninga ignorert"
-
-#~ msgid "Audio Playlists"
-#~ msgstr "Lydspelelister"
-
-#~ msgid "region"
-#~ msgstr "bolk"
-
-#~ msgid "regions"
-#~ msgstr "bolkar"
-
-#~ msgid "A playlist with this name already exists, please rename it."
-#~ msgstr ""
-#~ "Det finst alt ei speleliste med dette namnet, gje henne eit nytt namn."
-
-#~ msgid "badly-formed XML in imported playlist"
-#~ msgstr "feilforma XML i den importerte spelelista"
-
-#~ msgid "Audio Playlists (unused)"
-#~ msgstr "Lydspelelister (ubrukte)"
-
-#~ msgid "programming error: %1"
-#~ msgstr "Programmeringsfeil: %1"
-
-#~ msgid "Audio Regions"
-#~ msgstr "Lydbolkar"
-
-#~ msgid "Length: "
-#~ msgstr "Lengd:"
-
-#~ msgid ""
-#~ "\n"
-#~ "Position: "
-#~ msgstr ""
-#~ "\n"
-#~ "Posisjon:"
-
-#~ msgid ""
-#~ "\n"
-#~ "Channels: "
-#~ msgstr ""
-#~ "\n"
-#~ "Kanalar:"
-
-#~ msgid "Unknown bundle \"%1\" listed for input of %2"
-#~ msgstr "Ukjend bundel \"%1\" lista opp for inngangen på %2"
-
-#~ msgid "in 1"
-#~ msgstr "inn 1"
-
-#~ msgid "No input bundles available as a replacement"
-#~ msgstr "Ingen inngangsbundlar klare som erstatting"
-
-#~ msgid "Bundle %1 was not available - \"in 1\" used instead"
-#~ msgstr "Bundelen %1 var ikkje tilgjengeleg - brukar \"inn 1\" i staden for"
-
-#~ msgid "improper input channel list in XML node (%1)"
-#~ msgstr "Feil inngangskanalliste i XML-node (%1)"
-
-#~ msgid "Audio Tracks"
-#~ msgstr "Lydspor"
-
-#~ msgid "badly-formed XML in imported track"
-#~ msgstr "feilforma XML i det importerte sporet"
-
-#~ msgid "Error Importing Audio track %1"
-#~ msgstr "Greidde ikkje importera lydsporet %1"
-
-#~ msgid "cannot load VAMP plugin \"%1\""
-#~ msgstr "greier ikkje lasta VAMP-innstikket \"%1\""
-
-#~ msgid "VAMP Plugin \"%1\" could not be loaded"
-#~ msgstr "VAMP-innstikket \"%1\" vart ikkje lasta"
-
-#~ msgid ""
-#~ "This version of JACK is old - you should upgrade to a newer version that "
-#~ "supports jack_port_type_get_buffer_size()"
-#~ msgstr ""
-#~ "Denne utgåva av JACK er gamal - du bør oppgradera til ei utgåve som "
-#~ "støttar jack_port_type_get_buffer_size()"
-
-#~ msgid "Connect session to engine"
-#~ msgstr "Kople økta til maskin"
-
-#~ msgid ""
-#~ "a port with the name \"%1\" already exists: check for duplicated track/"
-#~ "bus names"
-#~ msgstr ""
-#~ "ein port med namnet \"%1\" finst frå før: sjekk opp dublettar i namn på "
-#~ "spor eller bussar"
-
-#~ msgid ""
-#~ "No more JACK ports are available. You will need to stop %1 and restart "
-#~ "JACK with more ports if you need this many tracks."
-#~ msgstr ""
-#~ "Det finst ikkje fleire JACK-portar. Du må stoppa %1 og starta JACK på "
-#~ "nytt med nok portar viss du treng så mange spor."
-
-#~ msgid "AudioEngine: cannot register port \"%1\": %2"
-#~ msgstr "AudioEngine: greier ikkje registrera porten \"%1\": %2"
-
-#~ msgid "unable to create port: %1"
-#~ msgstr "greidde ikkje laga port: %1"
-
-#~ msgid "connect called before engine was started"
-#~ msgstr "tilkoplinga vart oppkalla frø tenaren starta"
-
-#~ msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
-#~ msgstr "Lydmaskineri: Klarte ikkje kopla %1 (%2) til %3 (%4)."
-
-#~ msgid "disconnect called before engine was started"
-#~ msgstr "fråkoplinga vart oppkalla før tenaren starta"
-
-#~ msgid "get_port_by_name() called before engine was started"
-#~ msgstr "get_port_by_name() vart oppkalla før tenaren starta"
-
-#~ msgid "get_ports called before engine was started"
-#~ msgstr "get_ports vart oppkalla før tenaren starta"
-
-#~ msgid "failed to connect to JACK"
-#~ msgstr "greidde ikkje kopla til JACK"
-
-#~ msgid ""
-#~ "You have requested an operation that requires audio analysis.\n"
-#~ "\n"
-#~ "You currently have \"auto-analyse-audio\" disabled, which means that "
-#~ "transient data must be generated every time it is required.\n"
-#~ "\n"
-#~ "If you are doing work that will require transient data on a regular "
-#~ "basis, you should probably enable \"auto-analyse-audio\" then quit ardour "
-#~ "and restart.\n"
-#~ "\n"
-#~ "This dialog will not display again. But you may notice a slight delay in "
-#~ "this and future transient-detection operations.\n"
-#~ msgstr ""
-#~ "Du spurde etter ein operasjon som krev lydanalyse.\n"
-#~ "\n"
-#~ "Du har skrudd av \"auto-lydanalyse\", som tyder at lydtoppdata må lagast "
-#~ "på nytt kvar gong det krevst.\n"
-#~ "\n"
-#~ "Viss du arbeider med lydtoppdata ofte, bør du truleg skru på \"auto-"
-#~ "lydanalyse\", og so starta Ardour på nytt.\n"
-#~ "\n"
-#~ "Denne ruta blir ikkje synt på nytt, men du vil kanskje merka små "
-#~ "forseinkingar i denne og framtidige lydtoppdata-søk.\n"
-
-#~ msgid "cannot rename peakfile for %1 from %2 to %3 (%4)"
-#~ msgstr "kan ikkje døypa om toppfil for %1 frå %2 til %3 (%4)"
-
-#~ msgid "AudioSource: cannot stat peakfile \"%1\""
-#~ msgstr "Lydkjelde: kan ikkje bruka toppfil \"%1\""
-
-#~ msgid "cannot read sample data for unscaled peak computation"
-#~ msgstr "kan ikkje lesa lyddata for uskalert topputrekning"
-
-#~ msgid "AudioSource: cannot open peakpath (a) \"%1\" (%2)"
-#~ msgstr "Lydkjelde: kan ikkje opna toppstig (a) \"%1\" (%2)"
-
-#~ msgid "AudioSource: cannot open peakpath (b) \"%1\" (%2)"
-#~ msgstr "Lydkjelde: kan ikkje opna toppstig (b) \"%1\" (%2)"
-
-#~ msgid ""
-#~ "AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 "
-#~ "(%5)"
-#~ msgstr ""
-#~ "AudioSource [%1]: topplesing - kan ikkje lesa %2 punkt ved forskuvinga %3 "
-#~ "av %4 (%5)"
-
-#~ msgid "%1: could not write read raw data for peak computation (%2)"
-#~ msgstr "%1 greidde ikkje skriva/lesa rådata for topputrekninga (%2)"
-
-#~ msgid "AudioSource: cannot open peakpath (c) \"%1\" (%2)"
-#~ msgstr "Lydkjelde: kan ikkje opna toppstig (c) \"%1\" (%2)"
-
-#~ msgid "%1: could not write peak file data (%2)"
-#~ msgstr "%1: greidde ikkje skriva toppfildata (%2)"
-
-#~ msgid "could not truncate peakfile %1 to %2 (error: %3)"
-#~ msgstr "kan ikkje korta ned toppfila %1 til %2 (feil: %3)"
-
-#~ msgid "no outputs available for auditioner - manual connection required"
-#~ msgstr "ingen utgangar for lyttinga - du må kopla til manuelt"
-
-#~ msgid "Auditioning of non-audio regions not yet supported"
-#~ msgstr "Me har ikkje laga lytting for bolkar som ikkje er lyd enno"
-
-#~ msgid "Cannot setup auditioner processing flow for %1 channels"
-#~ msgstr "Greier ikkje setja opp lyttehandteringsflyt for %1 kanalar"
-
-#~ msgid "Automation node has no path property"
-#~ msgstr "Automasjonspunktet har ingen stigeigenskapar"
-
-#~ msgid "cannot open %2 to load automation data (%3)"
-#~ msgstr "greier ikkje opna %2 for å lasta automasjonsdata (%3)"
-
-#~ msgid "cannot load automation data from %2"
-#~ msgstr "greier ikkje lasta automasjonsdata frå %2"
-
-#~ msgid ""
-#~ "automation list: cannot load coordinates from XML, all points ignored"
-#~ msgstr ""
-#~ "automasjonsliste: greier ikkje lasta koordinater frå XML, såg bort frå "
-#~ "alle punkt"
-
-#~ msgid ""
-#~ "automation list: no x-coordinate stored for control point (point ignored)"
-#~ msgstr ""
-#~ "automasjonsliste: ingen x-koordinatar er lagra for kontrollpunktet "
-#~ "(hoppar over)"
-
-#~ msgid ""
-#~ "automation list: no y-coordinate stored for control point (point ignored)"
-#~ msgstr ""
-#~ "automasjonsliste: ingen y-koordinatar er lagra for kontrollpunktet "
-#~ "(hoppar over)"
-
-#~ msgid ""
-#~ "AutomationList: passed XML node called %1, not \"AutomationList\" - "
-#~ "ignored"
-#~ msgstr ""
-#~ "AutomationList: gav XML-node med namet %1, ikkje \"AutomationList\" - såg "
-#~ "bort frå."
-
-#~ msgid "Cannot create transport request signal pipe (%1)"
-#~ msgstr "Kan ikkje laga transportspørjingssignalrøyr (%1)"
-
-#~ msgid "UI: cannot set O_NONBLOCK on butler request pipe (%1)"
-#~ msgstr ""
-#~ "Grensesnitt: greier ikkje setja opp O_NONBLOCK på butler-spørjingsrøyret "
-#~ "(%1)"
-
-#~ msgid "Session: could not create butler thread"
-#~ msgstr "Økt: greier ikkje laga butler-tråd"
-
-#~ msgid "poll on butler request pipe failed (%1)"
-#~ msgstr "undersøkjing på butler-spørjingsrøyret mislukka (%1)"
-
-#~ msgid "Error on butler thread request pipe: fd=%1 err=%2"
-#~ msgstr "Feil på butler-spørsjingsrøyret: fd=%1 feil=%2"
-
-#~ msgid "Error reading from butler request pipe"
-#~ msgstr "Feil: greidde ikkje lesa frå butlerspørjingsrøyr"
-
-#~ msgid "Butler read ahead failure on dstream %1"
-#~ msgstr "Butler-førlesingsfeil på dstream %1"
-
-#~ msgid "Butler write-behind failure on dstream %1"
-#~ msgstr "Butler-etterskrivingsfeil på dstream %1"
-
-#~ msgid "control protocol name \"%1\" has no descriptor"
-#~ msgstr "kontrollprotokollnamnet \"%1\" har inga skildring"
-
-#~ msgid "control protocol name \"%1\" could not be initialized"
-#~ msgstr "kontrollprotokollnamnet \"%1\" greidde ikkje starta opp"
-
-#~ msgid "Instantiating mandatory control protocol %1"
-#~ msgstr "Lagar obligatorisk kontrollprotokolløkt %1"
-
-#~ msgid "looking for control protocols in %1\n"
-#~ msgstr "ser etter kontrollprotokollar i %1\n"
-
-#~ msgid "Control protocol %1 not usable"
-#~ msgstr "Kontrollprotokollen %1 er ikkje brukande"
-
-#~ msgid "Control surface protocol discovered: \"%1\""
-#~ msgstr "Kontrollflateprotokollen \"%1\" oppdaga"
-
-#~ msgid "ControlProtocolManager: cannot load module \"%1\" (%2)"
-#~ msgstr "Kontrollprotokollstyring: kan ikkje lasta modulen \"%1\" (%2)"
-
-#~ msgid "ControlProtocolManager: module \"%1\" has no descriptor function."
-#~ msgstr ""
-#~ "Kontrollprotokollstyring: modulen \"%1\" har ingen skildringsfunksjon."
-
-#~ msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo"
-#~ msgstr "CycleTimer::get:mhz()-funksjonen: kan ikkje opna /proc/cpuinfo"
-
-#~ msgid "CycleTimer::get_mhz(): cannot locate cpu MHz in /proc/cpuinfo"
-#~ msgstr ""
-#~ "CycleTimer::get:mhz()-funksjonen: finn ikkje prosessor-MHz i /proc/cpuinfo"
-
-#~ msgid "cannot locate cpu MHz in /proc/cpuinfo"
-#~ msgstr "finn ikkje prosessor-MHz i /proc/cpuinfo"
-
-#~ msgid "audio"
-#~ msgstr "lyd"
-
-#~ msgid "MIDI"
-#~ msgstr "MIDI"
-
-#~ msgid "unknown"
-#~ msgstr "ukjend"
-
-#~ msgid "main outs"
-#~ msgstr "hovudutgangar"
-
-#~ msgid "listen"
-#~ msgstr "høyr på"
-
-#~ msgid "Location \"%1\" not valid for track loop (start >= end)"
-#~ msgstr ""
-#~ "Staden \"%1\" er ikkje gyldig for å spela spor i lykkje (start >= slutt)"
-
-#~ msgid "Could not get port for export channel \"%1\", dropping the channel"
-#~ msgstr ""
-#~ "Greidde ikkje få port for eksportkanalen \"%1\", hoppar over kanalen"
-
-#~ msgid "Export failed: %1"
-#~ msgstr "Eksportfeil: %1"
-
-#~ msgid ""
-#~ "Existing export folder for this session (%1) does not exist - ignored"
-#~ msgstr ""
-#~ "Eksisterande eksportmappe for denne økta (%1) finst ikkje - ignorert"
-
-#~ msgid "No Time"
-#~ msgstr "Inga tid"
-
-#~ msgid "Invalid time format"
-#~ msgstr "Ugyldig tidsformat"
-
-#~ msgid "No Date"
-#~ msgstr "Ingen dato"
-
-#~ msgid "Invalid date format"
-#~ msgstr "Ugyldig datoformat"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "DVD-A"
-#~ msgstr "DVD-A"
-
-#~ msgid "iPod"
-#~ msgstr "iPod"
-
-#~ msgid "Something else"
-#~ msgstr "Noko anna"
-
-#~ msgid "Any"
-#~ msgstr "Alt"
-
-#~ msgid "Lossless (linear PCM)"
-#~ msgstr "Tapsfritt (lineær PCM)"
-
-#~ msgid "Lossy compression"
-#~ msgstr "Komprimering med tap"
-
-#~ msgid "Lossless compression"
-#~ msgstr "Tapsfri komprimering"
-
-#~ msgid "Session rate"
-#~ msgstr "Øktrate"
-
-#~ msgid "normalize"
-#~ msgstr "normaliser"
-
-#~ msgid "trim"
-#~ msgstr "skjer til"
-
-#~ msgid "trim start"
-#~ msgstr "start tilskjering"
-
-#~ msgid "trim end"
-#~ msgstr "slutt tilskjering"
-
-#~ msgid "Shaped Noise"
-#~ msgstr "Forma støy"
-
-#~ msgid "Triangular"
-#~ msgstr "Trekant"
-
-#~ msgid "Rectangular"
-#~ msgstr "Firkant"
-
-#~ msgid "None"
-#~ msgstr "Ingen"
-
-#~ msgid "8bit"
-#~ msgstr "8-bit"
-
-#~ msgid "16bit"
-#~ msgstr "16-bit"
-
-#~ msgid "24bit"
-#~ msgstr "24-bit"
-
-#~ msgid "32bit"
-#~ msgstr "32-bit"
-
-#~ msgid "float"
-#~ msgstr "flyttal"
-
-#~ msgid "double"
-#~ msgstr "dobbel"
-
-#~ msgid "8bit unsigned"
-#~ msgstr "8bit usignert"
-
-#~ msgid "Vorbis sample format"
-#~ msgstr "Vorbis-punktformat"
-
-#~ msgid "No sample format"
-#~ msgstr "Ikkje noko punktformat"
-
-#~ msgid "Editor: cannot open \"%1\" as export file for CD marker file"
-#~ msgstr ""
-#~ "Redigering: greier ikkje opna \"%1\" som eksportfil for CD-markørfil"
-
-#~ msgid "an error occured while writing a TOC/CUE file: %1"
-#~ msgstr "greidde ikkje skriva ei TOC/CUE-fil: %1"
-
-#~ msgid "Cannot convert %1 to Latin-1 text"
-#~ msgstr "Greier ikkje omdanna %1 til Latin-1-tekst"
-
-#~ msgid "Searching for export formats in %1"
-#~ msgstr "Leitar etter eksportformat i %1"
-
-#~ msgid "Unable to create export format directory %1: %2"
-#~ msgstr "Greier ikkje laga eksportformatmappa %1 : %2"
-
-#~ msgid "Unable to remove export preset %1: %2"
-#~ msgstr "Greier ikkje fjerna eksportoppsettet %1: %2"
-
-#~ msgid "Selection"
-#~ msgstr "Val"
-
-#~ msgid "Session"
-#~ msgstr "Økt"
-
-#~ msgid "Unable to rename export format %1 to %2: %3"
-#~ msgstr "kan ikkje døypa om eksportformatet frå %1 til %2: %3"
-
-#~ msgid "Unable to remove export profile %1: %2"
-#~ msgstr "Greier ikkje fjerna eksportprofilen %1: %2"
-
-#~ msgid "empty format"
-#~ msgstr "tomt format"
-
-#~ msgid "No timespan has been selected!"
-#~ msgstr "Du har ikkje valt noko tidsomfang!"
-
-#~ msgid "No channels have been selected!"
-#~ msgstr "Ingen MIDI-kanalar er valde!"
-
-#~ msgid "Some channels are empty"
-#~ msgstr "Nokre av kanalane er tomme"
-
-#~ msgid "No format selected!"
-#~ msgstr "Du har ikkje valt noko format!"
-
-#~ msgid "All channels are empty!"
-#~ msgstr "Alle kanalane er tomme!"
-
-#~ msgid ""
-#~ "One or more of the selected formats is not compatible with this system!"
-#~ msgstr ""
-#~ "Eitt eller fleire av desse formata samsvarar ikkje med dette systemet!"
-
-#~ msgid ""
-#~ "%1 supports only %2 channels, but you have %3 channels in your channel "
-#~ "configuration"
-#~ msgstr ""
-#~ "%1 støttar berre %2 kanalar, men du har %3 kanalar i kanaloppsettet ditt"
-
-#~ msgid ""
-#~ "there are already 1000 files with names like %1; versioning discontinued"
-#~ msgstr "Det er alt 1000 filer med namn som %1, kuttar ut versjonsnamn"
-
-#~ msgid "cannot rename file source from %1 to %2 (%3)"
-#~ msgstr "kan ikkje døypa om filkjelda frå %1 til %2 (%3)"
-
-#~ msgid "FileSource: search path not set"
-#~ msgstr "Filkjelde: søkjestigen er ikkje sett opp"
-
-#~ msgid "Filesource: cannot find required file (%1): while searching %2"
-#~ msgstr "Filkjelde: Kan ikkje finna fila (%1) under søking i %2"
-
-#~ msgid ""
-#~ "FileSource: \"%1\" is ambigous when searching %2\n"
-#~ "\t"
-#~ msgstr ""
-#~ "Filkjelde: \"%1\" er tvetydig når du søkjer %2\n"
-#~ "\t"
-
-#~ msgid "Filesource: cannot find required file (%1): %2"
-#~ msgstr "Filkjelde: Kan ikkje finna den naudsynte fila %1: %2"
-
-#~ msgid "Filesource: cannot check for existing file (%1): %2"
-#~ msgstr "Filkjelde:Kan ikkje sjå etter eksisterande fil %1: %2"
-
-#~ msgid ""
-#~ "Programming error! %1 tried to rename a file over another file! It's safe "
-#~ "to continue working, but please report this to the developers."
-#~ msgstr ""
-#~ "Programmeringsfeil! %1 prøvde å døypa ei fil til eit filnamn som alt "
-#~ "eksisterer. Det er trygt å halda fram å arbeida, men ver god å seia frå "
-#~ "til utviklarane."
-
-#~ msgid "cannot rename file %1 to %2 (%3)"
-#~ msgstr "kan ikkje døypa om %1 til %2 (%3)"
-
-#~ msgid "Cannot create Configuration directory %1 - cannot run"
-#~ msgstr "Greier ikkje laga oppsettsmappa %1 - kan ikkje køyra"
-
-#~ msgid ""
-#~ "Configuration directory %1 already exists and is not a directory/folder - "
-#~ "cannot run"
-#~ msgstr ""
-#~ "Oppsettsmappa %1 finst allereie, men er ikkje ei mappe/katalog - kan "
-#~ "ikkje køyra"
-
-#~ msgid "ARDOUR_DLL_PATH not set in environment - exiting\n"
-#~ msgstr "ARDOUR_DLL_PATH ikkje sett i miljøet - avsluttar\n"
-
-#~ msgid "ARDOUR_CONFIG_PATH not set in environment - exiting\n"
-#~ msgstr "ARDOUR_CONFIG_PATH ikkje sett i miljøet - avsluttar\n"
-
-#~ msgid "ARDOUR_DATA_PATH not set in environment - exiting\n"
-#~ msgstr "ARDOUR_DATA_PATH ikkje sett i miljøet - avsluttar\n"
-
-#~ msgid "filter: error creating name for new file based on %1"
-#~ msgstr "lydfilter: feil med å laga namn for ny fil bygd på %1"
-
-#~ msgid "filter: error creating new file %1 (%2)"
-#~ msgstr "lydfilter: feil med å laga den nye fila %1 (%2)"
-
-#~ msgid "Could not resolve path: %1 (%2)"
-#~ msgstr "Greidde ikkje finna stigen: %1: (%2)"
-
-#~ msgid "cannot check session path %1 (%2)"
-#~ msgstr "greier ikkje sjekka øktstigen %1 (%2)"
-
-#~ msgid "cannot check statefile %1 (%2)"
-#~ msgstr "greier ikkje sjekka tilstandsfila %1 (%2)"
-
-#~ msgid "%1 is not a snapshot file"
-#~ msgstr "%1 er ikkje ei snøggbiletefil"
-
-#~ msgid "cannot determine current working directory (%1)"
-#~ msgstr "greier ikkje avgjera kva som er arbeidsmappa no (%1)"
-
-#~ msgid "unknown file type for session %1"
-#~ msgstr "ukjend filtype for økta %1"
-
-#~ msgid "Could not set system open files limit to \"unlimited\""
-#~ msgstr "Greidde ikkje setja systemgrensa for opne filer til \"uavgrensa\""
-
-#~ msgid "Could not set system open files limit to %1"
-#~ msgstr "Greidde ikkje setja grensa for opne systemfiler til %1"
-
-#~ msgid "Your system is configured to limit %1 to only %2 open files"
-#~ msgstr "Maskina di er avgrensa til at %1 berre kan opna %2 filer"
-
-#~ msgid "Could not get system open files limit (%1)"
-#~ msgstr "Greidde ikkje få tak i grensa for opne systemfiler (%1)"
-
-#~ msgid "Loading configuration"
-#~ msgstr "Lastar oppsettet"
-
-#~ msgid ""
-#~ "Could not find a source for %1 even though we are updating this file!"
-#~ msgstr ""
-#~ "Greier ikkje finna kjelda for %1, sjølv om det er denne fila me "
-#~ "oppdaterer!"
-
-#~ msgid "Unable to create file %1 during import"
-#~ msgstr "Greier ikkje laga fila %1 under import!"
-
-#~ msgid "Resampling %1 from %2kHz to %3kHz"
-#~ msgstr "Kodar om %1 frå %2kHz til %3kHz"
-
-#~ msgid "Copying %1"
-#~ msgstr "Kopierer%1"
-
-#~ msgid "Track %1 of %2 contained no usable MIDI data"
-#~ msgstr "Spor %1 av %2 inneheld ingen brukbare MIDI-data"
-
-#~ msgid "MIDI file %1 was not readable (no reason available"
-#~ msgstr "MIDI-fila %1 kan ikkje lesast (og me finn ingen grunn til det"
-
-#~ msgid "Import: cannot open input sound file \"%1\""
-#~ msgstr "Import: greier ikkje opna inn-lydfila \"%1\""
-
-#~ msgid "Import: error opening MIDI file"
-#~ msgstr "Import: greidde ikkje opna MIDI-fil"
-
-#~ msgid "Loading MIDI file %1"
-#~ msgstr "Lastar MIDI-fila %1"
-
-#~ msgid "Failed to remove some files after failed/cancelled import operation"
-#~ msgstr "Greidde ikkje fjerna nokre filer etter mislukka/avbroten import"
-
-#~ msgid "preset %1 (bank %2)"
-#~ msgstr "førehandsoppsett %1 (bank %2)"
-
-#~ msgid "%1 - cannot find any track/bus with the ID %2 to connect to"
-#~ msgstr "%1 - finn ingen spor/buss med ID-en %2 å kopla til"
-
-#~ msgid "IO: cannot disconnect port %1 from %2"
-#~ msgstr "IU: kan ikkje kopla porten %1 frå %2"
-
-#~ msgid "IO: cannot register input port %1"
-#~ msgstr "IU: greier ikkje registrera inngangsporten %1"
-
-#~ msgid "IO: cannot register output port %1"
-#~ msgstr "IU: greier ikkje registrera utgangsporten %1"
-
-#~ msgid "incorrect XML node \"%1\" passed to IO object"
-#~ msgstr "feil XML-punkt, \"%1\", sendt til IU-objektet"
-
-#~ msgid "in"
-#~ msgstr "inn"
-
-#~ msgid "out"
-#~ msgstr "ut"
-
-#~ msgid "input"
-#~ msgstr "inngang"
-
-#~ msgid "output"
-#~ msgstr "utgang"
-
-#~ msgid "Unknown bundle \"%1\" listed for %2 of %3"
-#~ msgstr "Ukjend bundel \"%1\" lista for %2 av %3"
-
-#~ msgid "Bundle %1 was not available - \"%2\" used instead"
-#~ msgstr "Bundelen %1 var ikkje tilgjengeleg - brukte \"%2\" i staden"
-
-#~ msgid "No %1 bundles available as a replacement"
-#~ msgstr "Ingen %1-bundlar klare som erstatting"
-
-#~ msgid "%1: cannot create I/O ports"
-#~ msgstr "%1: greier ikkje laga I/U-portar"
-
-#~ msgid "IO: badly formed string in XML node for inputs \"%1\""
-#~ msgstr "IU: feilforma streng i XML-opunkt for inngangane \"%1\""
-
-#~ msgid "bad input string in XML node \"%1\""
-#~ msgstr "feil inngangsstreng i XML-punktet \"%1\""
-
-#~ msgid "IO: badly formed string in XML node for outputs \"%1\""
-#~ msgstr "IU: feilforma streng i XML-punktet for utgangane \"%1\""
-
-#~ msgid "IO: bad output string in XML node \"%1\""
-#~ msgstr "IU: feil utgangsstreng i XML-punktet \"%1\""
-
-#~ msgid "midi"
-#~ msgstr "midi"
-
-#~ msgid "%s %u"
-#~ msgstr "%s %u"
-
-#~ msgid "%s in"
-#~ msgstr " %s inn"
-
-#~ msgid "%s out"
-#~ msgstr "%s ut"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "L"
-#~ msgstr "V"
-
-#~ msgid "R"
-#~ msgstr "H"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "LADSPA: module has no descriptor function."
-#~ msgstr "LADSPA: modulen har ingen skildringsfunksjon"
-
-#~ msgid "LADSPA: plugin has gone away since discovery!"
-#~ msgstr "LADSPA: tilleggsprogrammet har vorte borte sidan det vart oppdaga!"
-
-#~ msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
-#~ msgstr ""
-#~ "LADSPA: kan ikkje bruka \"%1\", sidan han ikkje kan prosessera på staden"
-
-#~ msgid ""
-#~ "illegal parameter number used with plugin \"%1\". This mayindicate a "
-#~ "change in the plugin design, and presets may beinvalid"
-#~ msgstr ""
-#~ "ein ulovleg parameter vart brukt med tilleggsprogrammet \"%1\". Dette kan "
-#~ "tyda på feil i korleis tilleggsprogrammet er utforma, og at eventuelle "
-#~ "ferdigprogram kan vera ugyldige."
-
-#~ msgid "Bad node sent to LadspaPlugin::set_state"
-#~ msgstr "Feil punkt sendt til LadspaPlugin::set_state"
-
-#~ msgid "LADSPA: no ladspa port number"
-#~ msgstr "LADSPA: ikkje noko Ladspa-portnummer"
-
-#~ msgid "LADSPA: no ladspa port data"
-#~ msgstr "LADSPA: ingen portdata"
-
-#~ msgid "LADSPA: cannot load module from \"%1\""
-#~ msgstr "LADSPA: greier ikkje lasta modul frå \"%1\""
-
-#~ msgid "Could not locate HOME. Preset not removed."
-#~ msgstr "Greidde ikkje finna heimemappa. Har ikkje fjera ferdigoppsett."
-
-#~ msgid "Could not create %1. Preset not saved. (%2)"
-#~ msgstr "Greidde ikkje laga %1. Har ikkje lagra ferdigoppsett. (%2)"
-
-#~ msgid "Error saving presets file %1."
-#~ msgstr "Feil med å lagra ferdigoppsettfila %1."
-
-#~ msgid "Could not locate HOME. Preset not saved."
-#~ msgstr "Greidde ikkje finna heimemappa. Har ikkje lagra ferdigoppsett."
-
-#~ msgid "You cannot put a CD marker at this position"
-#~ msgstr "Du kan ikkje leggja til ein CD-markør her"
-
-#~ msgid "incorrect XML node passed to Location::set_state"
-#~ msgstr "feil XML-punkt sendt til Location::set_state"
-
-#~ msgid "XML node for Location has no ID information"
-#~ msgstr "XML-punktet for denne staden har ingen ID-informasjon"
-
-#~ msgid "XML node for Location has no name information"
-#~ msgstr "XML-punktet for denne staden har ingen namneinformasjon"
-
-#~ msgid "XML node for Location has no start information"
-#~ msgstr "XML-punktet for denne staden har ingen startinformasjon"
-
-#~ msgid "XML node for Location has no end information"
-#~ msgstr "XML-punktet for denne staden har ingen sluttinformasjon"
-
-#~ msgid "XML node for Location has no flags information"
-#~ msgstr "XML-punktet for denne staden har ingen flagginformasjon"
-
-#~ msgid "Locations: attempt to use unknown location as selected location"
-#~ msgstr "Stader: forsøk på å bruka ukjend stad som vald stad"
-
-#~ msgid "incorrect XML mode passed to Locations::set_state"
-#~ msgstr "feil XML-modus send til Locations::set_state"
-
-#~ msgid "session"
-#~ msgstr "økt"
-
-#~ msgid "could not load location from session file - ignored"
-#~ msgstr "greidde ikkje lasta stad frå øktfila - hoppa over"
-
-#~ msgid "Locations"
-#~ msgstr "Plasseringar"
-
-#~ msgid "Location: "
-#~ msgstr "Plassering:"
-
-#~ msgid ""
-#~ "Range\n"
-#~ "start: "
-#~ msgstr ""
-#~ "Bolk-\n"
-#~ "start:"
-
-#~ msgid ""
-#~ "\n"
-#~ "end: "
-#~ msgstr ""
-#~ "\n"
-#~ "slutten:"
-
-#~ msgid ""
-#~ "The location is the Punch range. It will be imported as a normal range.\n"
-#~ "You may rename the imported location:"
-#~ msgstr ""
-#~ "Plasseringa er innslagsområdet, som vil bli importert som ein vanleg "
-#~ "bolk.\n"
-#~ "Du kan gje eit nytt namn til den importerte plasseringa:"
-
-#~ msgid ""
-#~ "The location is a Loop range. It will be imported as a normal range.\n"
-#~ "You may rename the imported location:"
-#~ msgstr ""
-#~ "Plasseringa er lykkjeområdet, som vil bli importert som ein vanleg bolk.\n"
-#~ "Du kan gje eit nytt namn til den importerte plasseringa:"
-
-#~ msgid ""
-#~ "A location with that name already exists.\n"
-#~ "You may rename the imported location:"
-#~ msgstr ""
-#~ "Det finst alt ei plassering med det namnet.\n"
-#~ "Du kan gje eit nytt namn til den importerte plasseringa:"
-
-#~ msgid "Session framerate adjusted from %1 to LTC's %2."
-#~ msgstr "Rammeraten for økta er endra frå %1 til LTC %2"
-
-#~ msgid "Session and LTC framerate mismatch: LTC:%1 Session:%2."
-#~ msgstr "Økt- og LTC-rammerate passar ikkje. LTC: %1 Økt: %2"
-
-#~ msgid "flywheel"
-#~ msgstr "svinghjul"
-
-#~ msgid ""
-#~ "%1: I/O configuration change %4 requested to use %2, but channel setup is "
-#~ "%3"
-#~ msgstr ""
-#~ "%1: I/U-oppsettsendringa %4 ba om å bruka %2, men kanaloppsettet er %3"
-
-#~ msgid "MidiDiskstream: Playlist \"%1\" isn't an midi playlist"
-#~ msgstr "MIDI-diskstraum: Spelelista \"%1\" er ikkje ei midispeleliste"
-
-#~ msgid "MidiDiskstream %1: there is no existing playlist to make a copy of!"
-#~ msgstr "MIDI-diskstraum %1: det finst inga speleliste å kopiera!"
-
-#~ msgid "MidiDiskstream %1: cannot read %2 from playlist at frame %3"
-#~ msgstr "MIDI-diskstraum %1: greidde ikkje lesa %2 frå spelelista, ramme %3"
-
-#~ msgid "MidiDiskstream %1: cannot write to disk"
-#~ msgstr "MIDI-diskstraum %1: greidde ikkje skriva til disk"
-
-#~ msgid "MidiDiskstream \"%1\": cannot flush captured data to disk!"
-#~ msgstr "MIDI-diskstraum \"%1\": greier ikkje skriva opptaket til disken!"
-
-#~ msgid "%1: could not create region for complete midi file"
-#~ msgstr "%1: greidde ikkje laga bolk for heil midifil"
-
-#~ msgid "MidiDiskstream: could not create region for captured midi!"
-#~ msgstr "MIDI-diskstraum: greidde ikkje laga bolk frå midi-opptaket!"
-
-#~ msgid "MidiDiskstream: XML property channel-mask out of range"
-#~ msgstr "MIDI-diskstraum: kanalmaske for XML-eigenskap utanfor rekkjevidd"
-
-#~ msgid "No NoteID found for note property change - ignored"
-#~ msgstr "Fann ingen NoteID for noteeigenskapsendringa - såg bort frå"
-
-#~ msgid "No SysExID found for sys-ex property change - ignored"
-#~ msgstr "Fann ingen SysExID for sys-ex-eigenskapsendring - såg bort frå"
-
-#~ msgid "transpose"
-#~ msgstr "transponer"
-
-#~ msgid "Missing parameter property on InterpolationStyle"
-#~ msgstr "Manglar parametereigenskap på InterpolationStyle"
-
-#~ msgid "Missing style property on InterpolationStyle"
-#~ msgstr "Manglar stileigenskap på InterpolationStyle"
-
-#~ msgid "Missing parameter property on AutomationState"
-#~ msgstr "Manglar parameterigenskap på AutomationStyle"
-
-#~ msgid "Missing state property on AutomationState"
-#~ msgstr "Manglar statuseigenskap på AutomationState"
-
-#~ msgid "monitor dim"
-#~ msgstr "dim lytting"
-
-#~ msgid "monitor cut"
-#~ msgstr "kutt lytting"
-
-#~ msgid "monitor mono"
-#~ msgstr "lytting i mono"
-
-#~ msgid "monitor dim level"
-#~ msgstr "dimnivå lytting"
-
-#~ msgid "monitor solo boost level"
-#~ msgstr "soloaukingsnivå for lytting"
-
-#~ msgid "cut control %1"
-#~ msgstr "kutt kontroll %1"
-
-#~ msgid "polarity control"
-#~ msgstr "polaritetskontroll"
-
-#~ msgid "solo control"
-#~ msgstr "solo kontroll"
-
-#~ msgid "MTC Slave: atomic read of current time failed, sleeping!"
-#~ msgstr "MTC-slave: greidde ikkje lesa gyldig tid. Søv."
-
-#~ msgid ""
-#~ "Unknown rate/drop value %1 in incoming MTC stream, session values used "
-#~ "instead"
-#~ msgstr ""
-#~ "Ukjent rate/sleppverdi %1 i innkomande MTC-straum, bruker øktverdiar i "
-#~ "staden"
-
-#~ msgid "Session framerate adjusted from %1 TO: MTC's %2."
-#~ msgstr "Rammeraten for økta justert frå %1 til MTC: %2"
-
-#~ msgid "Session and MTC framerate mismatch: MTC:%1 Ardour:%2."
-#~ msgstr "Økt- og MTC-rammeraten passar ikkje. MTC: %1 Ardour: %2"
-
-#~ msgid "capture"
-#~ msgstr "<b>opptak</b>"
-
-#~ msgid "paste"
-#~ msgstr "lim inn"
-
-#~ msgid "duplicate region"
-#~ msgstr "klon bolken"
-
-#~ msgid "insert file"
-#~ msgstr "set inn fil"
-
-#~ msgid "insert region"
-#~ msgstr "set inn bolk"
-
-#~ msgid "drag region brush"
-#~ msgstr "bolkdragingsbørste"
-
-#~ msgid "region drag"
-#~ msgstr "bolkdraging"
-
-#~ msgid "selection grab"
-#~ msgstr "ta tak i utval"
-
-#~ msgid "region fill"
-#~ msgstr "bolkfylling"
-
-#~ msgid "fill selection"
-#~ msgstr "fyll utvalet"
-
-#~ msgid "create region"
-#~ msgstr "lag ein bolk"
-
-#~ msgid "region copy"
-#~ msgstr "bolkkopi"
-
-#~ msgid "fixed time region copy"
-#~ msgstr "fast tid-bolkkopi"
-
-#~ msgid "Pannable given XML data for %1 - ignored"
-#~ msgstr "Panoreringa fekk XML-data for %1 - ignorert"
-
-#~ msgid "looking for panners in %1"
-#~ msgstr "ser etter panoreringar i %1"
-
-#~ msgid "Panner discovered: \"%1\" in %2"
-#~ msgstr "Fann panoreringar: «%1» i %2"
-
-#~ msgid "PannerManager: cannot load module \"%1\" (%2)"
-#~ msgstr "Panoreringsstyring: kan ikkje lasta modulen \"%1\" (%2)"
-
-#~ msgid "PannerManager: module \"%1\" has no descriptor function."
-#~ msgstr "Panoreringsstyring: modulen \"%1\" har ingen skildringsfunksjon."
-
-#~ msgid "no panner discovered for in/out = %1/%2"
-#~ msgstr "fann inga panorering for inn/ut = %1/%2"
-
-#~ msgid "Unknown panner plugin \"%1\" found in pan state - ignored"
-#~ msgstr ""
-#~ "Ukjent panoreringstilleggsprogram, \"%1\", funne i panoreringstilstand. "
-#~ "Hoppa over."
-
-#~ msgid "panner plugin node has no type information!"
-#~ msgstr "tilleggsprogrampunktet for panoreringa har ingen typeinformasjon!"
-
-#~ msgid "region state node has no ID, ignored"
-#~ msgstr "områdestatusnoden har ingen ID, ser bort frå"
-
-#~ msgid "Playlist: cannot create region from XML"
-#~ msgstr "Speleliste: greier ikkje laga bolk frå XML"
-
-#~ msgid "No playlist ID in PlaylistSource XML!"
-#~ msgstr "Fann ingen speleliste-ID i PlaylistSource-XML!"
-
-#~ msgid "Could not construct playlist for PlaylistSource from session data!"
-#~ msgstr "Greidde ikkje byggja speleliste for PlaylistSource frå øktdata!"
-
-#~ msgid "programming error: "
-#~ msgstr "programmeringsfeil: "
-
-#~ msgid "XML node describing plugin is missing the `type' field"
-#~ msgstr "XML-punktet som skildrar utvidinga manglar 'type'-feltet"
-
-#~ msgid "unknown plugin type %1 in plugin insert state"
-#~ msgstr "ukjent programtilleggstype %1 i innpluggingstilstanden"
-
-#~ msgid "Plugin has no unique ID field"
-#~ msgstr "Innstikket har ikkje noko eige ID-felt"
-
-#~ msgid ""
-#~ "Found a reference to a plugin (\"%1\") that is unknown.\n"
-#~ "Perhaps it was removed or moved since it was last used."
-#~ msgstr ""
-#~ "Fann ein referanse til det ukjende tilleggsprogrammet \"%1\".\n"
-#~ "Kanskje det har vorte fjerna eller flytt sidan sist det vart brukt."
-
-#~ msgid "PluginInsert: Auto: no ladspa port number"
-#~ msgstr "PluginInsert:Auto: ikkje noko ladspa-portnummer"
-
-#~ msgid "PluginInsert: Auto: port id out of range"
-#~ msgstr "PluginInsert: Auto: port-id utanfor rekkjevidd"
-
-#~ msgid "PluginInsert: automatable control %1 not found - ignored"
-#~ msgstr ""
-#~ "PluginInsert: fann ikkje den automasjonsferdige kontrollen %1, såg bort "
-#~ "frå han."
-
-#~ msgid "Discovering Plugins"
-#~ msgstr "Finn innstikk"
-
-#~ msgid "Could not parse rdf file: %1"
-#~ msgstr "Greidde ikkje tolka rdf-fila: %1"
-
-#~ msgid "LADSPA: cannot load module \"%1\" (%2)"
-#~ msgstr "LADSPA: greier ikkje lasta modulen \"%1\" (%2)"
-
-#~ msgid "LADSPA: module \"%1\" has no descriptor function."
-#~ msgstr "LADSPA: modulen \"%1\" har ingen skildringsfunksjon."
-
-#~ msgid ""
-#~ "VST plugin %1 does not support processReplacing, and so cannot be used in "
-#~ "ardour at this time"
-#~ msgstr ""
-#~ "VST-tilleggsprogrammet %1 støttar ikkje prosessbyte, og kan ikkje brukast "
-#~ "i Ardour nett no."
-
-#~ msgid ""
-#~ "linuxVST plugin %1 does not support processReplacing, and so cannot be "
-#~ "used in ardour at this time"
-#~ msgstr ""
-#~ "linuxVST-utvidinga %1 støttar ikkje prosessbyte, og kan ikkje brukast i "
-#~ "Ardour nett no."
-
-#~ msgid "unknown plugin status type \"%1\" - all entries ignored"
-#~ msgstr "\"%1\" er ein ukjend utvidingsstatustype, såg bort frå alt"
-
-#~ msgid "unknown plugin type \"%1\" - ignored"
-#~ msgstr "\"%1\" er ein ukjend innstikktype - hoppa over"
-
-#~ msgid "get_connected_latency_range() called while disconnected from JACK"
-#~ msgstr "get_connected_latency_range() kalla opp då JACK vart fråkopla"
-
-#~ msgid "could not reregister %1"
-#~ msgstr "greidde ikkje registrera %1."
-
-#~ msgid "insert %1"
-#~ msgstr "set inn %1"
-
-#~ msgid "XML node describing port insert is missing the `type' field"
-#~ msgstr "XML-punktet som skildrar portinnstikket manglar 'type'-feltet"
-
-#~ msgid "non-port insert XML used for port plugin insert"
-#~ msgstr ""
-#~ "tappingspunkt-XML som ikkje er ein port er brukt for porttilleggstapping"
-
-#~ msgid "No %1 property flag in element %2"
-#~ msgstr "Ikkje noko %1-eigenskapsflagg i elementet %2"
-
-#~ msgid "No child node with active property"
-#~ msgstr "Ingen undernode med aktiv eigenskap"
-
-#~ msgid "Loading system configuration file %1"
-#~ msgstr "Lastar systemoppsettfila %1"
-
-#~ msgid "%1: cannot read system configuration file \"%2\""
-#~ msgstr "%1: greier ikkje lesa systemoppsettfila \"%2\""
-
-#~ msgid "%1: system configuration file \"%2\" not loaded successfully."
-#~ msgstr "%1: greidde ikkje lasta systemoppsettfila \"%2\" skikkeleg."
-
-#~ msgid ""
-#~ "your system %1 configuration file is empty. This probably means that "
-#~ "there as an error installing %1"
-#~ msgstr ""
-#~ "Oppsettsfila for %1 er tom. Dette tyder truleg at det var ein feil då %1 "
-#~ "vart installert."
-
-#~ msgid "Loading user configuration file %1"
-#~ msgstr "Lastar brukaroppsettfila %1"
-
-#~ msgid "%1: cannot read configuration file \"%2\""
-#~ msgstr "%1: greier ikkje lesa oppsettfila \"%2\""
-
-#~ msgid "%1: user configuration file \"%2\" not loaded successfully."
-#~ msgstr "%1: greidde ikkje lasta brukaroppsettfila \"%2\" skikkeleg."
-
-#~ msgid "your %1 configuration file is empty. This is not normal."
-#~ msgstr "%1-oppsettsfila di er tom. Dette er ikkje normalt."
-
-#~ msgid "Config file %1 not saved"
-#~ msgstr "Oppsettfila %1 er ikkje lagra"
-
-#~ msgid "cannot open recent session file %1 (%2)"
-#~ msgstr "greier ikkje opna den nyleg brukte øktfila %1 (%2)"
-
-#~ msgid ""
-#~ "programming error: RegionFactory::create() called with unknown Region type"
-#~ msgstr ""
-#~ "programmeringsfeil: RegionFactory::create()-funksjonen oppkalle med "
-#~ "ukjent bolktype"
-
-#~ msgid "%1 compound-%2 (%3)"
-#~ msgstr "%1 samansett-%2 (%3)"
-
-#~ msgid "%1 compound-%2.1 (%3)"
-#~ msgstr "%1 samansett-%2.1 (%3)"
-
-#~ msgid "cannot create new name for region \"%1\""
-#~ msgstr "greier ikkje laga nytt namn for bolken \"%1\""
-
-#~ msgid "Import: %1"
-#~ msgstr "Import: %1"
-
-#~ msgid "Import: src_new() failed : %1"
-#~ msgstr "Import: src_new()-funkjsonen lukkast ikkje: %1"
-
-#~ msgid "return %1"
-#~ msgstr "retur %1"
-
-#~ msgid "unknown Processor type \"%1\"; ignored"
-#~ msgstr "\"%1\" er ein ukjend prosesseringstype, hoppa over"
-
-#~ msgid "processor could not be created. Ignored."
-#~ msgstr "greidde ikkje laga prosessering. Hoppa over."
-
-#~ msgid "Bad node sent to Route::set_state() [%1]"
-#~ msgstr "Feil punkt sendt til Route::set_state()-funksjonen [%1]"
-
-#~ msgid "Pannable state found for route (%1) without a panner!"
-#~ msgstr "Fann panoreringsstatus for ruta (%1) utan panorering!"
-
-#~ msgid "badly formed order key string in state file! [%1] ... ignored."
-#~ msgstr "feilforma tingingsnykjelstreng i tilstandsfil! [%1] ... hoppa over."
-
-#~ msgid "You cannot subgroup MIDI tracks at this time"
-#~ msgstr "Du kan ikkje laga undergrupper for MIDI-spor no"
-
-#~ msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
-#~ msgstr ""
-#~ "lag tempo: greidde ikkje lesa data frå %1 ved %2 (ville ha %3, fekk %4)"
-
-#~ msgid "error writing tempo-adjusted data to %1"
-#~ msgstr "greidde ikkje skriva tempo-justert fil til %1"
-
-#~ msgid "timefx code failure. please notify ardour-developers."
-#~ msgstr "kodefeil på tidseffektar, sei frå til Ardour-utviklarane"
-
-#~ msgid "aux %1"
-#~ msgstr "aux %1"
-
-#~ msgid "send %1"
-#~ msgstr "send %1"
-
-#~ msgid "programming error: send created using role %1"
-#~ msgstr "programmeringsfeil: laga send med rolla %1"
-
-#~ msgid "Set block size and sample rate"
-#~ msgstr "Set blokkstorleik og punktrate"
-
-#~ msgid "Using configuration"
-#~ msgstr "Bruker oppsett"
-
-#~ msgid "LTC In"
-#~ msgstr "LTC inn"
-
-#~ msgid "LTC Out"
-#~ msgstr "LTC ut"
-
-#~ msgid "LTC-in"
-#~ msgstr "LTC-inn"
-
-#~ msgid "LTC-out"
-#~ msgstr "LTC-ut"
-
-#~ msgid "could not setup Click I/O"
-#~ msgstr "greidde ikkje setja opp klikk-I/U"
-
-#~ msgid "cannot setup Click I/O"
-#~ msgstr "greier ikkje setja opp klikk-I/U"
-
-#~ msgid "Compute I/O Latencies"
-#~ msgstr "Rekn ut I/U-seinkingar"
-
-#~ msgid "Set up standard connections"
-#~ msgstr "Set opp standartilkoplingar"
-
-#~ msgid "out %<PRIu32>"
-#~ msgstr "ut %<PRIu32>"
-
-#~ msgid "out %<PRIu32>+%<PRIu32>"
-#~ msgstr "ut %<PRIu32>+%<PRIu32>"
-
-#~ msgid "in %<PRIu32>"
-#~ msgstr "inn %<PRIu32>"
-
-#~ msgid "in %<PRIu32>+%<PRIu32>"
-#~ msgstr "inn %<PRIu32>+%<PRIu32>"
-
-#~ msgid "Setup signal flow and plugins"
-#~ msgstr "Set opp signalflyt og innstikk"
-
-#~ msgid "Connect to engine"
-#~ msgstr "Kople til maskin"
-
-#~ msgid "cannot connect master output %1 to %2"
-#~ msgstr "greier ikkje kopla til hovudutgangane %1 til %2"
-
-#~ msgid "monitor"
-#~ msgstr "lytting"
-
-#~ msgid "cannot connect control input %1 to %2"
-#~ msgstr "greier ikkje kopla til kontrollinngangane %1 til %2"
-
-#~ msgid "The preferred I/O for the monitor bus (%1) cannot be found"
-#~ msgstr "Greidde ikkje finna føretrekt I/U for lyttebussen (%1)"
-
-#~ msgid "cannot connect control output %1 to %2"
-#~ msgstr "greier ikkje kopla til kontrollutgangane %1 til %2"
-
-#~ msgid "cannot create Auditioner: no auditioning of regions possible"
-#~ msgstr ""
-#~ "greier ikkje laga Lytting: det er ikkje råd å lytta på nokon bolkar."
-
-#~ msgid "Session: you can't use that location for auto punch (start <= end)"
-#~ msgstr "Økt: du kan ikkje bruka denne staden for autoinnslag (start<=slutt)"
-
-#~ msgid "Session: you can't use a mark for auto loop"
-#~ msgstr "Økt: du kan ikkje bruka eit merke for auto-lykkjespel"
-
-#~ msgid "feedback loop setup between %1 and %2"
-#~ msgstr "rundgang-lykkjeoppsett mellom %1 og %2"
-
-#~ msgid "Session: could not create new midi track."
-#~ msgstr "Økt: greidde ikkje laga nytt midispor."
-
-#~ msgid ""
-#~ "No more JACK ports are available. You will need to stop %1 and restart "
-#~ "JACK with ports if you need this many tracks."
-#~ msgstr ""
-#~ "Det finst ikkje fleire JACK-portar. Du må stoppa %1 og starta JACK på "
-#~ "nytt med nok portar viss du treng så mange spor."
-
-#~ msgid "Audio"
-#~ msgstr "Lyd"
-
-#~ msgid "cannot configure %1 in/%2 out configuration for new audio track"
-#~ msgstr ""
-#~ "greier ikkje stilla inn %1 inn/%2 ut-innstillingane for det nye lydsporet"
-
-#~ msgid "Session: could not create new audio track."
-#~ msgstr "Økt: greidde ikkje laga nytt lydspor."
-
-#~ msgid "Bus"
-#~ msgstr "Buss"
-
-#~ msgid "Session: could not create new audio route."
-#~ msgstr "Økt: greidde ikkje laga ny lydrute."
-
-#~ msgid "Session: UINT_MAX routes? impossible!"
-#~ msgstr "Økt: UINT_MAX-ruter? Går ikkje an!"
-
-#~ msgid "Session: cannot create track/bus from template description"
-#~ msgstr "Økt: greier ikkje laga spor/buss frå malskildringa"
-
-#~ msgid "Session: could not create new route from template"
-#~ msgstr "Økt: greidde ikkje laga ny lydrute frå malen"
-
-#~ msgid "Adding new tracks/busses failed"
-#~ msgstr "Greidde ikkje leggja til nye spor/bussar"
-
-#~ msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
-#~ msgstr ""
-#~ "ALVORLEG FEIL! Greidde ikkje finna ei høveleg utgåve av %1 for å døypa om"
-
-#~ msgid "There are already %1 recordings for %2, which I consider too many."
-#~ msgstr "Det er alt %1 opptak for %2, og eg synest det er for mange."
-
-#~ msgid "send ID %1 appears to be in use already"
-#~ msgstr "send-IDen %1 ser ut til å vera i bruk frå før"
-
-#~ msgid "aux send ID %1 appears to be in use already"
-#~ msgstr "aux-send-IDen %1 ser ut til å vera i bruk frå før"
-
-#~ msgid "return ID %1 appears to be in use already"
-#~ msgstr "retur-IDen %1 ser ut til å vera i bruk frå før"
-
-#~ msgid "insert ID %1 appears to be in use already"
-#~ msgstr "send-IDen %2 ser ut til å vera i bruk frå før"
-
-#~ msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
-#~ msgstr "Kan ikkje skriva eit område der slutten <= starten (td. %1 <= %2)"
-
-#~ msgid "too many bounced versions of playlist \"%1\""
-#~ msgstr "for mange samanmiksa versjonar av spelelista \"%1\""
-
-#~ msgid "cannot create new audio file \"%1\" for %2"
-#~ msgstr "greier ikkje laga ny lydfil \"%1\" for %2"
-
-#~ msgid "cannot open click soundfile %1 (%2)"
-#~ msgstr "greier ikkje opna klikk-lydfila %1 (%2)"
-
-#~ msgid "cannot read data from click soundfile"
-#~ msgstr "greier ikkje lesa data frå klikklydfila"
-
-#~ msgid ""
-#~ "Tried to reconstitute a MementoCommand with no contents, failing. id="
-#~ msgstr ""
-#~ "Prøvde å byggja opp att ein memento-kommando utan innhald, og mislukkast. "
-#~ "id="
-
-#~ msgid ""
-#~ "could not reconstitute MementoCommand from XMLNode. object type = %1 id = "
-#~ "%2"
-#~ msgstr ""
-#~ "greier ikkje byggja oppatt Memento-kommando frå XML-punkt. Objekttype = "
-#~ "%1 id = %2"
-
-#~ msgid ""
-#~ "could not reconstitute StatefulDiffCommand from XMLNode. object type = %1 "
-#~ "id = %2"
-#~ msgstr ""
-#~ "greier ikkje byggja oppatt StatefulDiff-kommando frå XML-punkt. "
-#~ "Objekttype = %1 id = %2"
-
-#~ msgid "Cannot create Session directory at path %1 Error: %2"
-#~ msgstr "greier ikkje laga øktmappa i stigen \"%1\", feil: %2"
-
-#~ msgid "Session subdirectory does not exist at path %1"
-#~ msgstr "Undermappa for økta finst ikkje i stigen %1"
-
-#~ msgid "Session: cannot have two events of type %1 at the same frame (%2)."
-#~ msgstr "Økt: du kan ikkje ha to handlingar av typen %1 på same ramma (%2)."
-
-#~ msgid "%1: cannot seek to %2 for export"
-#~ msgstr "%1: greier ikkje finna %2 for eksportering"
-
-#~ msgid "Export ended unexpectedly: %1"
-#~ msgstr "Eksporten avslutta uventa: %1"
-
-#~ msgid ""
-#~ "LTC encoder: invalid framerate - LTC encoding is disabled for the "
-#~ "remainder of this session."
-#~ msgstr ""
-#~ "LTC-omkoding: ugyldig rammerate - LTC-omodinga blir skrudd av for resten "
-#~ "av økta."
-
-#~ msgid "Session: could not send full MIDI time code"
-#~ msgstr "Økt: greidde ikke senda full MIDI-tidskode"
-
-#~ msgid "Session: cannot send quarter-frame MTC message (%1)"
-#~ msgstr "Økt: greidde ikkje senda kvartramme-MTC-melding (%1)"
-
-#~ msgid "Session: cannot create Playlist from XML description."
-#~ msgstr "Økt: greier ikkje laga speleliste ut frå XML-skildringa."
-
-#~ msgid "Session: error in no roll for %1"
-#~ msgstr "Økt: feil på ingen rull for %1"
-
-#~ msgid "Programming error: illegal event type in process_event (%1)"
-#~ msgstr "Programmeringsfeil: ulovleg handlingstype i process-event (%1)"
-
-#~ msgid "Could not use path %1 (%s)"
-#~ msgstr "Greidde ikkje bruka stigen %1 (%s)"
-
-#~ msgid "solo cut control (dB)"
-#~ msgstr "solokutt-kontroll (dB)"
-
-#~ msgid "Reset Remote Controls"
-#~ msgstr "Still tilbake fjernkontrollar"
-
-#~ msgid "Session loading complete"
-#~ msgstr "Ferdig å lasta økta."
-
-#~ msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga mappa \"%1\" for økttoppfiler (%2)"
-
-#~ msgid "Session: cannot create session sounds dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga øktmappa \"%1\" for lydfiler (%2)"
-
-#~ msgid "Session: cannot create session midi dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga midimappa \"%1\" for økta (%2)"
-
-#~ msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga mappa \"%1\" for daudlyd (%2)"
-
-#~ msgid "Session: cannot create session export folder \"%1\" (%2)"
-#~ msgstr "Økt: greidde ikkje laga mappa \"%1\" for eksportlyd (%2)"
-
-#~ msgid "Session: cannot create session analysis folder \"%1\" (%2)"
-#~ msgstr "Økt: greidde ikkje laga mappa \"%1\" for øktanalyse (%2)"
-
-#~ msgid "Session: cannot create session plugins folder \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga utvidingmappa \"%1\" for økta (%2)"
-
-#~ msgid "Session: cannot create session externals folder \"%1\" (%2)"
-#~ msgstr "Økt: greidde ikkje laga eksternmappa «%1» (%2)"
-
-#~ msgid "Session: cannot create session folder \"%1\" (%2)"
-#~ msgstr "Økt: greidde ikkje laga øktmappa \"%1\" (%2)"
-
-#~ msgid "Could not open %1 for writing session template"
-#~ msgstr "Greidde ikkje opna %1 for å skriva miksarmal"
-
-#~ msgid "Could not open session template %1 for reading"
-#~ msgstr "Greidde ikkje opna miksarmalen %1 for å lesa han"
-
-#~ msgid "master"
-#~ msgstr "master"
-
-#~ msgid "Could not remove pending capture state at path \"%1\" (%2)"
-#~ msgstr "Greidde ikkje fjerna ventande opptaksstatus på stigen «%1» (%2)"
-
-#~ msgid "could not rename snapshot %1 to %2 (%3)"
-#~ msgstr "greidde ikkje døypa om snøggbiletet %1 til %2 (%3)"
-
-#~ msgid "Could not remove state file at path \"%1\" (%2)"
-#~ msgstr "Greidde ikkje fjerna tilstandsfil på stigen «%1» (%2)"
-
-#~ msgid ""
-#~ "the %1 audio engine is not connected and state saving would lose all I/O "
-#~ "connections. Session not saved"
-#~ msgstr ""
-#~ "lydmotoren i %1 er ikkje kopla til, og å lagra statusen ville kasta bort "
-#~ "alle I/U-tilkoplingar. Økta er ikkje lagra"
-
-#~ msgid "state could not be saved to %1"
-#~ msgstr "greidde ikkje lagra tilstanden til %1"
-
-#~ msgid "Could not remove temporary state file at path \"%1\" (%2)"
-#~ msgstr "Greidde ikkje fjerna mellombels tilstandsfil på stigen «%1» (%2)"
-
-#~ msgid "could not rename temporary session file %1 to %2"
-#~ msgstr "greidde ikkje døypa om mellombels øktfil %1 til %2"
-
-#~ msgid "%1: session state information file \"%2\" doesn't exist!"
-#~ msgstr "%1: tilstandsinformasjonsfila \"%2\" for økta finst ikkje!"
-
-#~ msgid "Could not understand ardour file %1"
-#~ msgstr "Skjønte ikkje ardour-fila %1"
-
-#~ msgid "Session file %1 is not a session"
-#~ msgstr "Øktfila %1 er ikkje ei økt"
-
-#~ msgid ""
-#~ "Copying old session file %1 to %2\n"
-#~ "Use %2 with %3 versions before 2.0 from now on"
-#~ msgstr ""
-#~ "Kopierer gamal øktfil %1 til %2\n"
-#~ "Bruk %2 med %3-versjonar før 2.0 frå no av"
-
-#~ msgid "programming error: Session: incorrect XML node sent to set_state()"
-#~ msgstr ""
-#~ "programmeringsfeil: Økt: feil XML-punkt sendt til set_state()-funksjonen"
-
-#~ msgid "Session: XML state has no options section"
-#~ msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om instillingar"
-
-#~ msgid "Session: XML state has no metadata section"
-#~ msgstr "Økt: XML-fila har inga avdeling for metadata"
-
-#~ msgid "Session: XML state has no sources section"
-#~ msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om kjelder"
-
-#~ msgid "Session: XML state has no Tempo Map section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om tempokart"
-
-#~ msgid "Session: XML state has no locations section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om stader"
-
-#~ msgid "Session: XML state has no Regions section"
-#~ msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om bolkar"
-
-#~ msgid "Session: XML state has no playlists section"
-#~ msgstr "Økt: XML-tilstandsfila har ikkje noko avsnitt om spelelister"
-
-#~ msgid "Session: XML state has no bundles section"
-#~ msgstr "Økt: XML-fila har inga avdeling for bundlar"
-
-#~ msgid "Session: XML state has no diskstreams section"
-#~ msgstr "Økt: XML-fila har ikkje nok avsnitt om diskstraumar"
-
-#~ msgid "Session: XML state has no routes section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om ruter"
-
-#~ msgid "Session: XML state has no route groups section"
-#~ msgstr "Økt: XML-fila har inga avdeling for rutegrupper"
-
-#~ msgid "Session: XML state has no edit groups section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om grupperedigering"
-
-#~ msgid "Session: XML state has no mix groups section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om miksgrupper"
-
-#~ msgid "Session: XML state has no click section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om klikk"
-
-#~ msgid "Session: cannot create Route from XML description."
-#~ msgstr "Økt: greier ikkje laga rute ut frå XML-skildringa."
-
-#~ msgid "Loaded track/bus %1"
-#~ msgstr "Lasta spor/buss %1"
-
-#~ msgid "Could not find diskstream for route"
-#~ msgstr "Greidde ikkje finna diskstraumen for rute"
-
-#~ msgid "Session: cannot create Region from XML description."
-#~ msgstr "Økt: greier ikkje laga bolkar ut frå XML-skildringa."
-
-#~ msgid "Can not load state for region '%1'"
-#~ msgstr "Greier ikkje laga status for bolken '%1'"
-
-#~ msgid "Regions in compound description not found (ID's %1 and %2): ignored"
-#~ msgstr "Fann ikkje bolkar i samansetjingsstatus (IDar %1 og %2): ignorert"
-
-#~ msgid "Nested source has no ID info in session state file! (ignored)"
-#~ msgstr "Nøsta kjelde har ingen ID-info i øktstatusfila! (ignorert)"
-
-#~ msgid "Cannot reconstruct nested source for region %1"
-#~ msgstr "Greier ikkje rekonstruera nøsta kjelde for bolken %1"
-
-#~ msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein lydbolk er uferdig (manglar kjelde)"
-
-#~ msgid ""
-#~ "Session: XMLNode describing a AudioRegion references an unknown source id "
-#~ "=%1"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein lydbolk peikar på ein ukjend kjelde-ID "
-#~ "= %1"
-
-#~ msgid ""
-#~ "Session: XMLNode describing a AudioRegion references a non-audio source "
-#~ "id =%1"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein lydbolk peikar på ein kjelde-ID %1 som "
-#~ "ikkje er ei lydfil"
-
-#~ msgid ""
-#~ "Session: XMLNode describing an AudioRegion is missing some master "
-#~ "sources; ignored"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein lydbolk manglar nokre masterkjelder, "
-#~ "ser bort frå"
-
-#~ msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein midibolk er uferdig (manglar kjelde)"
-
-#~ msgid ""
-#~ "Session: XMLNode describing a MidiRegion references an unknown source id ="
-#~ "%1"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein midibolk peikar på ein ukjend kjelde-ID "
-#~ "= %1"
-
-#~ msgid ""
-#~ "Session: XMLNode describing a MidiRegion references a non-midi source id ="
-#~ "%1"
-#~ msgstr ""
-#~ "Økt: XML-punktet som skildrar ein midibolk peikar på ein kjelde-ID %1 som "
-#~ "ikkje er ei midi-fil"
-
-#~ msgid ""
-#~ "cannot create new file from region name \"%1\" with ident = \"%2\": too "
-#~ "many existing files with similar names"
-#~ msgstr ""
-#~ "greier ikkje laga ny fil frå bolknamn \"%1\" med ident = \"%2\": det "
-#~ "finst for mange med same namnet"
-
-#~ msgid "Session: cannot create Source from XML description."
-#~ msgstr "Økt: greier ikkje laga kjelde ut frå XML-skildringa."
-
-#~ msgid "A sound file is missing. It will be replaced by silence."
-#~ msgstr "Det manglar ei lydfil. Ho vil bli erstatta med stille."
-
-#~ msgid ""
-#~ "Found a sound file that cannot be used by %1. Talk to the progammers."
-#~ msgstr "Fann ei lydfil som %1 ikkje kan bruka. Prat med utviklarane."
-
-#~ msgid "Could not create templates directory \"%1\" (%2)"
-#~ msgstr "Greidde ikkje laga malmappa «%1» (%2)"
-
-#~ msgid "Template \"%1\" already exists - new version not created"
-#~ msgstr "Malen \"%1\" finst alt - laga ingen ny versjon"
-
-#~ msgid "Could not create directory for Session template\"%1\" (%2)"
-#~ msgstr "Greidde ikkje laga mappa for øktmalar «%1» (%2)"
-
-#~ msgid "template not saved"
-#~ msgstr "malen vart ikkje lagra"
-
-#~ msgid ""
-#~ "Could not create directory for Session template plugin state\"%1\" (%2)"
-#~ msgstr ""
-#~ "Greidde ikkje laga malmappa for utvidingstilstandar i økta «%1» (%2)"
-
-#~ msgid "Unknown node \"%1\" found in Bundles list from state file"
-#~ msgstr "Fann ukjent punkt \"%1\" i bundellista frå tilstandsfila"
-
-#~ msgid "Cannot expand path %1 (%2)"
-#~ msgstr "Greier ikkje utvida stigen %1 (%2)"
-
-#~ msgid "Session: cannot create dead file folder \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga mappa \"%1\" for daudlyd (%2)"
-
-#~ msgid "cannot rename unused file source from %1 to %2 (%3)"
-#~ msgstr "kan ikkje døypa om den ubrukte filkjelda frå %1 til %2 (%3)"
-
-#~ msgid "cannot remove peakfile %1 for %2 (%3)"
-#~ msgstr "kan ikkje fjerna toppfil %1 for %2 (%3)"
-
-#~ msgid "could not backup old history file, current history not saved"
-#~ msgstr ""
-#~ "greidde ikkje ta tryggingskopi av den gamle historiefila, noverande "
-#~ "historie vart ikkje lagra."
-
-#~ msgid "history could not be saved to %1"
-#~ msgstr "greidde ikkje lagra historia til %1"
-
-#~ msgid "Could not remove history file at path \"%1\" (%2)"
-#~ msgstr "Greidde ikkje fjerna historiefila på stigen «%1» (%2)"
-
-#~ msgid "could not restore history file from backup %1 (%2)"
-#~ msgstr ""
-#~ "greidde ikkje henta fram att historiefila frå tryggingskopien %1 (%2)"
-
-#~ msgid "%1: no history file \"%2\" for this session."
-#~ msgstr "%1: inga historiefil \"%2\" for denne økta."
-
-#~ msgid "Could not understand session history file \"%1\""
-#~ msgstr "Skjønte ikkje økthistoriefila \"%1\""
-
-#~ msgid "Failed to downcast MidiSource for NoteDiffCommand"
-#~ msgstr "Greidde ikkje kasta ned midi-kjelde for NoteDiffCommand"
-
-#~ msgid "Failed to downcast MidiSource for SysExDiffCommand"
-#~ msgstr "Greidde ikkje kasta ned midi-kjelde for SysExDiffCommand"
-
-#~ msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
-#~ msgstr "Greidde ikkje kasta ned midi-kjelde for PatchChangeDiffCommand"
-
-#~ msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
-#~ msgstr ""
-#~ "Fann ikkje ut korleis eg skal laga ein kommando av eit %1-XML-punkt."
-
-#~ msgid "Session: unknown diskstream type in XML"
-#~ msgstr "Økt: ukjend diskstraumtype i XML"
-
-#~ msgid "Session: could not load diskstream via XML state"
-#~ msgstr "Økt: greidde ikkje lasta diskstraumen via XML-tilstand"
-
-#~ msgid "Unknown JACK transport state %1 in sync callback"
-#~ msgstr "Ukjend JACK-transporttilstand %1 i synk-tilbakekallet"
-
-#~ msgid "Cannot loop - no loop range defined"
-#~ msgstr "Greidde ikkje spela i lykkje - du har ikkje gjeve noko lykkjeområde"
-
-#~ msgid ""
-#~ "Seamless looping cannot be supported while %1 is using JACK transport.\n"
-#~ "Recommend changing the configured options"
-#~ msgstr ""
-#~ "Samanhengande lykkjespeling er ikkje støtta når %1 bruker JACK-"
-#~ "transporten.\n"
-#~ "Me rår til at du endrar innstillingane."
-
-#~ msgid ""
-#~ "Global varispeed cannot be supported while %1 is connected to JACK "
-#~ "transport control"
-#~ msgstr ""
-#~ "Allmenn varifart-kontroll kan ikkje brukast når %1 er kopla til JACK-"
-#~ "transportkontrollen"
-
-#~ msgid "Unable to read event prefix, corrupt MIDI ring buffer"
-#~ msgstr "Greier ikkje lesa handlingsprefiks, MIDI-ringbufferen i ulage"
-
-#~ msgid "Read time/size but not buffer, corrupt MIDI ring buffer"
-#~ msgstr "Les tid/storleik men ikkje buffer, MIDI-ringbufferen i ulage"
-
-#~ msgid "cannot open MIDI file %1 for write"
-#~ msgstr "greier ikkje opna MIDI-fila %1 for skriving"
-
-#~ msgid "WAV"
-#~ msgstr "WAV"
-
-#~ msgid "AIFF"
-#~ msgstr "AIFF"
-
-#~ msgid "CAF"
-#~ msgstr "CAF"
-
-#~ msgid "W64 (64 bit WAV)"
-#~ msgstr "W64 (64-bits WAV)"
-
-#~ msgid "FLAC"
-#~ msgstr "FLAC"
-
-#~ msgid "Ogg/Vorbis"
-#~ msgstr "Ogg/Vorbis"
-
-#~ msgid "raw (no header)"
-#~ msgstr "rå fil (utan tittellinje)"
-
-#~ msgid ".wav"
-#~ msgstr ".wav"
-
-#~ msgid ".aiff"
-#~ msgstr ".aiff"
-
-#~ msgid ".caf"
-#~ msgstr ".caf"
-
-#~ msgid ".w64"
-#~ msgstr ".w64"
-
-#~ msgid ".flac"
-#~ msgstr ".flac"
-
-#~ msgid ".ogg"
-#~ msgstr ".ogg"
-
-#~ msgid ".raw"
-#~ msgstr ".raw"
-
-#~ msgid "Signed 16 bit PCM"
-#~ msgstr "Signert 16bit PCM"
-
-#~ msgid "Signed 24 bit PCM"
-#~ msgstr "Signert 24bit PCM"
-
-#~ msgid "Signed 32 bit PCM"
-#~ msgstr "Signert 32bit PCM"
-
-#~ msgid "Signed 8 bit PCM"
-#~ msgstr "Signert 8bit PCM"
-
-#~ msgid "32 bit float"
-#~ msgstr "32-bit flytpunkt"
-
-#~ msgid "Little-endian (Intel)"
-#~ msgstr "Liten endian (Intel)"
-
-#~ msgid "Big-endian (PowerPC)"
-#~ msgstr "Viktigaste bit fyrst (Mac)"
-
-#~ msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)"
-#~ msgstr "Lydfilkjelde: greier ikkje opna fila \"%1\" for %2 (%3)"
-
-#~ msgid ""
-#~ "SndFileSource: file only contains %1 channels; %2 is invalid as a channel "
-#~ "number"
-#~ msgstr ""
-#~ "Lydfilkjelde: fila inneheld berre %1 kanalar, %2 er eit ugyldig "
-#~ "kanalnummer"
-
-#~ msgid ""
-#~ "cannot set broadcast info for audio file %1 (%2); dropping broadcast info "
-#~ "for this file"
-#~ msgstr ""
-#~ "greier ikkje fastsetja kringkastingsinformasjon for lydfila %1 (%2), "
-#~ "hoppar over kringkastingsinformasjonen for denne fila"
-
-#~ msgid "could not allocate file %1 for reading."
-#~ msgstr "greidde ikkje tildela fila %1 for å lesa"
-
-#~ msgid "SndFileSource: could not seek to frame %1 within %2 (%3)"
-#~ msgstr "Lydfilkjelde: greier ikkje leita fram til ramma %1 innan %2 (%3)"
-
-#~ msgid ""
-#~ "SndFileSource: @ %1 could not read %2 within %3 (%4) (len = %5, ret was "
-#~ "%6)"
-#~ msgstr ""
-#~ "SndFileSource: @ %1 greidde ikkje lesa %2 i %3 (%4) (len = %5, ret var %6)"
-
-#~ msgid "attempt to write a non-writable audio file source (%1)"
-#~ msgstr "prøvde å skriva til ei ikkje-skrivbar lydkjeldefil (%1)"
-
-#~ msgid "programming error: %1 %2"
-#~ msgstr "programmeringsfeil: %1 %2"
-
-#~ msgid "attempt to flush a non-writable audio file source (%1)"
-#~ msgstr "prøvde å tømma ei ikkje-skrivbar lydkjeldefil (%1)"
-
-#~ msgid "attempt to flush an un-opened audio file source (%1)"
-#~ msgstr "prøvde å tømma ei uopna lydkjeldefil (%1)"
-
-#~ msgid "could not allocate file %1 to write header"
-#~ msgstr "greidde ikkje tildela fila %1 for å skriva hovudet"
-
-#~ msgid ""
-#~ "attempt to store broadcast info in a non-writable audio file source (%1)"
-#~ msgstr ""
-#~ "prøvde å lagra kringastingsinfo til ei ikkje-skrivbar lydkjeldefil (%1)"
-
-#~ msgid "attempt to set BWF info for an un-opened audio file source (%1)"
-#~ msgstr "prøvde å laga BWF-info for ei uopna lydkjeldefil (%1)"
-
-#~ msgid "%1: cannot seek to %2 (libsndfile error: %3"
-#~ msgstr "%1: greier ikkje gå til %2 (libsndfile-feil: %3"
-
-#~ msgid "SndFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)"
-#~ msgstr "SndFileSource: \"%1\" feillesen returverdi: %2 av %5 (%3: %4)"
-
-#~ msgid "SndFileSource: \"%1\" bad write (%2)"
-#~ msgstr "SndFileSource: \"%1\" feilskriving (%2)"
-
-#~ msgid ""
-#~ "Filesource: start time is already set for existing file (%1): Cannot "
-#~ "change start time."
-#~ msgstr ""
-#~ "Filkjelde: starttida er alt sett for denne fila (%1): kan ikkje endra "
-#~ "starttid."
-
-#~ msgid "Speaker information is missing azimuth - speaker ignored"
-#~ msgstr "Høgtalaroppsettet manglar asimutvinkel - høgtalaren ikkje medteken"
-
-#~ msgid "Speaker information is missing elevation - speaker ignored"
-#~ msgstr ""
-#~ "Høgtalaroppsettet manglar opplysingar om høgd over golvet - høgtalaren "
-#~ "ikkje medteken"
-
-#~ msgid "Speaker information is missing distance - speaker ignored"
-#~ msgstr ""
-#~ "Høgtalaroppsettet manglar opplysingar om avstand - høgtalaren ikkje "
-#~ "medteken"
-
-#~ msgid "Cannot compile tape track regexp for use (%1)"
-#~ msgstr "Greier ikkje setja saman bandspor-reguttrykk til bruk (%1)"
-
-#~ msgid "TempoSection XML node has no \"start\" property"
-#~ msgstr "TempoSection-XML-punktet har ingen \"start\"-eigenskap"
-
-#~ msgid "TempoSection XML node has an illegal \"start\" value"
-#~ msgstr "TempoSection-XML-punktet har ein ulovleg \"start\"-verdi"
-
-#~ msgid "TempoSection XML node has no \"beats-per-minute\" property"
-#~ msgstr "TempoSection-XML-punktet har ingen \"slag per minutt\"-eigenskap"
-
-#~ msgid "TempoSection XML node has an illegal \"beats_per_minute\" value"
-#~ msgstr "TempoSection-XML-punktet har ein ulovleg \"slag per minutt\"-verdi"
-
-#~ msgid "TempoSection XML node has an illegal \"note-type\" value"
-#~ msgstr "TempoSection-XML-punktet har ein ulovleg \"note-type\"-verdi"
-
-#~ msgid "TempoSection XML node has no \"movable\" property"
-#~ msgstr "TempoSection-XML-punktet har ingen \"flyttbar\"-eigenskap"
-
-#~ msgid "TempoSection XML node has an illegal \"bar-offset\" value"
-#~ msgstr "TempoSection-XML-punktet har ein ulovleg «taktavvik»-verdi"
-
-#~ msgid "MeterSection XML node has no \"start\" property"
-#~ msgstr "MeterSection-XML-punktet har ingen \"start\"-eigenskap"
-
-#~ msgid "MeterSection XML node has an illegal \"start\" value"
-#~ msgstr "MeterSection-XML-punktet har ein ulovleg \"start\"-verdi"
-
-#~ msgid ""
-#~ "MeterSection XML node has no \"beats-per-bar\" or \"divisions-per-bar\" "
-#~ "property"
-#~ msgstr ""
-#~ "MeterSection-XML-punktet har ingen «slag per takt»-eigenskap eller «delar "
-#~ "per takt»-eigenskap"
-
-#~ msgid ""
-#~ "MeterSection XML node has an illegal \"beats-per-bar\" or \"divisions-per-"
-#~ "bar\" value"
-#~ msgstr ""
-#~ "MeterSection-XML-punktet har ein ulovleg «slag per takt»- eller «delar "
-#~ "per takt»-verdi"
-
-#~ msgid "MeterSection XML node has no \"note-type\" property"
-#~ msgstr "MeterSection-XML-punktet har ingen \"notetype\"-eigenskap"
-
-#~ msgid "MeterSection XML node has an illegal \"note-type\" value"
-#~ msgstr "MeterSection-XML-punktet har ein ulovleg \"start\"-verdi"
-
-#~ msgid "MeterSection XML node has no \"movable\" property"
-#~ msgstr "MeterSection-XML-punktet har ingen \"flyttbar\"-eigenskap"
-
-#~ msgid ""
-#~ "Meter changes can only be positioned on the first beat of a bar. Moving "
-#~ "from %1 to %2"
-#~ msgstr ""
-#~ "Taktartsendringar kan berre stå i fyrste slaget i takta. Flyttar frå %1 "
-#~ "til %2"
-
-#~ msgid "no tempo sections defined in tempo map - cannot change tempo @ %1"
-#~ msgstr ""
-#~ "ingen temposeksjonar sette opp i tempokartet - kan ikkje endra tempoet "
-#~ "ved %1"
-
-#~ msgid "programming error: no tempo section in tempo map!"
-#~ msgstr "programmeringsfeil: ikkje noko tempoavsnitt i tempokartet!"
-
-#~ msgid "programming error: unhandled MetricSection type"
-#~ msgstr "programmeringsfeil: uhandtert MetricSection-type"
-
-#~ msgid "tempo map asked for BBT time at frame %1\n"
-#~ msgstr "tempokartet spurte for BBT-tid på ramma %1\n"
-
-#~ msgid "tempo map asked for frame time at bar < 1 (%1)\n"
-#~ msgstr "tempokartet spurde etter rammetid ved takt < 1 (%1)\n"
-
-#~ msgid "Tempo map: could not set new state, restoring old one."
-#~ msgstr ""
-#~ "Tempokart: greidde ikkje fastsetja den nye tilstanden, hentar fram att "
-#~ "den gamle."
-
-#~ msgid "Multiple meter definitions found at %1"
-#~ msgstr "Fann fleire taktartsdefinisjonar ved %1"
-
-#~ msgid "Multiple tempo definitions found at %1"
-#~ msgstr "Fann fleire tempodefinisjonar ved %1"
-
-#~ msgid "Tempo map"
-#~ msgstr "Tempokart"
-
-#~ msgid "Tempo Map"
-#~ msgstr "Tempokart"
-
-#~ msgid "Tempo marks: "
-#~ msgstr "Tempomerke:"
-
-#~ msgid ""
-#~ "\n"
-#~ "Meter marks: "
-#~ msgstr ""
-#~ "\n"
-#~ "Taktmerke:"
-
-#~ msgid ""
-#~ "This will replace the current tempo map!\n"
-#~ "Are you shure you want to do this?"
-#~ msgstr ""
-#~ "Dette byter ut det gjeldande tempokartet!\n"
-#~ "Er du sikker på at du vil gjera dette?"
-
-#~ msgid "Node for Bundle has no \"name\" property"
-#~ msgstr "Punkt for bundelen har ingen \"namn\"-eigenskap"
-
-#~ msgid "Unknown node \"%s\" in Bundle"
-#~ msgstr "Ukjend node \"%s\" i bundelen"
-
-#~ msgid "Node for Channel has no \"name\" property"
-#~ msgstr "Punktet for kanalen har ingen \"namn\"-eigenskap"
-
-#~ msgid "Node for Channel has no \"type\" property"
-#~ msgstr "Punktet for kanalen har ingen \"type\"-eigenskap"
-
-#~ msgid "Node for Port has no \"name\" property"
-#~ msgstr "Punktet for porten har ingen \"namn\"-eigenskap"
-
-#~ msgid "Splice"
-#~ msgstr "Splitt"
-
-#~ msgid "Slide"
-#~ msgstr "Gli"
-
-#~ msgid "Lock"
-#~ msgstr "LÃ¥s"
-
-#~ msgid "programming error: unknown edit mode string \"%1\""
-#~ msgstr "programmeringsfeil: ukjend redigeringsmodus-streng \"%1\""
-
-#~ msgid "MIDI Timecode"
-#~ msgstr "MIDI-tidskode"
-
-#~ msgid "MTC"
-#~ msgstr "MTC"
-
-#~ msgid "MIDI Clock"
-#~ msgstr "MIDI-klokke"
-
-#~ msgid "JACK"
-#~ msgstr "JACK"
-
-#~ msgid "programming error: unknown sync source string \"%1\""
-#~ msgstr "programmeringsfeil: ukjend synkkjeldestreng \"%1\""
-
-#~ msgid "M-Clock"
-#~ msgstr "M-klokke"
-
-#~ msgid "LTC"
-#~ msgstr "LTC"
-
-#~ msgid "programming error: unknown native header format: %1"
-#~ msgstr "programmeringsfeil: ukjent opphavleg hovudformat: \"%1\""
-
-#~ msgid "cannot open directory %1 (%2)"
-#~ msgstr "greier ikkje opna mappa %1 (%2)"
-
-#~ msgid ""
-#~ "programming error: non-audio Region passed to remove_overlap in audio "
-#~ "playlist"
-#~ msgstr ""
-#~ "programmeringsfeil: ikkje-lydbolk gjeve til fjern_overlapping i "
-#~ "lydspelelista"
-
-#~ msgid ""
-#~ "programming error: non-audio Region tested for overlap in audio playlist"
-#~ msgstr ""
-#~ "programmeringsfeil: ikkje-lydbolk prøvd for overlapping i lydspelelista"
-
-#~ msgid "control protocol XML node has no name property. Ignored."
-#~ msgstr ""
-#~ "XML-noden for kontrollprotokollen har ingen namneeigenskap. Såg bort frå."
-
-#~ msgid "control protocol \"%1\" is not known. Ignored"
-#~ msgstr "kontrollprotokollen \"%1\" er ukjent. Såg bort frå"
-
-#~ msgid "Crossfade: no \"in\" region in state"
-#~ msgstr "Overtoning: Ingen \"inn\"-bolk her"
-
-#~ msgid ""
-#~ "Crossfade: no \"in\" region %1 found in playlist %2 nor in region map"
-#~ msgstr ""
-#~ "Krysstoning: fann ingen \"inn\"-bolk %1, korkje i spelelista %2 eller i "
-#~ "bolkkartet"
-
-#~ msgid "Crossfade: no \"out\" region in state"
-#~ msgstr "Overtoning: ingen \"ut\"-bolk her"
-
-#~ msgid ""
-#~ "Crossfade: no \"out\" region %1 found in playlist %2 nor in region map"
-#~ msgstr ""
-#~ "Krysstoning: fann ingen \"ut\"-bolk %1, korkje i spelelista %2 eller i "
-#~ "bolkkartet"
-
-#~ msgid "old-style crossfade information - no position information"
-#~ msgstr "gamaldags overtoningsinformasjon - ingen posisjonsinformasjon"
-
-#~ msgid "Removed open file count limit. Excellent!"
-#~ msgstr "Fjerna teljegrensa for opne filer. Steikande bra!"
-
-#~ msgid "%1 will be limited to %2 open files"
-#~ msgstr "%1 vil vera avgrensa til å opna %2 filer"
-
-#~ msgid "midiui"
-#~ msgstr "midibrukarflate"
-
-#~ msgid "Chunk %1 uses an unknown playlist \"%2\""
-#~ msgstr "Beten %1 bruker ei ukjend speleliste, \"%2\""
-
-#~ msgid "Chunk %1 contains misformed playlist information"
-#~ msgstr "Beten %1 inneheld feilforma spelelisteinformasjon"
-
-#~ msgid "Cannot become GUI app"
-#~ msgstr "Greier ikkje bli grafisk program"
-
-#~ msgid ""
-#~ "%1: could not find configuration file (ardour.rc), canvas will look "
-#~ "broken."
-#~ msgstr ""
-#~ "%1: greidde ikkje finna oppsettsfila (ardour.rc), arbeidsområdet vil sjå "
-#~ "øydelagt ut."
-
-#~ msgid "signal"
-#~ msgstr "signal"
-
-#~ msgid "Midi"
-#~ msgstr "Midi"
-
-#~ msgid "editor"
-#~ msgstr "redigering"
-
-#~ msgid "Template \"%1\" already exists - template not renamed"
-#~ msgstr "Malen \"%1\" finst alt - malen fekk ikkje nytt namn"
-
-#~ msgid "Session: cannot create Named Selection from XML description."
-#~ msgstr "Økt: greier ikkje laga namngjeve utval ut frå XML-skildringa."
-
-#~ msgid "Unable to create a backup copy of file %1 (%2)"
-#~ msgstr "Greidde ikkje laga tryggingskopi av fila %1 (%2)"
-
-#~ msgid "illegal or badly-formed string used for path (%1)"
-#~ msgstr "ulovleg eller feilforma streng brukt for stigen (%1)"
-
-#~ msgid "path (%1) is ambiguous"
-#~ msgstr "stigen (%1) er tvitydig"
-
-#~ msgid "Could not move capture file from %1"
-#~ msgstr "Greidde ikkje flytta opptaksfila frå %1"
-
-#~ msgid "Cannot create temporary MIDI port to determine MIDI buffer size"
-#~ msgstr ""
-#~ "Greier ikkje laga mellombels MIDI-port for å avgjera MIDI-bufferstorleiken"
-
-#~ msgid "Pan %1"
-#~ msgstr "Pan %1"
-
-#~ msgid "rename from %1 to %2 failed: %3)"
-#~ msgstr "omdøyping frå %1 til %2 mislukka: %3)"
-
-#~ msgid "Using %2 threads on %1 CPUs"
-#~ msgstr "Brukar %2 trådar på %1 prosessorar"
-
-#~ msgid "direction"
-#~ msgstr "retning"
-
-#~ msgid ""
-#~ "badly formatted pan automation event record at line %1 of %2 (ignored) "
-#~ "[%3]"
-#~ msgstr ""
-#~ "feilformatert handlingsopptak av panoreringsautomasjon på linja %1 av %2 "
-#~ "(hoppa over) [%3]"
-
-#~ msgid "programming error:"
-#~ msgstr "programmeringsfeil: "
-
-#~ msgid "cannot open pan automation file %1 (%2)"
-#~ msgstr "greier ikkje opna panoreringsautomasjonsfil %1 (%2)"
-
-#~ msgid "badly formed version number in pan automation event file \"%1\""
-#~ msgstr ""
-#~ "feilforma versjonsnummer i handlingsfila for panoreringsautomasjon \"%1\""
-
-#~ msgid ""
-#~ "no version information in pan automation event file \"%1\" (first line = "
-#~ "%2)"
-#~ msgstr ""
-#~ "ingen versjonsinformasjon i handlingsfila for panoreringsautomasjon "
-#~ "\"%1\" (fyrste linja= %2)"
-
-#~ msgid "too many panner states found in pan automation file %1"
-#~ msgstr "for mange panoreringstilstandar i automasjonsfila %1"
-
-#~ msgid "C"
-#~ msgstr "S"
-
-#~ msgid "lr"
-#~ msgstr "vh"
-
-#~ msgid "width"
-#~ msgstr "breidd"
-
-#~ msgid "cannot open click emphasis soundfile %1 (%2)"
-#~ msgstr "greier ikkje opna uthevings-klikklydfila %1 (%2)"
-
-#~ msgid "cannot read data from click emphasis soundfile"
-#~ msgstr "greier ikkje lesa data frå uthevings-klikklydfila"
-
-#~ msgid "Reset Control Protocols"
-#~ msgstr "Still tilbake kontrollprotokollar"
-
-#~ msgid "Session: cannot create session stub sounds dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga mappa \"%1\" for lydfilbetar (%2)"
-
-#~ msgid "Session: cannot create session stub midi dir \"%1\" (%2)"
-#~ msgstr "Økt: greier ikkje laga midibetemappa \"%1\" for økta (%2)"
-
-#~ msgid "could not allocate file %1"
-#~ msgstr "greidde ikkje tildela fila %1"
-
-#~ msgid ""
-#~ "AudioDiskstream %1: cannot read xfade samples %2 from playlist at frame %3"
-#~ msgstr ""
-#~ "Lyd-diskstraum %1: greidde ikkje lesa krysstoningspunkt %2 frå "
-#~ "spelelista, ramme %3"
-
-#~ msgid "%1: cannot create region from pending capture sources"
-#~ msgstr "%1: greidde ikkje laga bolk frå ventande opptakskjelder"
-
-#~ msgid "register input port called before engine was started"
-#~ msgstr "registerinngangsporten vart oppkalla før tenaren starta"
-
-#~ msgid "register output port called before engine was started"
-#~ msgstr "registerutgangsporten vart oppkalla før tenaren starta"
-
-#~ msgid "AudioEngine: connection already exists: %1 (%2) to %3 (%4)"
-#~ msgstr "AudioEngine: tilkoplinga finst frå før: %1 (%2) til %3 (%4)."
-
-#~ msgid ""
-#~ "Disconnected from JACK while reconnecting. You should quit Ardour now."
-#~ msgstr "Kopla frå JACK ved ny tilkopling. Du bør avslutta Ardour no."
-
-#~ msgid "could not reconnect %1 and %2 (err = %3)"
-#~ msgstr "greidde ikkje kopla til att %1 og %2 (feil = %3)"
-
-#~ msgid ""
-#~ "This is an old Ardour session that does not have\n"
-#~ "sufficient information for rendered FX"
-#~ msgstr ""
-#~ "Dette er ei gamal Ardour-økt som ikkje har\n"
-#~ "nok informasjon for oppteikna effektar"
-
-#~ msgid "in 1+2"
-#~ msgstr "inn 1+2"
-
-#~ msgid "AudioTrack: audio diskstream \"%1\" not known by session"
-#~ msgstr "Lydspor: økta kjenner ikkje att lyd-diskstraumen \"%1\""
-
-#~ msgid "programming error: AudioTrack given state without diskstream!"
-#~ msgstr "Programmeringsfeil: Ardour fekk tilstand utan diskstraum1"
-
-#~ msgid "ill-formed MIDI port specification in ardour rcfile (ignored)"
-#~ msgstr ""
-#~ "feilforma MIDI-portspesifikasjon oppgjeve i ardour-rc-fila (hoppa over)"
-
-#~ msgid "Node for Connection has no \"connections\" property"
-#~ msgstr "Punkt for tilkopling har ingen \"tilkopingar\"-eigenskapar"
-
-#~ msgid "Starting OSC"
-#~ msgstr "Startar OSC"
-
-#~ msgid "no MIDI ports specified: no MMC or MTC control possible"
-#~ msgstr ""
-#~ "ingen MIDI-portar er spesifiserte. MMC- eller MTC-kontroll er ikkje "
-#~ "mogleg."
-
-#~ msgid "Configuring MIDI ports"
-#~ msgstr "Set opp MIDI-portar"
-
-#~ msgid "default"
-#~ msgstr "standard"
-
-#~ msgid "No MMC control (MIDI port \"%1\" not available)"
-#~ msgstr "Ingen MMC-kontroll (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid "No MTC support (MIDI port \"%1\" not available)"
-#~ msgstr "Inga MTC-støtte (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
-#~ msgstr ""
-#~ "Ingen MIDI-parameterstøtte (MIDI-porten \"%1\" er ikkje tilgjengeleg)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(resample from %2KHz to %3KHz)\n"
-#~ "(%4 of %5)"
-#~ msgstr ""
-#~ "omdannar %1\n"
-#~ "(ompunkting frå %1KHz til %3KHz)\n"
-#~ "(%4 av %5)"
-
-#~ msgid ""
-#~ "converting %1\n"
-#~ "(%2 of %3)"
-#~ msgstr ""
-#~ "omdannar %1\n"
-#~ "(%2 av %3)"
-
-#~ msgid "XML node describing a plugin insert is missing the `%1' information"
-#~ msgstr ""
-#~ "XML-punktet som skildrar tilleggsprogramtappinga manglar '%1'-informasjon"
-
-#~ msgid "XML node describing insert is missing a Redirect node"
-#~ msgstr "XML-punktet som skildrar tappinga manglar omdirigeringspunkt"
-
-#~ msgid ""
-#~ "XML node describing a port automation is missing the `%1' information"
-#~ msgstr "XML-punktet som skildrar portautomasjonen manglar '%1'-informasjon"
-
-#~ msgid "%1: cannot open automation event file \"%2\""
-#~ msgstr "%1: greier ikkje opna automasjonshendingsfila \"%2\""
-
-#~ msgid "badly formed version number in automation event file \"%1\""
-#~ msgstr "feilforma versjonsnummer i automasjonshendingsfila \"%1\""
-
-#~ msgid "no version information in automation event file \"%1\""
-#~ msgstr "ingen versjonsinformasjon i automasjonshendingsfila \"%1\""
-
-#~ msgid "badly formatted automation event record at line %1 of %2 (ignored)"
-#~ msgstr ""
-#~ "feilformatert automasjonshendingsopptak på linje %1 av %2 (hoppa over)"
-
-#~ msgid "IO::connecting_became_legal() called without a pending state node"
-#~ msgstr ""
-#~ "IO::connecting_became_legal()-funksjonen vart oppkalla utan ventande "
-#~ "tilstandsnode"
-
-#~ msgid "IO::ports_became_legal() called without a pending state node"
-#~ msgstr ""
-#~ "IO::ports_became_legal()-funksjonen vart oppkalla utan ventande "
-#~ "tilstandsnode"
-
-#~ msgid "improper output channel list in XML node (%1)"
-#~ msgstr "feil utgangskanalliste i XML-punktet %1"
-
-#~ msgid "you cannot use colons to name objects with I/O connections"
-#~ msgstr "du kan ikkje bruka kolon i namn på objekt med I/U-tilkoplingar"
-
-#~ msgid "badly-formed positional data for Multi2dPanner - ignored"
-#~ msgstr "feilforma posisjonsdata for Multi2dPanner - hoppa over"
-
-#~ msgid "playlist const copy constructor called"
-#~ msgstr "konstant kopikonstruktør for speleliste vart oppkalla"
-
-#~ msgid "playlist non-const copy constructor called"
-#~ msgstr "ikkje-konstant kopikonstruktør for speleliste vart oppkalla"
-
-#~ msgid "%1: bounds changed received for region (%2)not in playlist"
-#~ msgstr "%1: mottok grenseendring for bolken (%2) - ikkje i spelelista"
-
-#~ msgid "Playlist: cannot reset region state from XML"
-#~ msgstr "Speleliste: greier ikkje stilla bolkstatusen tilbake frå XML"
-
-#~ msgid "programming error: unknown Redirect type in Redirect::Clone!\n"
-#~ msgstr ""
-#~ "programmeringsfeil: ukjend omdirigeringstype i Redirect::Clone-"
-#~ "funksjonen!\n"
-
-#~ msgid "%2: badly formatted node name in XML automation state, ignored"
-#~ msgstr "%2: feilforma nodenamn i XML-automasjonsstatusen, såg bort frå"
-
-#~ msgid "%1: cannot load automation data from XML"
-#~ msgstr "%1: greier ikkje lasta automasjonsdata frå XML"
-
-#~ msgid "incorrect XML node \"%1\" passed to Redirect object"
-#~ msgstr "feil XML-punkt, \"%1\", vart sendt til omdirigeringsobjektet"
-
-#~ msgid "XML node describing an IO is missing an IO node"
-#~ msgstr "XML-punktet som skildrar IU manglar eit IU-punkt"
-
-#~ msgid "XML node describing a redirect is missing the `active' field"
-#~ msgstr "XML-punktet som skildrar ei omdirigering manglar 'aktiv'-feltet"
-
-#~ msgid "XML node describing a redirect is missing the `placement' field"
-#~ msgstr ""
-#~ "XML-punktet som skildrar ei omdirigering manglar 'plassering'-feltet"
-
-#~ msgid "XMLNode describing a Region is incomplete (no name)"
-#~ msgstr "XML-punktet som skildrar ein bolk er ufullstendig (utan namn)"
-
-#~ msgid "Session: XMLNode describing a Region is incomplete (no id)"
-#~ msgstr "Økt: XML-punktet som skildrar ein bolk er ufullstendig (ingen id)"
-
-#~ msgid "Send construction failed"
-#~ msgstr "Send-konstruksjon mislukka"
-
-#~ msgid "Insert XML node has no type property"
-#~ msgstr "Tappings-XML-punkt har ingen typeeigenskapar"
-
-#~ msgid "Route %1: unknown edit group \"%2 in saved state (ignored)"
-#~ msgstr ""
-#~ "Ruting %1: ukjend redigert gruppe \"%2 i lagra tilstand (hoppa over)"
-
-#~ msgid "Route %1: unknown mix group \"%2 in saved state (ignored)"
-#~ msgstr "Ruting %1: ukjend miksgruppe \"%2 i lagra tilstand (hoppa over)"
-
-#~ msgid "could not connect %1 to %2"
-#~ msgstr "greidde ikkje kopla %1 til %2"
-
-#~ msgid "XML node describing a send is missing a Redirect node"
-#~ msgstr "XML-punktet som skildrar ein send manglar eit omdirigeringspunkt"
-
-#~ msgid "cannot setup master inputs"
-#~ msgstr "greier ikkje setja opp masterinngangar"
-
-#~ msgid "Master Out"
-#~ msgstr "Master ut"
-
-#~ msgid "Catch up with send/insert state"
-#~ msgstr "Ta att send/omvegstatus"
-
-#~ msgid "OSC startup"
-#~ msgstr "OSC-oppstart"
-
-#~ msgid "cannot set up master outputs"
-#~ msgstr "greier ikkje setja opp masterutgangar"
-
-#~ msgid ""
-#~ "Session::add_region() ignored a null region. Warning: you might have lost "
-#~ "a region."
-#~ msgstr ""
-#~ "Økt::add_region() såg bort frå ein null-bolk. Pass på: det kan henda du "
-#~ "har mista ein bolk."
-
-#~ msgid "programming error: unknown type of Insert created!"
-#~ msgstr "programmeringsfeil: det er laga ein ukjend tappingstype!"
-
-#~ msgid "programming error: unknown type of Redirect created!"
-#~ msgstr "programmeringsfeil: det er laga ein ukjend omdirigeringstype!"
-
-#~ msgid "programming error: unknown type of Redirect deleted!"
-#~ msgstr "programmeringsfeil: det er sletta ein ukjend omdirigeringstype!"
-
-#~ msgid "Memory allocation error: posix_memalign (%1 * %2) failed (%3)"
-#~ msgstr "Minnetildelingsfeil: posix_memalign (%1 * %2) mislukka (%3)"
-
-#~ msgid ""
-#~ "Programming error: get_silent_buffers() called for %1 buffers but only %2 "
-#~ "exist"
-#~ msgstr ""
-#~ "Programmeringsfeil: get_silent_buffers() oppropt for %1 bufrar, men det "
-#~ "finst berre %2"
-
-#~ msgid "GlobalRouteStateCommand has no \"type\" node, ignoring"
-#~ msgstr "GlobalRouteStateCommand har ingen \"type\"-node, ser bort frå"
-
-#~ msgid "unknown type of GlobalRouteStateCommand (%1), ignored"
-#~ msgstr "ukjent slag GlobalRouteStateCommand (%1), ser bort frå"
-
-#~ msgid ""
-#~ "global route state command has no \"%1\" node, ignoring entire command"
-#~ msgstr ""
-#~ "allmenn rutestatuskommando har ingen \"%1\"-node, ser bort frå heile "
-#~ "kommandoen"
-
-#~ msgid ""
-#~ "cannot find track/bus \"%1\" while rebuilding a global route state "
-#~ "command, ignored"
-#~ msgstr ""
-#~ "greier ikkje finna spor/buss \"%1\" ved oppattbygging ein allmenn "
-#~ "rutestatuskommando, såg bort frå"
-
-#~ msgid ""
-#~ "global route meter state command has no \"%1\" node, ignoring entire "
-#~ "command"
-#~ msgstr ""
-#~ "allmenn kommando for rutemælestatus har ingen \"%1\"-node, ser bort frå "
-#~ "heile kommandoen"
-
-#~ msgid "Export: no output file specified"
-#~ msgstr "Eksport: du har ikkje skrive inn ut-fil"
-
-#~ msgid "illegal frame range in export specification"
-#~ msgstr "ulovleg "
-
-#~ msgid "Bad data width size. Report me!"
-#~ msgstr "Feil storleik på databreidd. Sei frå om dette til utviklarane!"
-
-#~ msgid "Export: cannot open output file \"%1\" (%2)"
-#~ msgstr "Eksport: greier ikkje opna utfila \"%1\" (%2)"
-
-#~ msgid "cannot initialize sample rate conversion: %1"
-#~ msgstr "greier ikkje byrja punktrateomdanning: %1"
-
-#~ msgid "warning, leftover frames overflowed, glitches might occur in output"
-#~ msgstr "Ã¥tvaring: nokre rammer vart til overs i, det kan vera hakk i utfila"
-
-#~ msgid "Export: could not write data to output file (%1)"
-#~ msgstr "Eksport: greidde ikkje skriva data til utfil (%1)"
-
-#~ msgid "Ardour is slaved to MTC - port cannot be reset"
-#~ msgstr "Ardour er slave til ein MTC-port og kan ikkje nullstillast"
-
-#~ msgid "unknown port %1 requested for MTC"
-#~ msgstr "førespurnad til ukjend MTC-port %1"
-
-#~ msgid "Error reading from MIDI port %1"
-#~ msgstr "Greidde ikkje lesa frå MIDI-port %1"
-
-#~ msgid "MMC: cannot send command %1%2%3"
-#~ msgstr "MMC: greier ikkje senda kommandoen %1%2%3"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal read pipe (%1)"
-#~ msgstr "Grensesnitt: O_NONBLOCK fastsett for signallesingsrøyr (%1)"
-
-#~ msgid "UI: cannot set O_NONBLOCK on signal write pipe (%1)"
-#~ msgstr ""
-#~ "Grensesnitt: greier ikkje fastsetja O_NONBLOCK for signalskrivingsrøyr "
-#~ "(%1)"
-
-#~ msgid "Session: could not create transport thread"
-#~ msgstr "Økt: greidde ikkje laga transporttråd"
-
-#~ msgid "cannot send signal to midi thread! (%1)"
-#~ msgstr "greier ikkje senda signal til MIDI-tråden! (%1)"
-
-#~ msgid "MIDI thread poll failed (%1)"
-#~ msgstr "Spørjing på MIDI-tråd mislukka (%1)"
-
-#~ msgid "Error on transport thread request pipe"
-#~ msgstr "Feil på transporttrådspørjingsrøyr"
-
-#~ msgid "Error reading from transport request pipe"
-#~ msgstr "Greidde ikkje lesa frå transportspørjingsrøyr"
-
-#~ msgid "start"
-#~ msgstr "start"
-
-#~ msgid "Session: XML state has no connections section"
-#~ msgstr "Økt: XML-fila har ikkje noko avsnitt om tilkoplingar"
-
-#~ msgid "cannot create dead sounds directory \"%1\"; ignored"
-#~ msgstr "greier ikkje laga daudlydmappa \"%1\", hoppa over"
-
-#~ msgid "cannot create peak file directory \"%1\"; ignored"
-#~ msgstr "greier ikkje laga toppfilmappa \"%1\", hoppa over"
-
-#~ msgid "cannot remove dead sound file %1 (%2)"
-#~ msgstr "greier ikkje fjerna daudlyd-fila %1 (%2)"
-
-#~ msgid "could not remove corrupt history file %1"
-#~ msgstr "greidde ikkje fjerna den øydelagde historiefila %1"
-
-#~ msgid "Loading history from '%1'."
-#~ msgstr "Lastar historie frå '%1'."
-
-#~ msgid "please stop the transport before adjusting slave settings"
-#~ msgstr "hugs å stoppa spelinga før du justerer slaveinnstillingar"
-
-#~ msgid "No MTC port defined: MTC slaving is impossible."
-#~ msgstr "Ingen MTC-port er gjeven. MTC-slaving er umogleg."
-
-#~ msgid ""
-#~ "cannot set broadcast info for audio file %1; Dropping broadcast info for "
-#~ "this file"
-#~ msgstr ""
-#~ "greier ikkje fastsetja kringkastingsinformasjon for lydfila %1, hoppar "
-#~ "over kringkastingsinformasjon for denne fila"
-
-#~ msgid "Internal"
-#~ msgstr "Intern"
-
-#~ msgid "Bad node sent to VSTPlugin::set_state"
-#~ msgstr "Feil punkt sendt til VSTPlugin::set_state-funksjonen"
-
-#~ msgid "no support for presets using chunks at this time"
-#~ msgstr ""
-#~ "det er ikkje støtte for ferdigprogram som brukar bitar for augneblinken"
-
-#~ msgid "VST plugin called with zero frames - please notify Ardour developers"
-#~ msgstr ""
-#~ "VST-innstikk påkalla med null rammer - sei frå til Ardour-utviklarane"
-
-#~ msgid "VST: cannot load module from \"%1\""
-#~ msgstr "VST: greier ikkje lasta modul frå \"%1\""
-
-#~ msgid "You asked ardour to not use any VST plugins"
-#~ msgstr "Du sa at Ardour ikkje skulle bruka nokon VST-tilleggsprogram"
-
-#~ msgid "CoreAudioSource: cannot open file \"%1\" for %2"
-#~ msgstr "CoreAudioSource: greier ikkje opna fila \"%1\" for %2"
-
-#~ msgid "Could not create XML version of property list"
-#~ msgstr "Greidde ikkje laga XML-versjon av eigenskaplista"
-
-#~ msgid "Cannot open preset file %1 (%2)"
-#~ msgstr "Greier ikkje opna ferdigoppsettfila %1 (%2)"
-
-#~ msgid "Exception thrown during AudioUnit plugin loading - plugin ignored"
-#~ msgstr ""
-#~ "Det vart kasta inn eit unntak under AudioUnit-innstikklastinga - såg bort "
-#~ "frå innstikket"
-
-#~ msgid "AudioUnit: Could not convert CAComponent to CAAudioUnit"
-#~ msgstr "Lydeinging: Greidde ikkje gjera om CAComponent til CAAudioUnit"
-
-#~ msgid "AUPlugin: cannot set processing block size"
-#~ msgstr "AUPlugin: Greier ikkje setja opp blokkstorleik for handsaming"
-
-#~ msgid "AUPlugin: %1 cannot initialize plugin (err = %2)"
-#~ msgstr "AUPlugin: %1 greier ikkje starta innstikk (feil = %2)"
-
-#~ msgid "AU %1 has zero outputs - configuration ignored"
-#~ msgstr "AU %1 har ingen utgangar - såg bort frå oppsettet"
-
-#~ msgid "AU plugin %1 has illegal IO configuration (-2,-2)"
-#~ msgstr "AU-innstikket %1 har ugyldig IU-oppsett (-2,-2)"
-
-#~ msgid "AUPlugin: could not set stream format for %1/%2 (err = %3)"
-#~ msgstr ""
-#~ "AUPlugin: greidde ikkje setja opp straumformat for %1/%2 (feil = %3)"
-
-#~ msgid "AUPlugin: %1 input_streams() called without any format set!"
-#~ msgstr "AUPlugin: %1 input_streams() påkalla utan oppsett format!"
-
-#~ msgid "AUPlugin: %1 output_streams() called without any format set!"
-#~ msgstr "AUPlugin: %1 output_streams() påkalla utan oppsett format!"
-
-#~ msgid "AUPlugin: render callback called illegally!"
-#~ msgstr "AUPlugin: oppteiknings-tilbakekall påkalla ulovleg!"
-
-#~ msgid ""
-#~ "Saving AudioUnit settings is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje lagra AudioUnit-innstillingar i denne versjonen av Ardour. "
-#~ "Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid "Bad node sent to AUPlugin::set_state"
-#~ msgstr "Feil punkt sendt til AUPlugin::set_state"
-
-#~ msgid ""
-#~ "Restoring AudioUnit settings is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje henta framatt AudioUnit-innstillingar i denne versjonen av "
-#~ "Ardour. Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid ""
-#~ "Loading AudioUnit presets is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje lagra AudioUnit-innstillingar i denne versjonen av Ardour. "
-#~ "Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid "Cannot create user plugin presets folder (%1)"
-#~ msgstr "Greier ikkje laga mappe for brukarlaga innstikkoppsett (%1)"
-
-#~ msgid "Saving plugin state to %1 failed"
-#~ msgstr "Greidde ikkje lagra innstikkstatus til %1"
-
-#~ msgid ""
-#~ "Saving AudioUnit presets is not supported in this build of Ardour. "
-#~ "Consider paying for a newer version"
-#~ msgstr ""
-#~ "Du kan ikkje lagra førehandsoppsett for AudioUnit i denne versjonen av "
-#~ "Ardour. Du bør vurdera å betala for ein nyare verjson"
-
-#~ msgid "Discovering AudioUnit plugins (could take some time ...)"
-#~ msgstr "Finn AudioUnit-innstikk (dette kan ta litt tid...)"
-
-#~ msgid "Cannot get I/O configuration info for AU %1"
-#~ msgstr "Greier ikkje få tak i I/U-oppsettsinfo for AU %1"
-
-#~ msgid "Checking AudioUnit: %1"
-#~ msgstr "Sjekkar AudioUnit: %1"
-
-#~ msgid "Could not load AU plugin %1 - ignored"
-#~ msgstr "Greier ikkje lasta AU-innstikk %1 - såg bort frå"
-
-#~ msgid "could not save AU cache to %1"
-#~ msgstr "greidde ikkje lagra AU-mellomlageret til %1"
-
-#~ msgid "initial state"
-#~ msgstr "opphavstilstand"
-
-#~ msgid "xfade change"
-#~ msgstr "overtoningsendring"
-
-#~ msgid "region modified"
-#~ msgstr "bolk endra"
-
-#~ msgid "cannot activate JACK client"
-#~ msgstr "greier ikkje slå på JACK-klienten"
-
-#~ msgid "get_nth_physical called before engine was started"
-#~ msgstr "get_nth_physical vart oppkalla før tenaren starta"
-
-#~ msgid "get_port_total_latency() called with no JACK client connection"
-#~ msgstr ""
-#~ "get_port_total_latency()-funksjonen vart oppkalla utan tilknyting til "
-#~ "JACK-klienten"
-
-#~ msgid "get_port_total_latency() called before engine was started"
-#~ msgstr ""
-#~ "get_port_total_latency()-funksjonen vart oppkalla før tenaren starta"
-
-#~ msgid "Unable to connect to JACK server"
-#~ msgstr "Greidde ikkje kopla til JACK-tenaren"
-
-#~ msgid "Could not connect to JACK server as \"%1\""
-#~ msgstr "Greidde ikkje kopla til JACK-tenaren som \"%1\""
-
-#~ msgid "JACK server started"
-#~ msgstr "JACK-tenaren er starta"
-
-#~ msgid "cannot shutdown connection to JACK"
-#~ msgstr "greier ikkje kopla frå JACK"
-
-#~ msgid "fade in change"
-#~ msgstr "inntoningsendring"
-
-#~ msgid "envelope change"
-#~ msgstr "omhyllingsendring"
-
-#~ msgid "poll on peak request pipe failed (%1)"
-#~ msgstr "undersøking ved toppspørjingsrøyr gjekk gale (%1)"
-
-#~ msgid "Error on peak thread request pipe"
-#~ msgstr "Feil på topptrådspørjingsrøyr"
-
-#~ msgid "Error reading from peak request pipe"
-#~ msgstr "Feil ved lesing frå toppspørjingsrøyr"
-
-#~ msgid "UI: cannot set O_NONBLOCK on peak request pipe (%1)"
-#~ msgstr "Brukarflate: Kan ikkje bruka O_NONBLOCK ved toppspørjingsrøyr (%1)"
-
-#~ msgid "AudioSource: could not create peak thread"
-#~ msgstr "Lydkjelde: greidde ikkje laga topptråd"
-
-#~ msgid "initial"
-#~ msgstr "fyrste"
-
-#~ msgid "cleared"
-#~ msgstr "tom"
-
-#~ msgid "added event"
-#~ msgstr "la til hending"
-
-#~ msgid "removed event"
-#~ msgstr "fjerna hending"
-
-#~ msgid "removed multiple events"
-#~ msgstr "fjerna fleire hendingar"
-
-#~ msgid "removed range"
-#~ msgstr "fjerna område"
-
-#~ msgid "event range adjusted"
-#~ msgstr "justert hendingsområde"
-
-#~ msgid "event adjusted"
-#~ msgstr "justert hending"
-
-#~ msgid "cut/copy/clear"
-#~ msgstr "klypp/kopier/tøm"
-
-#~ msgid "copy"
-#~ msgstr "kopier"
-
-#~ msgid "active changed"
-#~ msgstr "endra på/av"
-
-#~ msgid "MIDI port specifications for \"%1\" are not understandable."
-#~ msgstr "MIDI-portspesifikasjonane for \"%1\" er uforståelege."
-
-#, fuzzy
-#~ msgid "resampling audio"
-#~ msgstr "samplar om lyd"
-
-#~ msgid "Import: cannot open converted sound file \"%1\""
-#~ msgstr "Import: kan ikkje opna den omkoda lydfila \"%1\""
-
-#~ msgid ""
-#~ "Session::import_audiofile: cannot open new file source for channel %1"
-#~ msgstr "Økt::import_lydfil: kan ikkje opna ny kjeldefil for kanalen %1"
-
-#~ msgid "Import/SRC: could not open input file: %1"
-#~ msgstr "Import/kjelde: greidde ikkje opna innfila: %1"
-
-#~ msgid "Import/SRC: could not open output file: %1"
-#~ msgstr "Import/kjelde: greidde ikkje opna utfila: %1"
-
-#~ msgid "XML node describing insert is missing the `id' field"
-#~ msgstr "XML-punktet som skildrar tappinga manglar 'id'-feltet"
-
-#~ msgid "PortInsert: cannot add input port"
-#~ msgstr "PortInsert: greier ikkje leggja til inngangsport"
-
-#~ msgid "PortInsert: cannot add output port"
-#~ msgstr "PortInsert: greier ikkje leggja til utgangsport"
-
-#~ msgid "%s/out %u"
-#~ msgstr "%s/ut %u"
-
-#~ msgid "Unknown connection \"%1\" listed for output of %2"
-#~ msgstr "Ukjend tilkopling \"%1\" lista opp for %2-utgangen"
-
-#~ msgid "No output connections available as a replacement"
-#~ msgstr "Det finst ingen utgangstilkoplingar som kan brukast som erstatting"
-
-#~ msgid "%1: could not open automation event file \"%2\""
-#~ msgstr "%1: greier ikkje opna automasjonshendingsfila \"%2\""
-
-#~ msgid "mismatched automation event file version (%1)"
-#~ msgstr "ikkje like versjonsnummer i automasjonshendingsfila (%1)"
-
-#~ msgid "loaded from disk"
-#~ msgstr "lasta frå disk"
-
-#~ msgid "automation write/touch"
-#~ msgstr "automasjonsskriving/rørsle"
-
-#~ msgid "clear"
-#~ msgstr "tøm"
-
-#~ msgid "clear markers"
-#~ msgstr "tøm merke"
-
-#~ msgid "clear ranges"
-#~ msgstr "tøm område"
-
-#~ msgid "add"
-#~ msgstr "legg til"
-
-#~ msgid "remove"
-#~ msgstr "fjern"
-
-#~ msgid "automation write pass"
-#~ msgstr "automasjonsskriveomgang"
-
-#~ msgid "error writing pan automation file (%s)"
-#~ msgstr "greidde ikkje skriva panoreringsautomasjonsfil (%s)"
-
-#~ msgid "cannot open pan automation file \"%1\" for saving (%2)"
-#~ msgstr ""
-#~ "kan ikkje opna panoreringsautomasjonsfil \"%1\" for å lagra henne (%2)"
-
-#~ msgid "mismatched pan automation event file version (%1)"
-#~ msgstr ""
-#~ "handlingsfila for panoreringsautomasjon har versjonsnummer som ikkje "
-#~ "stemmer overeins (%1)"
-
-#~ msgid "remove region"
-#~ msgstr "fjern bolk"
-
-#~ msgid "separate"
-#~ msgstr "del opp"
-
-#~ msgid "cut"
-#~ msgstr "klypp"
-
-#~ msgid "duplicate"
-#~ msgstr "klon"
-
-#~ msgid "split"
-#~ msgstr "del"
-
-#~ msgid "nudged"
-#~ msgstr "skubba"
-
-#~ msgid ""
-#~ "programming error: Playlist::copyPlaylist called with unknown Playlist "
-#~ "type"
-#~ msgstr ""
-#~ "programmeringsfeil: Playlist::copyPlaylist-funksjonen vart oppkalla med "
-#~ "ukjend spelelistetype"
-
-#~ msgid "post"
-#~ msgstr "etter"
-
-#~ msgid "Redirect: unknown placement string \"%1\" (ignored)"
-#~ msgstr "Omdirigering: ukjend plasseringsstreng \"%1\" (hoppa over)"
-
-#~ msgid "%1: cannot open %2 to store automation data (%3)"
-#~ msgstr "%1: greier ikkje opna %2 for å lagra automasjonsdata (%3)"
-
-#~ msgid "%1: could not save automation state to %2"
-#~ msgstr "%1: greier ikkje lagra automasjonstilstanden til %2"
-
-#~ msgid ""
-#~ "Could not get state from Redirect (%1). Problem with save_automation"
-#~ msgstr ""
-#~ "Greier ikkje få tak i tilstanden frå omdirigeringa (%1). Problem med å "
-#~ "lagra automasjonen."
-
-#~ msgid "active_changed"
-#~ msgstr "aktiv_endra"
-
-#~ msgid "Could not get state of route. Problem with save_automation"
-#~ msgstr ""
-#~ "Greidde ikkje få tak i tilstanden for rutinga. Problem med å lagra "
-#~ "automasjon."
-
-#~ msgid "too many regions with names like %1"
-#~ msgstr "for mange bolkar med namn som %1"
-
-#~ msgid "programming error: unknown type of Insert deleted!"
-#~ msgstr "programmeringsfeil: ein ukjend tappingstype er sletta!"
-
-#~ msgid "could not backup old state file, current state not saved."
-#~ msgstr ""
-#~ "greidde ikkje ta tryggingskopi av den gamle tilstandsfila. Den noverande "
-#~ "tilstanden er ikkje lagra."
-
-#~ msgid "tempoize: error creating name for new audio file based on %1"
-#~ msgstr ""
-#~ "lag tempo: greidde ikkje gje namn til den nye lydfila som er bygd på %1"
-
-#~ msgid "tempoize: error creating new audio file %1 (%2)"
-#~ msgstr "lag tempo: greidde ikkje laga den nye lydfila %1 (%2)"
-
-#~ msgid "PAF (Ensoniq Paris)"
-#~ msgstr "PAF (Ensoniq Paris)"
-
-#~ msgid "AU (Sun/NeXT)"
-#~ msgstr "AU (Sun/NeXT)"
-
-#~ msgid "IRCAM"
-#~ msgstr "IRCAM"
-
-#~ msgid ".au"
-#~ msgstr ".au"
-
-#~ msgid ".ircam"
-#~ msgstr ".ircam"
-
-#~ msgid "FileSource: cannot get host information for BWF header (%1)"
-#~ msgstr ""
-#~ "Filkjelde: greier ikkje finna vertsinformasjonen for BWF-tittellinja (%1)"
-
-#~ msgid "%1: cannot seek to %2"
-#~ msgstr "%1: greier ikkje leita fram til %2"
-
-#~ msgid "cleared history"
-#~ msgstr "tømte historia"
-
-#~ msgid ""
-#~ "programming error: illegal state ID (%1) passed to StateManager::set_state"
-#~ "() (range = 0-%2)"
-#~ msgstr ""
-#~ "programmeringsfeil: ulovleg tilgangs-ID (%1) send til StateManager::"
-#~ "set_state()-funksjonen (område = 0-%2)"
-
-#, fuzzy
-#~ msgid "move metric"
-#~ msgstr "flytt taktart"
-
-#~ msgid "metric removed"
-#~ msgstr "fjerna taktart"
-
-#~ msgid "add tempo"
-#~ msgstr "legg til tempo"
-
-#~ msgid "replace tempo"
-#~ msgstr "byt ut tempo"
-
-#~ msgid "add meter"
-#~ msgstr "legg til taktart"
-
-#~ msgid "replaced meter"
-#~ msgstr "bytte ut taktart"
-
-#~ msgid "load XML data"
-#~ msgstr "last XML-data"
-
-#~ msgid "cannot create VST chunk directory: %1"
-#~ msgstr "greier ikkje laga mappe for VST-bitar: %1"
-
-#~ msgid "cannot check VST chunk directory: %1"
-#~ msgstr "greier ikkje sjekka mappe for VST-bitar: %1"
-
-#~ msgid "%1 exists but is not a directory"
-#~ msgstr "%1 finst, men det er ikkje ei mappe"
diff --git a/libs/gtkmm2ext/po/pl.po b/libs/gtkmm2ext/po/pl.po
index da5720a331..d3b3414041 100644
--- a/libs/gtkmm2ext/po/pl.po
+++ b/libs/gtkmm2ext/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtkmm2ext\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2008-04-10 10:54+0100\n"
"Last-Translator: Piotr Zaryk <pzaryk@gmail.com>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -32,18 +32,18 @@ msgstr ""
msgid "Log"
msgstr "Log"
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
"Shortcut: "
msgstr ""
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr "Wciśnij by zakończyć"
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr ""
@@ -71,11 +71,11 @@ msgstr ""
msgid "Meta"
msgstr ""
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr ""
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
@@ -90,18 +90,3 @@ msgstr ""
#: textviewer.cc:34
msgid "Close"
msgstr "Zamknij"
-
-#~ msgid "Error"
-#~ msgstr "BÅ‚Ä…d"
-
-#~ msgid "+"
-#~ msgstr "+"
-
-#~ msgid "-"
-#~ msgstr "-"
-
-#~ msgid "Paths"
-#~ msgstr "Położenia"
-
-#~ msgid "Path Chooser"
-#~ msgstr "Wybór położenia"
diff --git a/libs/gtkmm2ext/po/pt.po b/libs/gtkmm2ext/po/pt.po
index 3c0633240d..9d8427193f 100644
--- a/libs/gtkmm2ext/po/pt.po
+++ b/libs/gtkmm2ext/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gtkmm2ext\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-15 15:09-0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2004-05-17 20:36+0200\n"
"Last-Translator: Chris Ross <chris.ross@tebibyte.org>\n"
"Language-Team: Portuguese\n"
@@ -21,9 +21,8 @@ msgid "Unknown action name: %1"
msgstr ""
#: binding_proxy.cc:84
-#, fuzzy
msgid "operate controller now"
-msgstr "Operar controladora de MIDI agora"
+msgstr ""
#: bindable_button.cc:48
msgid "button cannot watch state of non-existing Controllable\n"
@@ -33,18 +32,18 @@ msgstr ""
msgid "Log"
msgstr ""
-#: gtk_ui.cc:361
+#: gtk_ui.cc:363
msgid ""
"\n"
"\n"
"Shortcut: "
msgstr ""
-#: gtk_ui.cc:633
+#: gtk_ui.cc:635
msgid "Press To Exit"
msgstr ""
-#: gtk_ui.cc:669
+#: gtk_ui.cc:671
msgid "I'm sorry %1, I can't do that"
msgstr ""
@@ -72,11 +71,11 @@ msgstr ""
msgid "Meta"
msgstr ""
-#: keyboard.cc:139 keyboard.cc:531
+#: keyboard.cc:139 keyboard.cc:535
msgid "Unknown"
msgstr ""
-#: keyboard.cc:542
+#: keyboard.cc:546
msgid "key bindings file not found at \"%2\" or contains errors."
msgstr ""
@@ -91,33 +90,3 @@ msgstr ""
#: textviewer.cc:34
msgid "Close"
msgstr "Fechar"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "Location:"
-#~ msgstr "localização:"
-
-#~ msgid "Browse ..."
-#~ msgstr "Localizar ..."
-
-#~ msgid "Cancel"
-#~ msgstr "Cancelar"
-
-#~ msgid "New folder"
-#~ msgstr "Novo diretório"
-
-#~ msgid "Add to favorites"
-#~ msgstr "Adicionar a favoritos"
-
-#~ msgid "Remove from favorites"
-#~ msgstr "Remover de favoritos"
-
-#~ msgid "Show Hidden"
-#~ msgstr "Mostrar ocultos"
-
-#~ msgid "Hide browser"
-#~ msgstr "Ocultar explorador"
-
-#~ msgid "Rescan"
-#~ msgstr "Buscar de novo"
diff --git a/libs/gtkmm2ext/po/ru.po b/libs/gtkmm2ext/po/ru.po
index 0d1a8e4092..d702745ea4 100644
--- a/libs/gtkmm2ext/po/ru.po
+++ b/libs/gtkmm2ext/po/ru.po
@@ -7,10 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: gtkmm2ext\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 21:33+0400\n"
+"POT-Creation-Date: 2013-11-05 11:11-0500\n"
"PO-Revision-Date: 2013-10-15 21:54+0300\n"
"Last-Translator: ÐлекÑандр Прокудин <alexandre.prokoudine@gmail.com>\n"
"Language-Team: руÑÑкий <>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -96,42 +97,3 @@ msgstr "Щелкните, чтобы превратить Ñто плавающÐ
#: textviewer.cc:34
msgid "Close"
msgstr "Закрыть"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "Key: "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "Клавиша: "
-
-#~ msgid "OK"
-#~ msgstr "ОК"
-
-#~ msgid "Location:"
-#~ msgstr "Путь:"
-
-#~ msgid "Browse ..."
-#~ msgstr "Обзор ..."
-
-#~ msgid "Cancel"
-#~ msgstr "Отмена"
-
-#~ msgid "New folder"
-#~ msgstr "ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°"
-
-#~ msgid "Add to favorites"
-#~ msgstr "Добавить в избранное"
-
-#~ msgid "Remove from favorites"
-#~ msgstr "ИÑключить из избранного"
-
-#~ msgid "Show Hidden"
-#~ msgstr "Показывать Ñкрытые файлы"
-
-#~ msgid "Hide browser"
-#~ msgstr "Скрыть облаÑÑ‚ÑŒ обзора"
-
-#~ msgid "Rescan"
-#~ msgstr "Обновить"
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index a11b431ef0..4c85f1928d 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -57,9 +57,9 @@ Gtkmm2ext::get_ink_pixel_size (Glib::RefPtr<Pango::Layout> layout,
}
void
-get_pixel_size (Glib::RefPtr<Pango::Layout> layout,
- int& width,
- int& height)
+Gtkmm2ext::get_pixel_size (Glib::RefPtr<Pango::Layout> layout,
+ int& width,
+ int& height)
{
layout->get_pixel_size (width, height);
}
@@ -415,6 +415,13 @@ Gtkmm2ext::rounded_bottom_half_rectangle (Cairo::RefPtr<Cairo::Context> context,
{
rounded_bottom_half_rectangle (context->cobj(), x, y, w, h, r);
}
+
+void
+Gtkmm2ext::rounded_left_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
+{
+ rounded_left_half_rectangle (context->cobj(), x, y, w, h, r);
+}
+
void
Gtkmm2ext::rounded_right_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
{
@@ -435,6 +442,19 @@ Gtkmm2ext::rounded_rectangle (cairo_t* cr, double x, double y, double w, double
}
void
+Gtkmm2ext::rounded_left_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
+{
+ double degrees = M_PI / 180.0;
+
+ cairo_new_sub_path (cr);
+ cairo_line_to (cr, x+w, y); // tr
+ cairo_line_to (cr, x+w, y + h); // br
+ cairo_arc (cr, x + r, y + h - r, r, 90 * degrees, 180 * degrees); //bl
+ cairo_arc (cr, x + r, y + r, r, 180 * degrees, 270 * degrees); //tl
+ cairo_close_path (cr);
+}
+
+void
Gtkmm2ext::rounded_right_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
{
double degrees = M_PI / 180.0;
@@ -661,3 +681,87 @@ Gtkmm2ext::disable_tooltips ()
gtk_rc_parse_string ("gtk-enable-tooltips = 0");
}
+const char*
+Gtkmm2ext::event_type_string (int event_type)
+{
+ switch (event_type) {
+ case GDK_NOTHING:
+ return "nothing";
+ case GDK_DELETE:
+ return "delete";
+ case GDK_DESTROY:
+ return "destroy";
+ case GDK_EXPOSE:
+ return "expose";
+ case GDK_MOTION_NOTIFY:
+ return "motion_notify";
+ case GDK_BUTTON_PRESS:
+ return "button_press";
+ case GDK_2BUTTON_PRESS:
+ return "2button_press";
+ case GDK_3BUTTON_PRESS:
+ return "3button_press";
+ case GDK_BUTTON_RELEASE:
+ return "button_release";
+ case GDK_KEY_PRESS:
+ return "key_press";
+ case GDK_KEY_RELEASE:
+ return "key_release";
+ case GDK_ENTER_NOTIFY:
+ return "enter_notify";
+ case GDK_LEAVE_NOTIFY:
+ return "leave_notify";
+ case GDK_FOCUS_CHANGE:
+ return "focus_change";
+ case GDK_CONFIGURE:
+ return "configure";
+ case GDK_MAP:
+ return "map";
+ case GDK_UNMAP:
+ return "unmap";
+ case GDK_PROPERTY_NOTIFY:
+ return "property_notify";
+ case GDK_SELECTION_CLEAR:
+ return "selection_clear";
+ case GDK_SELECTION_REQUEST:
+ return "selection_request";
+ case GDK_SELECTION_NOTIFY:
+ return "selection_notify";
+ case GDK_PROXIMITY_IN:
+ return "proximity_in";
+ case GDK_PROXIMITY_OUT:
+ return "proximity_out";
+ case GDK_DRAG_ENTER:
+ return "drag_enter";
+ case GDK_DRAG_LEAVE:
+ return "drag_leave";
+ case GDK_DRAG_MOTION:
+ return "drag_motion";
+ case GDK_DRAG_STATUS:
+ return "drag_status";
+ case GDK_DROP_START:
+ return "drop_start";
+ case GDK_DROP_FINISHED:
+ return "drop_finished";
+ case GDK_CLIENT_EVENT:
+ return "client_event";
+ case GDK_VISIBILITY_NOTIFY:
+ return "visibility_notify";
+ case GDK_NO_EXPOSE:
+ return "no_expose";
+ case GDK_SCROLL:
+ return "scroll";
+ case GDK_WINDOW_STATE:
+ return "window_state";
+ case GDK_SETTING:
+ return "setting";
+ case GDK_OWNER_CHANGE:
+ return "owner_change";
+ case GDK_GRAB_BROKEN:
+ return "grab_broken";
+ case GDK_DAMAGE:
+ return "damage";
+ }
+
+ return "unknown";
+}
diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript
index 955b133d33..48895a698c 100644
--- a/libs/gtkmm2ext/wscript
+++ b/libs/gtkmm2ext/wscript
@@ -87,11 +87,7 @@ def build(bld):
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=gtkmm2ext_sources)
# defines for this library
- obj.defines = [ 'LIBGTKMM2EXT_DLL=1', 'LIBGTKMM2EXT_DLL_EXPORTS=1' ]
- # internal shared libs that we use
- obj.defines += [ 'LIBPBD_DLL=1' ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
- obj.cflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBGTKMM2EXT_DLL_EXPORTS', 'ABSTRACT_UI_EXPORTS' ]
else:
obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=gtkmm2ext_sources)
obj.cxxflags = [ '-fPIC' ]
diff --git a/libs/libltc/wscript b/libs/libltc/wscript
index 9be750ee55..8cf7bb6389 100644
--- a/libs/libltc/wscript
+++ b/libs/libltc/wscript
@@ -29,25 +29,25 @@ def options(opt):
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_c')
- autowaf.configure(conf)
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'ltc', uselib_store='LIBLTC', atleast_version=LIBLTC_LIB_VERSION, mandatory=True)
+ else:
+ conf.load('compiler_c')
+ autowaf.configure(conf)
def build(bld):
- obj = bld(features = 'c cshlib')
- obj.source = '''
- ltc.c
- timecode.c
- encoder.c
- decoder.c
- '''
-
- obj.export_includes = ['.']
- obj.includes = ['.']
- obj.name = 'libltc'
- obj.target = 'ltc'
- obj.vnum = LIBLTC_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
- obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
+ bld (export_includes = ['ltc'],
+ name = 'libltc_includes'
+ )
+
+ bld.stlib (source = ['ltc.c', 'timecode.c', 'encoder.c', 'decoder.c'],
+ cflags = [ '-fPIC' ],
+ includes = ['.'],
+ target = 'libltc',
+ use = 'libltc_includes'
+ )
def shutdown():
autowaf.shutdown()
diff --git a/libs/midi++2/ipmidi_port.cc b/libs/midi++2/ipmidi_port.cc
index 4c0282f1f7..567df99335 100644
--- a/libs/midi++2/ipmidi_port.cc
+++ b/libs/midi++2/ipmidi_port.cc
@@ -44,9 +44,6 @@ typedef int socklen_t;
inline void closesocket(int s) { ::close(s); }
#endif
-#include <jack/jack.h>
-#include <jack/midiport.h>
-
#include "pbd/xml++.h"
#include "pbd/error.h"
#include "pbd/failed_constructor.h"
diff --git a/libs/midi++2/midi++/ipmidi_port.h b/libs/midi++2/midi++/ipmidi_port.h
index 3f5f1c023b..a056612514 100644
--- a/libs/midi++2/midi++/ipmidi_port.h
+++ b/libs/midi++2/midi++/ipmidi_port.h
@@ -41,8 +41,6 @@
#include <glibmm/threads.h>
-#include <jack/types.h>
-
#include "pbd/xml++.h"
#include "pbd/crossthread.h"
#include "pbd/signals.h"
diff --git a/libs/midi++2/midi++/libmidi_visibility.h b/libs/midi++2/midi++/libmidi_visibility.h
index 62eebfe8e2..17b57045cf 100644
--- a/libs/midi++2/midi++/libmidi_visibility.h
+++ b/libs/midi++2/midi++/libmidi_visibility.h
@@ -20,37 +20,26 @@
#ifndef __libmidi_libmidi_visibility_h__
#define __libmidi_libmidi_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * midi source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBMIDIPP_DLL_IMPORT __declspec(dllimport)
#define LIBMIDIPP_DLL_EXPORT __declspec(dllexport)
#define LIBMIDIPP_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBMIDIPP_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBMIDIPP_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBMIDIPP_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBMIDIPP_DLL_IMPORT
- #define LIBMIDIPP_DLL_EXPORT
- #define LIBMIDIPP_DLL_LOCAL
- #endif
+ #define LIBMIDIPP_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBMIDIPP_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBMIDIPP_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBMIDIPP_DLL // libmidi is a DLL
-#ifdef LIBMIDIPP_DLL_EXPORTS // defined if we are building the libmidi DLL (instead of using it)
- #define LIBMIDIPP_API LIBMIDIPP_DLL_EXPORT
+#ifdef LIBMIDIPP_STATIC // libmidi is not a DLL
+ #define LIBMIDIPP_API
+ #define LIBMIDIPP_LOCAL
#else
- #define LIBMIDIPP_API LIBMIDIPP_DLL_IMPORT
-#endif
-#define LIBMIDIPP_LOCAL LIBMIDIPP_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBMIDIPP_API
-#define LIBMIDIPP_LOCAL
+ #ifdef LIBMIDIPP_DLL_EXPORTS // defined if we are building the libmidi DLL (instead of using it)
+ #define LIBMIDIPP_API LIBMIDIPP_DLL_EXPORT
+ #else
+ #define LIBMIDIPP_API LIBMIDIPP_DLL_IMPORT
+ #endif
+ #define LIBMIDIPP_LOCAL LIBMIDIPP_DLL_LOCAL
#endif
#endif /* __libmidi_libmidi_visibility_h__ */
diff --git a/libs/midi++2/midi++/midnam_patch.h b/libs/midi++2/midi++/midnam_patch.h
index d67543429a..9b2a611d9e 100644
--- a/libs/midi++2/midi++/midnam_patch.h
+++ b/libs/midi++2/midi++/midnam_patch.h
@@ -263,6 +263,55 @@ private:
Notes _notes;
};
+class LIBMIDIPP_API Value
+{
+public:
+ Value() {}
+ Value(const uint16_t number,
+ const std::string& name)
+ : _number(number)
+ , _name(name)
+ {}
+
+ uint16_t number() const { return _number; }
+ const std::string& name() const { return _name; }
+
+ void set_number(uint16_t number) { _number = number; }
+ void set_name(const std::string& name) { _name = name; }
+
+ XMLNode& get_state(void);
+ int set_state(const XMLTree&, const XMLNode&);
+
+private:
+ uint16_t _number;
+ std::string _name;
+};
+
+class LIBMIDIPP_API ValueNameList
+{
+public:
+ typedef std::map<uint16_t, boost::shared_ptr<Value> > Values;
+
+ ValueNameList() {}
+ ValueNameList(const std::string& name) : _name(name) {}
+
+ const std::string& name() const { return _name; }
+
+ void set_name(const std::string& name) { _name = name; }
+
+ boost::shared_ptr<const Value> value(uint16_t num) const;
+ boost::shared_ptr<const Value> max_value_below(uint16_t num) const;
+
+ const Values& values() const { return _values; }
+
+ XMLNode& get_state(void);
+ int set_state(const XMLTree&, const XMLNode&);
+
+private:
+ std::string _name;
+ Values _values;
+};
+
class LIBMIDIPP_API Control
{
public:
@@ -279,6 +328,9 @@ public:
uint16_t number() const { return _number; }
const std::string& name() const { return _name; }
+ const std::string& value_name_list_name() const { return _value_name_list_name; }
+ boost::shared_ptr<const ValueNameList> value_name_list() const { return _value_name_list; }
+
void set_type(const std::string& type) { _type = type; }
void set_number(uint16_t number) { _number = number; }
void set_name(const std::string& name) { _name = name; }
@@ -290,6 +342,9 @@ private:
std::string _type;
uint16_t _number;
std::string _name;
+
+ std::string _value_name_list_name; ///< Global, UsesValueNameList
+ boost::shared_ptr<ValueNameList> _value_name_list; ///< Local, ValueNameList
};
class LIBMIDIPP_API ControlNameList
@@ -353,6 +408,7 @@ public:
typedef std::map<std::string, boost::shared_ptr<ChannelNameSet> > ChannelNameSets;
typedef std::map<std::string, boost::shared_ptr<NoteNameList> > NoteNameLists;
typedef std::map<std::string, boost::shared_ptr<ControlNameList> > ControlNameLists;
+ typedef std::map<std::string, boost::shared_ptr<ValueNameList> > ValueNameLists;
typedef std::map<std::string, PatchNameList> PatchNameLists;
MasterDeviceNames() {};
@@ -365,14 +421,21 @@ public:
void set_models(const Models some_models) { _models = some_models; }
const ControlNameLists& controls() const { return _control_name_lists; }
+ const ValueNameLists& values() const { return _value_name_lists; }
+
+ boost::shared_ptr<const ValueNameList> value_name_list_by_control(
+ const std::string& mode,
+ uint8_t channel,
+ uint8_t number);
const CustomDeviceModeNames& custom_device_mode_names() const { return _custom_device_mode_names; }
boost::shared_ptr<CustomDeviceMode> custom_device_mode_by_name(const std::string& mode_name);
- boost::shared_ptr<ChannelNameSet> channel_name_set_by_device_mode_and_channel(const std::string& mode, uint8_t channel);
+ boost::shared_ptr<ChannelNameSet> channel_name_set_by_channel(const std::string& mode, uint8_t channel);
boost::shared_ptr<Patch> find_patch(const std::string& mode, uint8_t channel, const PatchPrimaryKey& key);
boost::shared_ptr<ControlNameList> control_name_list(const std::string& name);
+ boost::shared_ptr<ValueNameList> value_name_list(const std::string& name);
boost::shared_ptr<NoteNameList> note_name_list(const std::string& name);
boost::shared_ptr<ChannelNameSet> channel_name_set(const std::string& name);
@@ -394,6 +457,7 @@ private:
NoteNameLists _note_name_lists;
PatchNameLists _patch_name_lists;
ControlNameLists _control_name_lists;
+ ValueNameLists _value_name_lists;
};
class LIBMIDIPP_API MIDINameDocument
diff --git a/libs/midi++2/midi++/mmc.h b/libs/midi++2/midi++/mmc.h
index 2f34b9c793..ffabf863a0 100644
--- a/libs/midi++2/midi++/mmc.h
+++ b/libs/midi++2/midi++/mmc.h
@@ -20,7 +20,6 @@
#ifndef __midipp_mmc_h_h__
#define __midipp_mmc_h_h__
-#include <jack/types.h>
#include "timecode/time.h"
#include "pbd/signals.h"
diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h
index 9515bdb5a4..6e55134bb5 100644
--- a/libs/midi++2/midi++/port.h
+++ b/libs/midi++2/midi++/port.h
@@ -22,7 +22,9 @@
#include <string>
#include <iostream>
-#include <jack/types.h>
+#include <jack/types.h> /* XXX ... desirable to get rid of this but needed for
+ * now due to use of JackPortIsXXXX
+ */
#include <pthread.h>
diff --git a/libs/midi++2/midi++/types.h b/libs/midi++2/midi++/types.h
index a731855daa..92858eaa60 100644
--- a/libs/midi++2/midi++/types.h
+++ b/libs/midi++2/midi++/types.h
@@ -20,7 +20,6 @@
#ifndef __midi_types_h__
#define __midi_types_h__
-#include <jack/jack.h>
#include <inttypes.h>
#include "midi++/libmidi_visibility.h"
@@ -34,8 +33,8 @@ namespace MIDI {
typedef uint32_t timestamp_t;
/** XXX: dupes from libardour */
- typedef int64_t framecnt_t;
- typedef jack_nframes_t pframes_t;
+ typedef int64_t framecnt_t;
+ typedef uint32_t pframes_t;
enum eventType {
none = 0x0,
diff --git a/libs/midi++2/midnam_patch.cc b/libs/midi++2/midnam_patch.cc
index 0498168843..252804e466 100644
--- a/libs/midi++2/midnam_patch.cc
+++ b/libs/midi++2/midnam_patch.cc
@@ -251,6 +251,22 @@ Control::set_state (const XMLTree& tree, const XMLNode& node)
_number = string_to_int(tree, node.property("Number")->value());
_name = node.property("Name")->value();
+ for (XMLNodeList::const_iterator i = node.children().begin();
+ i != node.children().end(); ++i) {
+ if ((*i)->name() == "Values") {
+ // <Values> has Min and Max properties, but we don't care
+ for (XMLNodeList::const_iterator j = (*i)->children().begin();
+ j != (*i)->children().end(); ++j) {
+ if ((*j)->name() == "ValueNameList") {
+ _value_name_list = boost::shared_ptr<ValueNameList>(new ValueNameList());
+ _value_name_list->set_state(tree, **j);
+ } else if ((*j)->name() == "UsesValueNameList") {
+ _value_name_list_name = (*j)->property("Name")->value();
+ }
+ }
+ }
+ }
+
return 0;
}
@@ -299,6 +315,91 @@ ControlNameList::control(uint16_t num) const
}
XMLNode&
+Value::get_state (void)
+{
+ XMLNode* node = new XMLNode("Value");
+ node->add_property("Number", _number);
+ node->add_property("Name", _name);
+
+ return *node;
+}
+
+int
+Value::set_state (const XMLTree& tree, const XMLNode& node)
+{
+ assert(node.name() == "Value");
+ _number = string_to_int(tree, node.property("Number")->value());
+ _name = node.property("Name")->value();
+
+ return 0;
+}
+
+XMLNode&
+ValueNameList::get_state (void)
+{
+ XMLNode* node = new XMLNode("ValueNameList");
+ node->add_property("Name", _name);
+
+ return *node;
+}
+
+int
+ValueNameList::set_state (const XMLTree& tree, const XMLNode& node)
+{
+ assert(node.name() == "ValueNameList");
+ const XMLProperty* name_prop = node.property("Name");
+ if (name_prop) {
+ // May be anonymous if written inline within a single <Control> tag
+ _name = name_prop->value();
+ }
+
+ _values.clear();
+ for (XMLNodeList::const_iterator i = node.children().begin();
+ i != node.children().end(); ++i) {
+ if ((*i)->name() == "Value") {
+ boost::shared_ptr<Value> value(new Value());
+ value->set_state (tree, *(*i));
+ if (_values.find(value->number()) == _values.end()) {
+ _values.insert(make_pair(value->number(), value));
+ } else {
+ PBD::warning << string_compose("%1: Duplicate value %2 ignored",
+ tree.filename(), value->number())
+ << endmsg;
+ }
+ }
+ }
+
+ return 0;
+}
+
+boost::shared_ptr<const Value>
+ValueNameList::value(uint16_t num) const
+{
+ Values::const_iterator i = _values.find(num);
+ if (i != _values.end()) {
+ return i->second;
+ }
+ return boost::shared_ptr<const Value>();
+}
+
+boost::shared_ptr<const Value>
+ValueNameList::max_value_below(uint16_t num) const
+{
+ Values::const_iterator i = _values.lower_bound(num);
+ if (i->first == num) {
+ // Exact match
+ return i->second;
+ } else if (i == _values.begin()) {
+ // No value is < num
+ return boost::shared_ptr<const Value>();
+ } else {
+ // Found the smallest element >= num, so the previous one is our result
+ --i;
+ return i->second;
+ }
+}
+
+XMLNode&
PatchBank::get_state (void)
{
XMLNode* node = new XMLNode("PatchBank");
@@ -525,6 +626,31 @@ CustomDeviceMode::get_state(void)
return *custom_device_mode;
}
+boost::shared_ptr<const ValueNameList>
+MasterDeviceNames::value_name_list_by_control(const std::string& mode, uint8_t channel, uint8_t number)
+{
+ boost::shared_ptr<ChannelNameSet> chan_names = channel_name_set_by_channel(mode, channel);
+ if (!chan_names) {
+ return boost::shared_ptr<const ValueNameList>();
+ }
+
+ boost::shared_ptr<ControlNameList> control_names = control_name_list(chan_names->control_list_name());
+ if (!control_names) {
+ return boost::shared_ptr<const ValueNameList>();
+ }
+
+ boost::shared_ptr<const Control> control = control_names->control(number);
+ if (!control) {
+ return boost::shared_ptr<const ValueNameList>();
+ }
+
+ if (!control->value_name_list_name().empty()) {
+ return value_name_list(control->value_name_list_name());
+ } else {
+ return control->value_name_list();
+ }
+}
+
boost::shared_ptr<CustomDeviceMode>
MasterDeviceNames::custom_device_mode_by_name(const std::string& mode_name)
{
@@ -532,7 +658,7 @@ MasterDeviceNames::custom_device_mode_by_name(const std::string& mode_name)
}
boost::shared_ptr<ChannelNameSet>
-MasterDeviceNames::channel_name_set_by_device_mode_and_channel(const std::string& mode, uint8_t channel)
+MasterDeviceNames::channel_name_set_by_channel(const std::string& mode, uint8_t channel)
{
boost::shared_ptr<CustomDeviceMode> cdm = custom_device_mode_by_name(mode);
boost::shared_ptr<ChannelNameSet> cns = _channel_name_sets[cdm->channel_name_set_name_by_channel(channel)];
@@ -542,7 +668,9 @@ MasterDeviceNames::channel_name_set_by_device_mode_and_channel(const std::string
boost::shared_ptr<Patch>
MasterDeviceNames::find_patch(const std::string& mode, uint8_t channel, const PatchPrimaryKey& key)
{
- return channel_name_set_by_device_mode_and_channel(mode, channel)->find_patch(key);
+ boost::shared_ptr<ChannelNameSet> cns = channel_name_set_by_channel(mode, channel);
+ if (!cns) return boost::shared_ptr<Patch>();
+ return cns->find_patch(key);
}
boost::shared_ptr<ChannelNameSet>
@@ -565,6 +693,16 @@ MasterDeviceNames::control_name_list(const std::string& name)
return boost::shared_ptr<ControlNameList>();
}
+boost::shared_ptr<ValueNameList>
+MasterDeviceNames::value_name_list(const std::string& name)
+{
+ ValueNameLists::const_iterator i = _value_name_lists.find(name);
+ if (i != _value_name_lists.end()) {
+ return i->second;
+ }
+ return boost::shared_ptr<ValueNameList>();
+}
+
boost::shared_ptr<NoteNameList>
MasterDeviceNames::note_name_list(const std::string& name)
{
@@ -596,7 +734,7 @@ MasterDeviceNames::note_name(const std::string& mode_name,
note_name_list(patch->note_list_name()));
if (!note_names) {
/* No note names specific to this patch, check the ChannelNameSet */
- boost::shared_ptr<ChannelNameSet> chan_names = channel_name_set_by_device_mode_and_channel(
+ boost::shared_ptr<ChannelNameSet> chan_names = channel_name_set_by_channel(
mode_name, channel);
if (chan_names) {
note_names = note_name_list(chan_names->note_list_name());
@@ -673,6 +811,16 @@ MasterDeviceNames::set_state(const XMLTree& tree, const XMLNode&)
_control_name_lists[control_name_list->name()] = control_name_list;
}
+ // ValueNameLists
+ boost::shared_ptr<XMLSharedNodeList> value_name_lists = tree.find("/child::MIDINameDocument/child::MasterDeviceNames/child::ValueNameList");
+ for (XMLSharedNodeList::iterator i = value_name_lists->begin();
+ i != value_name_lists->end();
+ ++i) {
+ boost::shared_ptr<ValueNameList> value_name_list(new ValueNameList());
+ value_name_list->set_state (tree, *(*i));
+ _value_name_lists[value_name_list->name()] = value_name_list;
+ }
+
// global/post-facto PatchNameLists
boost::shared_ptr<XMLSharedNodeList> patch_name_lists = tree.find("/child::MIDINameDocument/child::MasterDeviceNames/child::PatchNameList");
for (XMLSharedNodeList::iterator i = patch_name_lists->begin();
diff --git a/libs/midi++2/mmc.cc b/libs/midi++2/mmc.cc
index 1b9481c9bf..b92e686ce6 100644
--- a/libs/midi++2/mmc.cc
+++ b/libs/midi++2/mmc.cc
@@ -22,6 +22,7 @@
#include <map>
#include "timecode/time.h"
+#include "timecode/bbt_time.h"
#include "pbd/error.h"
@@ -37,6 +38,13 @@ using namespace std;
using namespace MIDI;
using namespace PBD;
+/**
+ * As libtimecode is linked statically to libmidi++ this
+ * is necessary to pull in all the symbols from libtimecode
+ * so they are exported for other users of libtimecode.
+ */
+double tmp = Timecode::BBT_Time::ticks_per_beat;
+
static std::map<int,string> mmc_cmd_map;
static void build_mmc_cmd_map ()
{
diff --git a/libs/midi++2/port.cc b/libs/midi++2/port.cc
index 1480202867..90ec260eae 100644
--- a/libs/midi++2/port.cc
+++ b/libs/midi++2/port.cc
@@ -22,9 +22,6 @@
#include <fcntl.h>
#include <errno.h>
-#include <jack/jack.h>
-#include <jack/midiport.h>
-
#include "pbd/xml++.h"
#include "pbd/error.h"
#include "pbd/failed_constructor.h"
diff --git a/libs/midi++2/test/MidnamTest.cpp b/libs/midi++2/test/MidnamTest.cpp
index ba96d318c4..d8c89eb011 100644
--- a/libs/midi++2/test/MidnamTest.cpp
+++ b/libs/midi++2/test/MidnamTest.cpp
@@ -56,11 +56,9 @@ MidnamTest::protools_patchfile_test()
}
boost::shared_ptr<ChannelNameSet> nameSet1 =
- masterDeviceNames->channel_name_set_by_device_mode_and_channel(
- modename, 0);
+ masterDeviceNames->channel_name_set_by_channel(modename, 0);
boost::shared_ptr<ChannelNameSet> nameSet2 =
- masterDeviceNames->channel_name_set_by_device_mode_and_channel(
- modename, 9);
+ masterDeviceNames->channel_name_set_by_channel(modename, 9);
CPPUNIT_ASSERT_EQUAL(ns1, nameSet1->name());
CPPUNIT_ASSERT_EQUAL(ns2, nameSet2->name());
@@ -127,8 +125,7 @@ MidnamTest::yamaha_PSRS900_patchfile_test()
CPPUNIT_ASSERT_EQUAL(ns,
mode->channel_name_set_name_by_channel(i));
boost::shared_ptr<ChannelNameSet> nameSet =
- masterDeviceNames->channel_name_set_by_device_mode_and_channel(
- ns, 1);
+ masterDeviceNames->channel_name_set_by_channel(ns, 1);
CPPUNIT_ASSERT_EQUAL(ns, nameSet->name());
@@ -196,7 +193,7 @@ MidnamTest::load_all_midnams_test ()
boost::shared_ptr<CustomDeviceMode> mode = device->second->custom_device_mode_by_name(modename);
CPPUNIT_ASSERT_EQUAL(deviceModeName, mode->name());
- boost::shared_ptr<ChannelNameSet> nameSet = device->second->channel_name_set_by_device_mode_and_channel(modename, 0);
+ boost::shared_ptr<ChannelNameSet> nameSet = device->second->channel_name_set_by_channel(modename, 0);
}
}
diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript
index e27c4876ee..928b381326 100644
--- a/libs/midi++2/wscript
+++ b/libs/midi++2/wscript
@@ -50,7 +50,6 @@ def configure(conf):
'midipp', MAJOR, MINOR, MICRO, 'LIBMIDIPP_API', 'midi++/libmidi_visibility.h')
autowaf.configure(conf)
autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
- autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2')
autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0')
@@ -62,13 +61,10 @@ def build(bld):
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources)
- obj.defines = [ 'LIBMIDIPP_DLL=1', 'LIBMIDIPP_DLL_EXPORTS=1' ]
- obj.defines += [ 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
- obj.cflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBMIDIPP_DLL_EXPORTS=1' ]
else:
obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources)
- obj.cxxflags = [ '-fPIC', '-DWITH_JACK_MIDI' ]
+ obj.cxxflags = [ '-fPIC' ]
obj.defines = []
# everybody loves JACK
@@ -76,7 +72,7 @@ def build(bld):
obj.includes = ['.', '../surfaces/control_protocol', '../ardour' ]
obj.name = 'libmidipp'
obj.target = 'midipp'
- obj.uselib = 'GLIBMM SIGCPP XML JACK OSX'
+ obj.uselib = 'GLIBMM SIGCPP XML OSX'
obj.use = 'libpbd libevoral libtimecode'
obj.vnum = LIBMIDIPP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
diff --git a/libs/panners/1in2out/panner_1in2out.cc b/libs/panners/1in2out/panner_1in2out.cc
index 00024768e4..2d5489f0ce 100644
--- a/libs/panners/1in2out/panner_1in2out.cc
+++ b/libs/panners/1in2out/panner_1in2out.cc
@@ -51,7 +51,6 @@
#include "ardour/buffer_set.h"
#include "ardour/audio_buffer.h"
#include "ardour/pannable.h"
-#include "ardour/visibility.h"
#include "i18n.h"
#include "panner_1in2out.h"
@@ -64,7 +63,10 @@ using namespace PBD;
static PanPluginDescriptor _descriptor = {
"Mono to Stereo Panner",
+ "http://ardour.org/plugin/panner_1in2out",
+ "http://ardour.org/plugin/panner_1in2out#ui",
1, 2,
+ 10000,
Panner1in2out::factory
};
@@ -333,6 +335,8 @@ XMLNode&
Panner1in2out::get_state ()
{
XMLNode& root (Panner::get_state ());
+ root.add_property (X_("uri"), _descriptor.panner_uri);
+ /* this is needed to allow new sessions to load with old Ardour: */
root.add_property (X_("type"), _descriptor.name);
return root;
}
@@ -381,7 +385,7 @@ Panner1in2out::value_as_string (boost::shared_ptr<AutomationControl> ac) const
(int) rint (100.0 * val));
default:
- return _pannable->value_as_string (ac);
+ return _("unused");
}
}
diff --git a/libs/panners/1in2out/wscript b/libs/panners/1in2out/wscript
index 86d1693d91..de6b21af25 100644
--- a/libs/panners/1in2out/wscript
+++ b/libs/panners/1in2out/wscript
@@ -22,10 +22,8 @@ def build(bld):
obj = bld(features = 'cxx cxxshlib')
obj.source = [ 'panner_1in2out.cc' ]
obj.export_includes = ['.']
- obj.defines = [ 'PACKAGE="libardour_pan1in2out"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
- obj.defines = [ 'ARDOURPANNER_DLL_EXPORTS' ]
+ obj.defines = [ 'PACKAGE="libardour_pan1in2out"' ]
+ obj.defines += [ 'ARDOURPANNER_DLL_EXPORTS' ]
obj.includes = ['.']
obj.name = 'libardour_pan1in2out'
obj.target = 'pan1in2out'
diff --git a/libs/panners/2in2out/panner_2in2out.cc b/libs/panners/2in2out/panner_2in2out.cc
index 6740f56e65..f18dd94f45 100644
--- a/libs/panners/2in2out/panner_2in2out.cc
+++ b/libs/panners/2in2out/panner_2in2out.cc
@@ -49,7 +49,6 @@
#include "ardour/runtime_functions.h"
#include "ardour/session.h"
#include "ardour/utils.h"
-#include "ardour/visibility.h"
#include "ardour/mix.h"
#include "panner_2in2out.h"
@@ -64,7 +63,10 @@ using namespace PBD;
static PanPluginDescriptor _descriptor = {
"Equal Power Stereo",
+ "http://ardour.org/plugin/panner_2in2out",
+ "http://ardour.org/plugin/panner_2in2out#ui",
2, 2,
+ 10000,
Panner2in2out::factory
};
@@ -76,7 +78,14 @@ Panner2in2out::Panner2in2out (boost::shared_ptr<Pannable> p)
if (!_pannable->has_state()) {
_pannable->pan_azimuth_control->set_value (0.5);
_pannable->pan_width_control->set_value (1.0);
- }
+ }
+
+ double const w = width();
+ double const wrange = min (position(), (1 - position())) * 2;
+ if (fabs(w) > wrange) {
+ set_width(w > 0 ? wrange : -wrange);
+ }
+
update ();
@@ -156,6 +165,11 @@ Panner2in2out::update ()
double width = this->width ();
const double direction_as_lr_fract = position ();
+ double const wrange = min (position(), (1 - position())) * 2;
+ if (fabs(width) > wrange) {
+ width = (width > 0 ? wrange : -wrange);
+ }
+
if (width < 0.0) {
width = -width;
pos[0] = direction_as_lr_fract + (width/2.0); // left signal lr_fract
@@ -419,6 +433,8 @@ Panner2in2out::distribute_one_automated (AudioBuffer& srcbuf, BufferSet& obufs,
panR = position[n] + (width[n]/2.0f); // center - width/2
}
+ panR = max(0.f, min(1.f, panR));
+
const float panL = 1 - panR;
/* note that are overwriting buffers, but its OK
@@ -465,6 +481,8 @@ XMLNode&
Panner2in2out::get_state ()
{
XMLNode& root (Panner::get_state ());
+ root.add_property (X_("uri"), _descriptor.panner_uri);
+ /* this is needed to allow new sessions to load with old Ardour: */
root.add_property (X_("type"), _descriptor.name);
return root;
}
@@ -518,7 +536,7 @@ Panner2in2out::value_as_string (boost::shared_ptr<AutomationControl> ac) const
return string_compose (_("Width: %1%%"), (int) floor (100.0 * val));
default:
- return _pannable->value_as_string (ac);
+ return _("unused");
}
}
diff --git a/libs/panners/2in2out/wscript b/libs/panners/2in2out/wscript
index bd955e79fb..63f029f287 100644
--- a/libs/panners/2in2out/wscript
+++ b/libs/panners/2in2out/wscript
@@ -22,10 +22,8 @@ def build(bld):
obj = bld(features = 'cxx cxxshlib')
obj.source = [ 'panner_2in2out.cc' ]
obj.export_includes = ['.']
- obj.defines = [ 'PACKAGE="libardour_pan2in2out"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
- obj.defines = [ 'ARDOURPANNER_DLL_EXPORTS' ]
+ obj.defines = [ 'PACKAGE="libardour_pan2in2out"' ]
+ obj.defines += [ 'ARDOURPANNER_DLL_EXPORTS' ]
obj.includes = ['.']
obj.name = 'libardour_pan2in2out'
obj.target = 'pan2in2out'
diff --git a/libs/panners/stereobalance/panner_balance.cc b/libs/panners/stereobalance/panner_balance.cc
new file mode 100644
index 0000000000..7c0d7e7ff6
--- /dev/null
+++ b/libs/panners/stereobalance/panner_balance.cc
@@ -0,0 +1,333 @@
+/*
+ Copyright (C) 2004-2011 Paul Davis
+ adopted from 2in2out panner by Robin Gareus <robin@gareus.org>
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <inttypes.h>
+
+#include <cmath>
+#include <cerrno>
+#include <fstream>
+#include <cstdlib>
+#include <string>
+#include <cstdio>
+#include <locale.h>
+#include <unistd.h>
+#include <float.h>
+#include <iomanip>
+
+#include <glibmm.h>
+
+#include "pbd/cartesian.h"
+#include "pbd/convert.h"
+#include "pbd/error.h"
+#include "pbd/failed_constructor.h"
+#include "pbd/xml++.h"
+#include "pbd/enumwriter.h"
+
+#include "evoral/Curve.hpp"
+
+#include "ardour/audio_buffer.h"
+#include "ardour/audio_buffer.h"
+#include "ardour/buffer_set.h"
+#include "ardour/pan_controllable.h"
+#include "ardour/pannable.h"
+#include "ardour/runtime_functions.h"
+#include "ardour/session.h"
+#include "ardour/utils.h"
+#include "ardour/mix.h"
+
+#include "panner_balance.h"
+
+#include "i18n.h"
+
+#include "pbd/mathfix.h"
+
+using namespace std;
+using namespace ARDOUR;
+using namespace PBD;
+
+static PanPluginDescriptor _descriptor = {
+ "Stereo Balance",
+ "http://ardour.org/plugin/panner_balance",
+ "http://ardour.org/plugin/panner_balance#ui",
+ 2, 2,
+ 2000,
+ Pannerbalance::factory
+};
+
+extern "C" ARDOURPANNER_API PanPluginDescriptor* panner_descriptor () { return &_descriptor; }
+
+Pannerbalance::Pannerbalance (boost::shared_ptr<Pannable> p)
+ : Panner (p)
+{
+ if (!_pannable->has_state()) {
+ _pannable->pan_azimuth_control->set_value (0.5);
+ }
+
+ update ();
+
+ /* LEFT SIGNAL */
+ pos_interp[0] = pos[0] = desired_pos[0];
+ /* RIGHT SIGNAL */
+ pos_interp[1] = pos[1] = desired_pos[1];
+
+ _pannable->pan_azimuth_control->Changed.connect_same_thread (*this, boost::bind (&Pannerbalance::update, this));
+}
+
+Pannerbalance::~Pannerbalance ()
+{
+}
+
+double
+Pannerbalance::position () const
+{
+ return _pannable->pan_azimuth_control->get_value();
+}
+
+ void
+Pannerbalance::set_position (double p)
+{
+ if (clamp_position (p)) {
+ _pannable->pan_azimuth_control->set_value (p);
+ }
+}
+
+ void
+Pannerbalance::thaw ()
+{
+ Panner::thaw ();
+ if (_frozen == 0) {
+ update ();
+ }
+}
+
+void
+Pannerbalance::update ()
+{
+ if (_frozen) {
+ return;
+ }
+
+ float const pos = _pannable->pan_azimuth_control->get_value();
+
+ if (pos == .5) {
+ desired_pos[0] = 1.0;
+ desired_pos[1] = 1.0;
+ } else if (pos > .5) {
+ desired_pos[0] = 2 - 2. * pos;
+ desired_pos[1] = 1.0;
+ } else {
+ desired_pos[0] = 1.0;
+ desired_pos[1] = 2. * pos;
+ }
+}
+
+bool
+Pannerbalance::clamp_position (double& p)
+{
+ p = max (min (p, 1.0), 0.0);
+ return true;
+}
+
+pair<double, double>
+Pannerbalance::position_range () const
+{
+ return make_pair (0, 1);
+}
+
+void
+Pannerbalance::distribute_one (AudioBuffer& srcbuf, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes, uint32_t which)
+{
+ assert (obufs.count().n_audio() == 2);
+
+ pan_t delta;
+ Sample* dst;
+ pan_t pan;
+
+ Sample* const src = srcbuf.data();
+
+ dst = obufs.get_audio(which).data();
+
+ if (fabsf ((delta = (pos[which] - desired_pos[which]))) > 0.002) { // about 1 degree of arc
+
+ /* we've moving the pan by an appreciable amount, so we must
+ interpolate over 64 frames or nframes, whichever is smaller */
+
+ pframes_t const limit = min ((pframes_t) 64, nframes);
+ pframes_t n;
+
+ delta = -(delta / (float) (limit));
+
+ for (n = 0; n < limit; n++) {
+ pos_interp[which] = pos_interp[which] + delta;
+ pos[which] = pos_interp[which] + 0.9 * (pos[which] - pos_interp[which]);
+ dst[n] += src[n] * pos[which] * gain_coeff;
+ }
+
+ /* then pan the rest of the buffer; no need for interpolation for this bit */
+
+ pan = pos[which] * gain_coeff;
+
+ mix_buffers_with_gain (dst+n,src+n,nframes-n,pan);
+
+ } else {
+
+ pos[which] = desired_pos[which];
+ pos_interp[which] = pos[which];
+
+ if ((pan = (pos[which] * gain_coeff)) != 1.0f) {
+
+ if (pan != 0.0f) {
+
+ /* pan is 1 but also not 0, so we must do it "properly" */
+
+ //obufs.get_audio(1).read_from (srcbuf, nframes);
+ mix_buffers_with_gain(dst,src,nframes,pan);
+
+ /* mark that we wrote into the buffer */
+
+ // obufs[0] = 0;
+
+ }
+
+ } else {
+ /* pan is 1 so we can just copy the input samples straight in */
+ mix_buffers_no_gain(dst,src,nframes);
+ }
+ }
+}
+
+void
+Pannerbalance::distribute_one_automated (AudioBuffer& srcbuf, BufferSet& obufs,
+ framepos_t start, framepos_t end, pframes_t nframes,
+ pan_t** buffers, uint32_t which)
+{
+ assert (obufs.count().n_audio() == 2);
+
+ Sample* dst;
+ pan_t* pbuf;
+ Sample* const src = srcbuf.data();
+ pan_t* const position = buffers[0];
+
+ /* fetch positional data */
+
+ if (!_pannable->pan_azimuth_control->list()->curve().rt_safe_get_vector (start, end, position, nframes)) {
+ /* fallback */
+ distribute_one (srcbuf, obufs, 1.0, nframes, which);
+ return;
+ }
+
+ for (pframes_t n = 0; n < nframes; ++n) {
+
+ float const pos = position[n];
+
+ if (which == 0) { // Left
+ if (pos > .5) {
+ buffers[which][n] = 2 - 2. * pos;
+ } else {
+ buffers[which][n] = 1.0;
+ }
+ } else { // Right
+ if (pos < .5) {
+ buffers[which][n] = 2. * pos;
+ } else {
+ buffers[which][n] = 1.0;
+ }
+ }
+ }
+
+ dst = obufs.get_audio(which).data();
+ pbuf = buffers[which];
+
+ for (pframes_t n = 0; n < nframes; ++n) {
+ dst[n] += src[n] * pbuf[n];
+ }
+
+ /* XXX it would be nice to mark the buffer as written to */
+}
+
+Panner*
+Pannerbalance::factory (boost::shared_ptr<Pannable> p, boost::shared_ptr<Speakers> /* ignored */)
+{
+ return new Pannerbalance (p);
+}
+
+ XMLNode&
+Pannerbalance::get_state ()
+{
+ XMLNode& root (Panner::get_state ());
+ root.add_property (X_("uri"), _descriptor.panner_uri);
+ /* this is needed to allow new sessions to load with old Ardour: */
+ root.add_property (X_("type"), _descriptor.name);
+ return root;
+}
+
+std::set<Evoral::Parameter>
+Pannerbalance::what_can_be_automated() const
+{
+ set<Evoral::Parameter> s;
+ s.insert (Evoral::Parameter (PanAzimuthAutomation));
+ return s;
+}
+
+string
+Pannerbalance::describe_parameter (Evoral::Parameter p)
+{
+ switch (p.type()) {
+ case PanAzimuthAutomation:
+ return _("L/R");
+ default:
+ return _pannable->describe_parameter (p);
+ }
+}
+
+string
+Pannerbalance::value_as_string (boost::shared_ptr<AutomationControl> ac) const
+{
+ /* DO NOT USE LocaleGuard HERE */
+ double val = ac->get_value();
+
+ switch (ac->parameter().type()) {
+ case PanAzimuthAutomation:
+ /* We show the position of the center of the image relative to the left & right.
+ This is expressed as a pair of percentage values that ranges from (100,0)
+ (hard left) through (50,50) (hard center) to (0,100) (hard right).
+
+ This is pretty wierd, but its the way audio engineers expect it. Just remember that
+ the center of the USA isn't Kansas, its (50LA, 50NY) and it will all make sense.
+
+ This is designed to be as narrow as possible. Dedicated
+ panner GUIs can do their own version of this if they need
+ something less compact.
+ */
+
+ return string_compose (_("L%1R%2"), (int) rint (100.0 * (1.0 - val)),
+ (int) rint (100.0 * val));
+
+ default:
+ return _("unused");
+ }
+}
+
+void
+Pannerbalance::reset ()
+{
+ set_position (0.5);
+ update ();
+}
diff --git a/libs/panners/stereobalance/panner_balance.h b/libs/panners/stereobalance/panner_balance.h
new file mode 100644
index 0000000000..f381340888
--- /dev/null
+++ b/libs/panners/stereobalance/panner_balance.h
@@ -0,0 +1,83 @@
+/*
+ Copyright (C) 2004-2014 Paul Davis
+ adopted from 2in2out panner by Robin Gareus <robin@gareus.org>
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __ardour_panner_balance_h__
+#define __ardour_panner_balance_h__
+
+#include <cmath>
+#include <cassert>
+#include <vector>
+#include <string>
+#include <iostream>
+
+#include "pbd/stateful.h"
+#include "pbd/controllable.h"
+#include "pbd/cartesian.h"
+
+#include "ardour/automation_control.h"
+#include "ardour/automatable.h"
+#include "ardour/panner.h"
+#include "ardour/types.h"
+
+namespace ARDOUR {
+
+class Pannerbalance : public Panner
+{
+ public:
+ Pannerbalance (boost::shared_ptr<Pannable>);
+ ~Pannerbalance ();
+
+ ChanCount in() const { return ChanCount (DataType::AUDIO, 2); }
+ ChanCount out() const { return ChanCount (DataType::AUDIO, 2); }
+
+ void set_position (double);
+ bool clamp_position (double&);
+ std::pair<double, double> position_range () const;
+ double position () const;
+
+ std::set<Evoral::Parameter> what_can_be_automated() const;
+
+ static Panner* factory (boost::shared_ptr<Pannable>, boost::shared_ptr<Speakers>);
+
+ std::string describe_parameter (Evoral::Parameter);
+ std::string value_as_string (boost::shared_ptr<AutomationControl>) const;
+
+ XMLNode& get_state ();
+
+ void reset ();
+ void thaw ();
+
+ protected:
+ float pos[2];
+ float desired_pos[2];
+ float pos_interp[2];
+
+ void update ();
+
+ private:
+ void distribute_one (AudioBuffer& srcbuf, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes, uint32_t which);
+ void distribute_one_automated (AudioBuffer& srcbuf, BufferSet& obufs,
+ framepos_t start, framepos_t end, pframes_t nframes,
+ pan_t** buffers, uint32_t which);
+};
+
+} // namespace
+
+#endif /* __ardour_panner_balance_h__ */
diff --git a/libs/panners/stereobalance/wscript b/libs/panners/stereobalance/wscript
new file mode 100644
index 0000000000..b66a2ffee6
--- /dev/null
+++ b/libs/panners/stereobalance/wscript
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+from waflib.extras import autowaf as autowaf
+import os
+
+# Library version (UNIX style major, minor, micro)
+# major increment <=> incompatible changes
+# minor increment <=> compatible changes (additions)
+# micro increment <=> no interface changes
+LIBARDOUR_PAN2IN2OUT_LIB_VERSION = '1.0.0'
+
+# Mandatory variables
+top = '.'
+out = 'build'
+
+def options(opt):
+ autowaf.set_options(opt)
+
+def configure(conf):
+ autowaf.configure(conf)
+
+def build(bld):
+ obj = bld(features = 'cxx cxxshlib')
+ obj.source = [ 'panner_balance.cc' ]
+ obj.export_includes = ['.']
+ obj.defines = ['PACKAGE="libardour_panbalance"']
+ obj.defines += ['ARDOURPANNER_DLL_EXPORTS']
+ obj.includes = ['.']
+ obj.name = 'libardour_panbalance'
+ obj.target = 'panbalance'
+ obj.use = 'libardour libardour_cp libpbd'
+ obj.vnum = LIBARDOUR_PAN2IN2OUT_LIB_VERSION
+ obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners')
+
+def shutdown():
+ autowaf.shutdown()
diff --git a/libs/panners/vbap/vbap.cc b/libs/panners/vbap/vbap.cc
index 6d7496729c..3303887b95 100644
--- a/libs/panners/vbap/vbap.cc
+++ b/libs/panners/vbap/vbap.cc
@@ -50,7 +50,10 @@ using namespace std;
static PanPluginDescriptor _descriptor = {
"VBAP 2D panner",
+ "http://ardour.org/plugin/panner_vbap",
+ "http://ardour.org/plugin/panner_vbap#ui",
-1, -1,
+ 1000,
VBAPanner::factory
};
@@ -76,7 +79,11 @@ VBAPanner::VBAPanner (boost::shared_ptr<Pannable> p, boost::shared_ptr<Speakers>
, _speakers (new VBAPSpeakers (s))
{
_pannable->pan_azimuth_control->Changed.connect_same_thread (*this, boost::bind (&VBAPanner::update, this));
+ _pannable->pan_elevation_control->Changed.connect_same_thread (*this, boost::bind (&VBAPanner::update, this));
_pannable->pan_width_control->Changed.connect_same_thread (*this, boost::bind (&VBAPanner::update, this));
+ if (!_pannable->has_state()) {
+ reset();
+ }
update ();
}
@@ -114,76 +121,36 @@ VBAPanner::configure_io (ChanCount in, ChanCount /* ignored - we use Speakers */
void
VBAPanner::update ()
{
- /* recompute signal directions based on panner azimuth and, if relevant, width (diffusion) parameters)
- */
-
- /* panner azimuth control is [0 .. 1.0] which we interpret as [0 .. 360] degrees
- */
- double center = _pannable->pan_azimuth_control->get_value() * 360.0;
+ /* recompute signal directions based on panner azimuth and, if relevant, width (diffusion) and elevation parameters */
+ double elevation = _pannable->pan_elevation_control->get_value() * 90.0;
if (_signals.size() > 1) {
-
- /* panner width control is [-1.0 .. 1.0]; we ignore sign, and map to [0 .. 360] degrees
- so that a width of 1 corresponds to a signal equally present from all directions,
- and a width of zero corresponds to a point source from the "center" (above) point
- on the perimeter of the speaker array.
- */
-
- double w = fabs (_pannable->pan_width_control->get_value()) * 360.0;
-
- double min_dir = center - (w/2.0);
- if (min_dir < 0) {
- min_dir = 360.0 + min_dir; // its already negative
- }
- min_dir = max (min (min_dir, 360.0), 0.0);
+ double w = - (_pannable->pan_width_control->get_value());
+ double signal_direction = 1.0 - (_pannable->pan_azimuth_control->get_value() + (w/2));
+ double grd_step_per_signal = w / (_signals.size() - 1);
+ for (vector<Signal*>::iterator s = _signals.begin(); s != _signals.end(); ++s) {
- double max_dir = center + (w/2.0);
- if (max_dir > 360.0) {
- max_dir = max_dir - 360.0;
- }
- max_dir = max (min (max_dir, 360.0), 0.0);
-
- if (max_dir < min_dir) {
- swap (max_dir, min_dir);
- }
-
- double degree_step_per_signal = (max_dir - min_dir) / (_signals.size() - 1);
- double signal_direction = min_dir;
+ Signal* signal = *s;
- if (w >= 0.0) {
-
- /* positive width - normal order of signal spread */
-
- for (vector<Signal*>::iterator s = _signals.begin(); s != _signals.end(); ++s) {
-
- Signal* signal = *s;
-
- signal->direction = AngularVector (signal_direction, 0.0);
- compute_gains (signal->desired_gains, signal->desired_outputs, signal->direction.azi, signal->direction.ele);
- signal_direction += degree_step_per_signal;
- }
- } else {
+ int over = signal_direction;
+ over -= (signal_direction >= 0) ? 0 : 1;
+ signal_direction -= (double)over;
- /* inverted width - reverse order of signal spread */
-
- for (vector<Signal*>::reverse_iterator s = _signals.rbegin(); s != _signals.rend(); ++s) {
-
- Signal* signal = *s;
-
- signal->direction = AngularVector (signal_direction, 0.0);
- compute_gains (signal->desired_gains, signal->desired_outputs, signal->direction.azi, signal->direction.ele);
- signal_direction += degree_step_per_signal;
- }
+ signal->direction = AngularVector (signal_direction * 360.0, elevation);
+ compute_gains (signal->desired_gains, signal->desired_outputs, signal->direction.azi, signal->direction.ele);
+ signal_direction += grd_step_per_signal;
}
-
} else if (_signals.size() == 1) {
+ double center = (1.0 - _pannable->pan_azimuth_control->get_value()) * 360.0;
/* width has no role to play if there is only 1 signal: VBAP does not do "diffusion" of a single channel */
Signal* s = _signals.front();
- s->direction = AngularVector (center, 0);
+ s->direction = AngularVector (center, elevation);
compute_gains (s->desired_gains, s->desired_outputs, s->direction.azi, s->direction.ele);
}
+
+ SignalPositionChanged(); /* emit */
}
void
@@ -396,7 +363,9 @@ VBAPanner::distribute_one_automated (AudioBuffer& /*src*/, BufferSet& /*obufs*/,
XMLNode&
VBAPanner::get_state ()
{
- XMLNode& node (Panner::get_state());
+ XMLNode& node (Panner::get_state());
+ node.add_property (X_("uri"), _descriptor.panner_uri);
+ /* this is needed to allow new sessions to load with old Ardour: */
node.add_property (X_("type"), _descriptor.name);
return node;
}
@@ -427,6 +396,9 @@ VBAPanner::what_can_be_automated() const
if (_signals.size() > 1) {
s.insert (Evoral::Parameter (PanWidthAutomation));
}
+ if (_speakers->dimension() == 3) {
+ s.insert (Evoral::Parameter (PanElevationAutomation));
+ }
return s;
}
@@ -438,6 +410,8 @@ VBAPanner::describe_parameter (Evoral::Parameter p)
return _("Direction");
case PanWidthAutomation:
return _("Diffusion");
+ case PanElevationAutomation:
+ return _("Elevation");
default:
return _pannable->describe_parameter (p);
}
@@ -451,13 +425,16 @@ VBAPanner::value_as_string (boost::shared_ptr<AutomationControl> ac) const
switch (ac->parameter().type()) {
case PanAzimuthAutomation: /* direction */
- return string_compose (_("%1"), int (rint (val * 360.0)));
+ return string_compose (_("%1\u00B0"), (int (rint (val * 360.0))+180)%360);
case PanWidthAutomation: /* diffusion */
return string_compose (_("%1%%"), (int) floor (100.0 * fabs(val)));
+
+ case PanElevationAutomation: /* elevation */
+ return string_compose (_("%1\u00B0"), (int) floor (90.0 * fabs(val)));
default:
- return _pannable->value_as_string (ac);
+ return _("unused");
}
}
@@ -480,15 +457,11 @@ VBAPanner::get_speakers () const
void
VBAPanner::set_position (double p)
{
- if (p < 0.0) {
- p = 1.0 + p;
- }
-
- if (p > 1.0) {
- p = fmod (p, 1.0);
- }
-
- _pannable->pan_azimuth_control->set_value (p);
+ /* map into 0..1 range */
+ int over = p;
+ over -= (p >= 0) ? 0 : 1;
+ p -= (double)over;
+ _pannable->pan_azimuth_control->set_value (p);
}
void
@@ -498,10 +471,21 @@ VBAPanner::set_width (double w)
}
void
+VBAPanner::set_elevation (double e)
+{
+ _pannable->pan_elevation_control->set_value (min (1.0, max (0.0, e)));
+}
+
+void
VBAPanner::reset ()
{
- set_position (0);
- set_width (1);
+ set_position (.5);
+ if (_signals.size() > 1) {
+ set_width (1.0 - (1.0 / (double)_signals.size()));
+ } else {
+ set_width (1.0);
+ }
+ set_elevation (0);
update ();
}
diff --git a/libs/panners/vbap/vbap.h b/libs/panners/vbap/vbap.h
index e90bbc6fb1..ee9d456627 100644
--- a/libs/panners/vbap/vbap.h
+++ b/libs/panners/vbap/vbap.h
@@ -46,6 +46,7 @@ public:
void set_position (double);
void set_width (double);
+ void set_elevation (double);
std::set<Evoral::Parameter> what_can_be_automated() const;
diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc
index f2533222bd..313fe7a5cd 100644
--- a/libs/panners/vbap/vbap_speakers.cc
+++ b/libs/panners/vbap/vbap_speakers.cc
@@ -1,4 +1,4 @@
-/*
+/*
This software is being provided to you, the licensee, by Ville Pulkki,
under the following license. By obtaining, using and/or copying this
software, you agree that you have read, understood, and will comply
@@ -10,15 +10,15 @@
the disclaimer, and that the same appear on ALL copies of the software
and documentation, including modifications that you make for internal
use or for distribution:
-
+
Copyright 1998 by Ville Pulkki, Helsinki University of Technology. All
- rights reserved.
-
+ rights reserved.
+
The software may be used, distributed, and included to commercial
products without any charges. When included to a commercial product,
the method "Vector Base Amplitude Panning" and its developer Ville
Pulkki must be referred to in documentation.
-
+
This software is provided "as is", and Ville Pulkki or Helsinki
University of Technology make no representations or warranties,
expressed or implied. By way of example, but not limitation, Helsinki
@@ -31,11 +31,6 @@
of the software.
*/
-#ifdef COMPILER_MSVC
-#pragma warning ( disable : 4244 )
-#endif
-
-#include <vector>
#include <cmath>
#include <algorithm>
#include <stdlib.h>
@@ -50,13 +45,6 @@ using namespace std;
const double VBAPSpeakers::MIN_VOL_P_SIDE_LGTH = 0.01;
-typedef std::vector<double> DoubleVector;
-typedef std::vector<float> FloatVector;
-typedef std::vector<bool> BoolVector;
-typedef std::vector<int> IntVector;
-typedef std::vector<IntVector> IntVector2D;
-typedef std::vector<DoubleVector> DoubleVector2D;
-
VBAPSpeakers::VBAPSpeakers (boost::shared_ptr<Speakers> s)
: _dimension (2)
, _parent (s)
@@ -102,36 +90,46 @@ VBAPSpeakers::update ()
}
}
-void
-VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
+void
+VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
{
/* Selects the loudspeaker triplets, and
calculates the inversion matrices for each selected triplet.
A line (connection) is drawn between each loudspeaker. The lines
- denote the sides of the triangles. The triangles should not be
- intersecting. All crossing connections are searched and the
+ denote the sides of the triangles. The triangles should not be
+ intersecting. All crossing connections are searched and the
longer connection is erased. This yields non-intesecting triangles,
which can be used in panning.
*/
+#if 0 // DEVEL/DEBUG
+ for (vector<Speaker>::iterator i = _speakers.begin(); i != _speakers.end(); ++i) {
+ cout << "Speaker " << (*i).id << " @ "
+ << (*i).coords().x << ", " << (*i).coords().y << ", " << (*i).coords().z
+ << " azimuth " << (*i).angles().azi
+ << " elevation " << (*i).angles().ele
+ << " distance " << (*i).angles().length
+ << endl;
+ }
+#endif
+
int i,j,k,l,table_size;
int n_speakers = _speakers.size ();
+ int connections[n_speakers][n_speakers];
+ float distance_table[((n_speakers * (n_speakers - 1)) / 2)];
+ int distance_table_i[((n_speakers * (n_speakers - 1)) / 2)];
+ int distance_table_j[((n_speakers * (n_speakers - 1)) / 2)];
+ float distance;
+ struct ls_triplet_chain *trip_ptr, *prev, *tmp_ptr;
- if (n_speakers < 1) {
+ if (n_speakers == 0) {
return;
}
- FloatVector distance_table(((n_speakers * (n_speakers - 1)) / 2));
- IntVector distance_table_i(((n_speakers * (n_speakers - 1)) / 2));
- IntVector distance_table_j(((n_speakers * (n_speakers - 1)) / 2));
- IntVector2D connections(n_speakers, IntVector(n_speakers));
- float distance;
- struct ls_triplet_chain *trip_ptr, *prev, *tmp_ptr;
-
for (i = 0; i < n_speakers; i++) {
for (j = i+1; j < n_speakers; j++) {
- for(k=j+1;k<n_speakers;k++) {
- if (vol_p_side_lgth(i,j, k, _speakers) > MIN_VOL_P_SIDE_LGTH){
+ for(k = j+1; k < n_speakers; k++) {
+ if (vol_p_side_lgth(i, j, k, _speakers) > MIN_VOL_P_SIDE_LGTH) {
connections[i][j]=1;
connections[j][i]=1;
connections[i][k]=1;
@@ -145,13 +143,13 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
}
/*calculate distancies between all speakers and sorting them*/
- table_size =(((n_speakers - 1) * (n_speakers)) / 2);
+ table_size =(((n_speakers - 1) * (n_speakers)) / 2);
for (i = 0; i < table_size; i++) {
distance_table[i] = 100000.0;
}
- for (i = 0;i < n_speakers; i++) {
- for (j = i+1; j < n_speakers; j++) {
+ for (i = 0;i < n_speakers; i++) {
+ for (j = i+1; j < n_speakers; j++) {
if (connections[i][j] == 1) {
distance = fabs(vec_angle(_speakers[i].coords(),_speakers[j].coords()));
k=0;
@@ -180,8 +178,8 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
if (connections[fst_ls][sec_ls] == 1) {
for (j = 0; j < n_speakers; j++) {
for (k = j+1; k < n_speakers; k++) {
- if ((j!=fst_ls) && (k != sec_ls) && (k!=fst_ls) && (j != sec_ls)){
- if (lines_intersect(fst_ls, sec_ls, j,k) == 1){
+ if ((j != fst_ls) && (k != sec_ls) && (k != fst_ls) && (j != sec_ls)) {
+ if (lines_intersect(fst_ls, sec_ls, j, k) == 1){
connections[j][k] = 0;
connections[k][j] = 0;
}
@@ -199,8 +197,8 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
i = trip_ptr->ls_nos[0];
j = trip_ptr->ls_nos[1];
k = trip_ptr->ls_nos[2];
- if (connections[i][j] == 0 ||
- connections[i][k] == 0 ||
+ if (connections[i][j] == 0 ||
+ connections[i][k] == 0 ||
connections[j][k] == 0 ||
any_ls_inside_triplet(i,j,k) == 1 ){
if (prev != 0) {
@@ -222,7 +220,7 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
}
}
-int
+int
VBAPSpeakers::any_ls_inside_triplet(int a, int b, int c)
{
/* returns 1 if there is loudspeaker(s) inside given ls triplet */
@@ -240,12 +238,12 @@ VBAPSpeakers::any_ls_inside_triplet(int a, int b, int c)
lp1 = &(_speakers[a].coords());
lp2 = &(_speakers[b].coords());
lp3 = &(_speakers[c].coords());
-
+
/* matrix inversion */
invdet = 1.0 / ( lp1->x * ((lp2->y * lp3->z) - (lp2->z * lp3->y))
- lp1->y * ((lp2->x * lp3->z) - (lp2->z * lp3->x))
+ lp1->z * ((lp2->x * lp3->y) - (lp2->y * lp3->x)));
-
+
invmx[0] = ((lp2->y * lp3->z) - (lp2->z * lp3->y)) * invdet;
invmx[3] = ((lp1->y * lp3->z) - (lp1->z * lp3->y)) * -invdet;
invmx[6] = ((lp1->y * lp2->z) - (lp1->z * lp2->y)) * invdet;
@@ -255,7 +253,7 @@ VBAPSpeakers::any_ls_inside_triplet(int a, int b, int c)
invmx[2] = ((lp2->x * lp3->y) - (lp2->y * lp3->x)) * invdet;
invmx[5] = ((lp1->x * lp3->y) - (lp1->y * lp3->x)) * -invdet;
invmx[8] = ((lp1->x * lp2->y) - (lp1->y * lp2->x)) * invdet;
-
+
any_ls_inside = false;
for (i = 0; i < n_speakers; i++) {
if (i != a && i!=b && i != c) {
@@ -278,7 +276,7 @@ VBAPSpeakers::any_ls_inside_triplet(int a, int b, int c)
}
-void
+void
VBAPSpeakers::add_ldsp_triplet(int i, int j, int k, struct ls_triplet_chain **ls_triplets)
{
/* adds i,j,k triplet to triplet chain*/
@@ -286,7 +284,7 @@ VBAPSpeakers::add_ldsp_triplet(int i, int j, int k, struct ls_triplet_chain **ls
struct ls_triplet_chain *trip_ptr, *prev;
trip_ptr = *ls_triplets;
prev = 0;
-
+
while (trip_ptr != 0){
prev = trip_ptr;
trip_ptr = trip_ptr->next;
@@ -306,51 +304,51 @@ VBAPSpeakers::add_ldsp_triplet(int i, int j, int k, struct ls_triplet_chain **ls
trip_ptr->ls_nos[2] = k;
}
-float
+double
VBAPSpeakers::vec_angle(CartesianVector v1, CartesianVector v2)
{
- float inner= ((v1.x*v2.x + v1.y*v2.y + v1.z*v2.z)/
+ double inner= ((v1.x*v2.x + v1.y*v2.y + v1.z*v2.z)/
(vec_length(v1) * vec_length(v2)));
if (inner > 1.0) {
- inner= 1.0;
+ inner = 1.0;
}
if (inner < -1.0) {
inner = -1.0;
}
- return fabsf((float) acos((double) inner));
+ return fabs(acos(inner));
}
-float
+double
VBAPSpeakers::vec_length(CartesianVector v1)
{
- return (sqrt(v1.x*v1.x + v1.y*v1.y + v1.z*v1.z));
+ double rv = sqrt(v1.x*v1.x + v1.y*v1.y + v1.z*v1.z);
+ if (rv > 1e-14) return rv;
+ return 0;
}
-float
+double
VBAPSpeakers::vec_prod(CartesianVector v1, CartesianVector v2)
{
return (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z);
}
-float
-VBAPSpeakers::vol_p_side_lgth(int i, int j,int k, const vector<Speaker>& speakers)
+double
+VBAPSpeakers::vol_p_side_lgth(int i, int j, int k, const vector<Speaker>& speakers)
{
/* calculate volume of the parallelepiped defined by the loudspeaker
- direction vectors and divide it with total length of the triangle sides.
+ direction vectors and divide it with total length of the triangle sides.
This is used when removing too narrow triangles. */
-
- float volper, lgth;
- CartesianVector xprod;
+ double volper, lgth;
+ CartesianVector xprod;
cross_prod (speakers[i].coords(), speakers[j].coords(), &xprod);
- volper = fabsf (vec_prod(xprod, speakers[k].coords()));
- lgth = (fabsf (vec_angle(speakers[i].coords(), speakers[j].coords()))
- + fabsf (vec_angle(speakers[i].coords(), speakers[k].coords()))
- + fabsf (vec_angle(speakers[j].coords(), speakers[k].coords())));
-
+ volper = fabs (vec_prod(xprod, speakers[k].coords()));
+ lgth = ( fabs (vec_angle(speakers[i].coords(), speakers[j].coords()))
+ + fabs (vec_angle(speakers[i].coords(), speakers[k].coords()))
+ + fabs (vec_angle(speakers[j].coords(), speakers[k].coords())));
if (lgth > 0.00001) {
return volper / lgth;
} else {
@@ -358,28 +356,34 @@ VBAPSpeakers::vol_p_side_lgth(int i, int j,int k, const vector<Speaker>& speaker
}
}
-void
-VBAPSpeakers::cross_prod(CartesianVector v1,CartesianVector v2, CartesianVector *res)
+void
+VBAPSpeakers::cross_prod(CartesianVector v1,CartesianVector v2, CartesianVector *res)
{
- float length;
+ double length;
+
+ res->x = (v1.y * v2.z) - (v1.z * v2.y);
+ res->y = (v1.z * v2.x) - (v1.x * v2.z);
+ res->z = (v1.x * v2.y) - (v1.y * v2.x);
- res->x = (v1.y * v2.z ) - (v1.z * v2.y);
- res->y = (v1.z * v2.x ) - (v1.x * v2.z);
- res->z = (v1.x * v2.y ) - (v1.y * v2.x);
-
length = vec_length(*res);
- res->x /= length;
- res->y /= length;
- res->z /= length;
+ if (length > 0) {
+ res->x /= length;
+ res->y /= length;
+ res->z /= length;
+ } else {
+ res->x = 0;
+ res->y = 0;
+ res->z = 0;
+ }
}
-int
+int
VBAPSpeakers::lines_intersect (int i, int j, int k, int l)
{
- /* checks if two lines intersect on 3D sphere
+ /* checks if two lines intersect on 3D sphere
see theory in paper Pulkki, V. Lokki, T. "Creating Auditory Displays
with Multiple Loudspeakers Using VBAP: A Case Study with
- DIVA Project" in International Conference on
+ DIVA Project" in International Conference on
Auditory Displays -98. E-mail Ville.Pulkki@hut.fi
if you want to have that paper.
*/
@@ -389,11 +393,11 @@ VBAPSpeakers::lines_intersect (int i, int j, int k, int l)
CartesianVector v3, neg_v3;
float dist_ij,dist_kl,dist_iv3,dist_jv3,dist_inv3,dist_jnv3;
float dist_kv3,dist_lv3,dist_knv3,dist_lnv3;
-
+
cross_prod(_speakers[i].coords(),_speakers[j].coords(),&v1);
cross_prod(_speakers[k].coords(),_speakers[l].coords(),&v2);
cross_prod(v1,v2,&v3);
-
+
neg_v3.x= 0.0 - v3.x;
neg_v3.y= 0.0 - v3.y;
neg_v3.z= 0.0 - v3.z;
@@ -410,15 +414,14 @@ VBAPSpeakers::lines_intersect (int i, int j, int k, int l)
dist_lnv3 = (vec_angle(neg_v3,_speakers[l].coords()));
/* if one of loudspeakers is close to crossing point, don't do anything*/
-
-
- if(fabsf(dist_iv3) <= 0.01 || fabsf(dist_jv3) <= 0.01 ||
+ if(fabsf(dist_iv3) <= 0.01 || fabsf(dist_jv3) <= 0.01 ||
fabsf(dist_kv3) <= 0.01 || fabsf(dist_lv3) <= 0.01 ||
- fabsf(dist_inv3) <= 0.01 || fabsf(dist_jnv3) <= 0.01 ||
+ fabsf(dist_inv3) <= 0.01 || fabsf(dist_jnv3) <= 0.01 ||
fabsf(dist_knv3) <= 0.01 || fabsf(dist_lnv3) <= 0.01 ) {
return(0);
}
+ /* if crossing point is on line between both loudspeakers return 1 */
if (((fabsf(dist_ij - (dist_iv3 + dist_jv3)) <= 0.01 ) &&
(fabsf(dist_kl - (dist_kv3 + dist_lv3)) <= 0.01)) ||
((fabsf(dist_ij - (dist_inv3 + dist_jnv3)) <= 0.01) &&
@@ -429,9 +432,9 @@ VBAPSpeakers::lines_intersect (int i, int j, int k, int l)
}
}
-void
+void
VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
-{
+{
/* Calculates the inverse matrices for 3D */
float invdet;
const CartesianVector* lp1;
@@ -443,7 +446,7 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
int triplet;
assert (tr_ptr);
-
+
/* counting triplet amount */
while (tr_ptr != 0) {
@@ -451,7 +454,9 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
tr_ptr = tr_ptr->next;
}
- cerr << "@@@ triplets generate " << triplet_count << " of speaker tuples\n";
+#if 0 // DEVEL/DEBUG
+ cerr << "@@@ VBAP triplets generate " << triplet_count << " of speaker tuples\n";
+#endif
triplet = 0;
@@ -463,17 +468,18 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
_speaker_tuples.push_back (tmatrix());
}
+ tr_ptr = ls_triplets;
while (tr_ptr != 0) {
lp1 = &(_speakers[tr_ptr->ls_nos[0]].coords());
lp2 = &(_speakers[tr_ptr->ls_nos[1]].coords());
lp3 = &(_speakers[tr_ptr->ls_nos[2]].coords());
-
+
/* matrix inversion */
invmx = tr_ptr->inv_mx;
invdet = 1.0 / ( lp1->x * ((lp2->y * lp3->z) - (lp2->z * lp3->y))
- lp1->y * ((lp2->x * lp3->z) - (lp2->z * lp3->x))
+ lp1->z * ((lp2->x * lp3->y) - (lp2->y * lp3->x)));
-
+
invmx[0] = ((lp2->y * lp3->z) - (lp2->z * lp3->y)) * invdet;
invmx[3] = ((lp1->y * lp3->z) - (lp1->z * lp3->y)) * -invdet;
invmx[6] = ((lp1->y * lp2->z) - (lp1->z * lp2->y)) * invdet;
@@ -483,7 +489,7 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
invmx[2] = ((lp2->x * lp3->y) - (lp2->y * lp3->x)) * invdet;
invmx[5] = ((lp1->x * lp3->y) - (lp1->y * lp3->x)) * -invdet;
invmx[8] = ((lp1->x * lp2->y) - (lp1->y * lp2->x)) * invdet;
-
+
/* copy the matrix */
_matrices[triplet][0] = invmx[0];
@@ -500,10 +506,12 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
_speaker_tuples[triplet][1] = tr_ptr->ls_nos[1];
_speaker_tuples[triplet][2] = tr_ptr->ls_nos[2];
- cerr << "Triplet[" << triplet << "] = "
- << tr_ptr->ls_nos[0] << " + "
- << tr_ptr->ls_nos[1] << " + "
+#if 0 // DEVEL/DEBUG
+ cerr << "Triplet[" << triplet << "] = "
+ << tr_ptr->ls_nos[0] << " + "
+ << tr_ptr->ls_nos[1] << " + "
<< tr_ptr->ls_nos[2] << endl;
+#endif
triplet++;
@@ -511,55 +519,55 @@ VBAPSpeakers::calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
}
}
-void
+void
VBAPSpeakers::choose_speaker_pairs (){
/* selects the loudspeaker pairs, calculates the inversion
matrices and stores the data to a global array
*/
const int n_speakers = _speakers.size();
-
- if (n_speakers < 1) {
- return;
- }
-
- IntVector sorted_speakers(n_speakers);
- BoolVector exists(n_speakers);
- DoubleVector2D inverse_matrix(n_speakers, DoubleVector(4));
- const double AZIMUTH_DELTA_THRESHOLD_DEGREES = (180.0/M_PI) * (M_PI - 0.175);
+ const double AZIMUTH_DELTA_THRESHOLD_DEGREES = (180.0/M_PI) * (M_PI - 0.175);
+ int sorted_speakers[n_speakers];
+ bool exists[n_speakers];
+ double inverse_matrix[n_speakers][4];
int expected_pairs = 0;
int pair;
int speaker;
+
+ if (n_speakers == 0) {
+ return;
+ }
+
for (speaker = 0; speaker < n_speakers; ++speaker) {
exists[speaker] = false;
}
/* sort loudspeakers according their aximuth angle */
- sort_2D_lss (&sorted_speakers[0]);
-
+ sort_2D_lss (sorted_speakers);
+
/* adjacent loudspeakers are the loudspeaker pairs to be used.*/
for (speaker = 0; speaker < n_speakers-1; speaker++) {
- if ((_speakers[sorted_speakers[speaker+1]].angles().azi -
+ if ((_speakers[sorted_speakers[speaker+1]].angles().azi -
_speakers[sorted_speakers[speaker]].angles().azi) <= AZIMUTH_DELTA_THRESHOLD_DEGREES) {
- if (calc_2D_inv_tmatrix( _speakers[sorted_speakers[speaker]].angles().azi,
- _speakers[sorted_speakers[speaker+1]].angles().azi,
- &inverse_matrix[speaker][0]) != 0){
+ if (calc_2D_inv_tmatrix( _speakers[sorted_speakers[speaker]].angles().azi,
+ _speakers[sorted_speakers[speaker+1]].angles().azi,
+ inverse_matrix[speaker]) != 0){
exists[speaker] = true;
expected_pairs++;
}
}
}
-
- if (((6.283 - _speakers[sorted_speakers[n_speakers-1]].angles().azi)
+
+ if (((6.283 - _speakers[sorted_speakers[n_speakers-1]].angles().azi)
+_speakers[sorted_speakers[0]].angles().azi) <= AZIMUTH_DELTA_THRESHOLD_DEGREES) {
- if (calc_2D_inv_tmatrix(_speakers[sorted_speakers[n_speakers-1]].angles().azi,
- _speakers[sorted_speakers[0]].angles().azi,
- &inverse_matrix[n_speakers-1][0]) != 0) {
+ if (calc_2D_inv_tmatrix(_speakers[sorted_speakers[n_speakers-1]].angles().azi,
+ _speakers[sorted_speakers[0]].angles().azi,
+ inverse_matrix[n_speakers-1]) != 0) {
exists[n_speakers-1] = true;
expected_pairs++;
- }
+ }
}
pair = 0;
@@ -585,7 +593,7 @@ VBAPSpeakers::choose_speaker_pairs (){
pair++;
}
}
-
+
if (exists[n_speakers-1]) {
_matrices[pair][0] = inverse_matrix[speaker][0];
_matrices[pair][1] = inverse_matrix[speaker][1];
@@ -597,7 +605,7 @@ VBAPSpeakers::choose_speaker_pairs (){
}
}
-void
+void
VBAPSpeakers::sort_2D_lss (int* sorted_speakers)
{
vector<Speaker> tmp = _speakers;
@@ -612,7 +620,7 @@ VBAPSpeakers::sort_2D_lss (int* sorted_speakers)
}
}
-int
+int
VBAPSpeakers::calc_2D_inv_tmatrix (double azi1, double azi2, double* inverse_matrix)
{
double x1,x2,x3,x4;
@@ -625,7 +633,7 @@ VBAPSpeakers::calc_2D_inv_tmatrix (double azi1, double azi2, double* inverse_mat
det = (x1 * x4) - ( x3 * x2 );
if (fabs(det) <= 0.001) {
-
+
inverse_matrix[0] = 0.0;
inverse_matrix[1] = 0.0;
inverse_matrix[2] = 0.0;
diff --git a/libs/panners/vbap/vbap_speakers.h b/libs/panners/vbap/vbap_speakers.h
index b2f8b3c9dd..c3e90ce646 100644
--- a/libs/panners/vbap/vbap_speakers.h
+++ b/libs/panners/vbap/vbap_speakers.h
@@ -84,11 +84,11 @@ private:
struct ls_triplet_chain *next;
};
- static float vec_angle(PBD::CartesianVector v1, PBD::CartesianVector v2);
- static float vec_length(PBD::CartesianVector v1);
- static float vec_prod(PBD::CartesianVector v1, PBD::CartesianVector v2);
- static float vol_p_side_lgth(int i, int j,int k, const std::vector<Speaker>&);
- static void cross_prod(PBD::CartesianVector v1,PBD::CartesianVector v2, PBD::CartesianVector *res);
+ static double vec_angle(PBD::CartesianVector v1, PBD::CartesianVector v2);
+ static double vec_length(PBD::CartesianVector v1);
+ static double vec_prod(PBD::CartesianVector v1, PBD::CartesianVector v2);
+ static double vol_p_side_lgth(int i, int j,int k, const std::vector<Speaker>&);
+ static void cross_prod(PBD::CartesianVector v1,PBD::CartesianVector v2, PBD::CartesianVector *res);
void update ();
int any_ls_inside_triplet (int a, int b, int c);
diff --git a/libs/panners/vbap/wscript b/libs/panners/vbap/wscript
index 1f8208317d..8fe9dc8e8a 100644
--- a/libs/panners/vbap/wscript
+++ b/libs/panners/vbap/wscript
@@ -22,10 +22,8 @@ def build(bld):
obj = bld(features = 'cxx cxxshlib')
obj.source = [ 'vbap_speakers.cc', 'vbap.cc' ]
obj.export_includes = ['.']
- obj.defines = [ 'PACKAGE="libardour_panvbap"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL_=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
- obj.defines = [ 'ARDOURPANNER_DLL_EXPORTS' ]
+ obj.defines = ['PACKAGE="libardour_panvbap"']
+ obj.defines += ['ARDOURPANNER_DLL_EXPORTS']
obj.includes = ['.']
obj.name = 'libardour_panvbap'
obj.target = 'panvbap'
diff --git a/libs/panners/wscript b/libs/panners/wscript
index aec57eb40f..f3ce6e6f19 100644
--- a/libs/panners/wscript
+++ b/libs/panners/wscript
@@ -6,7 +6,7 @@ import os
top = '.'
out = 'build'
-panners = [ '2in2out', '1in2out', 'vbap' ]
+panners = [ '2in2out', '1in2out', 'vbap', 'stereobalance' ]
def options(opt):
autowaf.set_options(opt)
diff --git a/libs/pbd/fpu.cc b/libs/pbd/fpu.cc
index 5d81cd2fd3..b12d341366 100644
--- a/libs/pbd/fpu.cc
+++ b/libs/pbd/fpu.cc
@@ -39,11 +39,14 @@ FPU::FPU ()
_flags = Flags (0);
+#if defined(__MINGW64__) // Vkamyshniy: under __MINGW64__ the assembler code below is not compiled
+ return;
+#endif
+
#if !( (defined __x86_64__) || (defined __i386__) ) // !ARCH_X86
return;
#else
-
#ifndef _LP64 //USE_X86_64_ASM
asm volatile (
"mov $1, %%eax\n"
@@ -105,9 +108,9 @@ FPU::FPU ()
*fxbuf = (char *) malloc (512);
assert (*fxbuf);
#else
- posix_memalign ((void **) &fxbuf, 16, sizeof (char *));
+ (void) posix_memalign ((void **) &fxbuf, 16, sizeof (char *));
assert (fxbuf);
- posix_memalign ((void **) fxbuf, 16, 512);
+ (void) posix_memalign ((void **) fxbuf, 16, 512);
assert (*fxbuf);
#endif
diff --git a/libs/pbd/openuri.cc b/libs/pbd/openuri.cc
index 45154d0ad1..13d534e760 100644
--- a/libs/pbd/openuri.cc
+++ b/libs/pbd/openuri.cc
@@ -49,7 +49,7 @@ PBD::open_uri (const char* uri)
std::string command = "xdg-open ";
command += uri;
command += " &";
- system (command.c_str());
+ (void) system (command.c_str());
return true;
#endif
diff --git a/libs/pbd/pathexpand.cc b/libs/pbd/pathexpand.cc
index 5784ec9428..26454e4164 100644
--- a/libs/pbd/pathexpand.cc
+++ b/libs/pbd/pathexpand.cc
@@ -33,12 +33,57 @@
using std::string;
using std::vector;
+#ifdef COMPILER_MINGW
+
+#include <stdlib.h>
+#include <glibmm.h>
+
+/****************************************************************
+ * Emulate POSIX realpath() using Win32 _fullpath() since realpath()
+ * is not available.
+ *
+ * Returns:
+ * On Success: A pointer to the resolved (absolute) path
+ * On Failure: 0 (NULL)
+ */
+
+static char*
+realpath (const char *original_path, char resolved_path[_MAX_PATH+1])
+{
+ char *rpath = 0;
+ bool bIsSymLink = false; // We'll probably need to test the incoming path
+ // to find out if it points to a Windows shortcut
+ // (or a hard link) and set this appropriately.
+
+ if (bIsSymLink) {
+ // At the moment I'm not sure if Windows '_fullpath()' is directly
+ // equivalent to POSIX 'realpath()' - in as much as the latter will
+ // resolve the supplied path if it happens to point to a symbolic
+ // link ('_fullpath()' probably DOESN'T do this but I'm not really
+ // sure if Ardour needs such functionality anyway). Therefore we'll
+ // possibly need to add that functionality here at a later date.
+ } else {
+ char temp[(_MAX_PATH+1)*6]; // Allow for maximum length of a path in wchar characters
+
+ // POSIX 'realpath()' requires that the buffer size is at
+ // least PATH_MAX+1, so assume that the user knew this !!
+
+ rpath = _fullpath (temp, Glib::locale_from_utf8 (original_path).c_str(), _MAX_PATH);
+
+ if (0 != rpath) {
+ snprintf (resolved_path, _MAX_PATH+1, "%s", Glib::locale_to_utf8 (temp).c_str());
+ }
+
+ }
+
+ return (rpath);
+}
+
+#endif // COMPILER_MINGW
+
string
PBD::canonical_path (const std::string& path)
{
-#ifdef COMPILER_MINGW
- return path;
-#else
char buf[PATH_MAX+1];
if (!realpath (path.c_str(), buf) && (errno != ENOENT)) {
@@ -46,7 +91,6 @@ PBD::canonical_path (const std::string& path)
}
return string (buf);
-#endif
}
string
diff --git a/libs/pbd/pbd/abstract_ui.h b/libs/pbd/pbd/abstract_ui.h
index 1ceefe7b3b..dc5620b2ef 100644
--- a/libs/pbd/pbd/abstract_ui.h
+++ b/libs/pbd/pbd/abstract_ui.h
@@ -52,7 +52,7 @@
class Touchable;
template<typename RequestObject>
-class /*ABSTRACT_UI_API*/ AbstractUI : public BaseUI /* see notes in visibility.h about why this is not LIBPBD_API */
+class ABSTRACT_UI_API AbstractUI : public BaseUI
{
public:
AbstractUI (const std::string& name);
@@ -75,7 +75,7 @@ class /*ABSTRACT_UI_API*/ AbstractUI : public BaseUI /* see notes in visibility.
};
typedef typename RequestBuffer::rw_vector RequestBufferVector;
-#if defined(__MINGW32__)
+#if defined(__MINGW32__) && !defined (__MINGW64__)
struct pthread_cmp
{
diff --git a/libs/pbd/pbd/libpbd_visibility.h b/libs/pbd/pbd/libpbd_visibility.h
index e2c6235f0b..0fcebd554f 100644
--- a/libs/pbd/pbd/libpbd_visibility.h
+++ b/libs/pbd/pbd/libpbd_visibility.h
@@ -20,37 +20,26 @@
#ifndef __libpbd_libpbd_visibility_h__
#define __libpbd_libpbd_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * ardour source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBPBD_DLL_IMPORT __declspec(dllimport)
#define LIBPBD_DLL_EXPORT __declspec(dllexport)
#define LIBPBD_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBPBD_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBPBD_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBPBD_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBPBD_DLL_IMPORT
- #define LIBPBD_DLL_EXPORT
- #define LIBPBD_DLL_LOCAL
- #endif
+ #define LIBPBD_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBPBD_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBPBD_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBPBD_DLL // libpbd is a DLL
-#ifdef LIBPBD_DLL_EXPORTS // defined if we are building the libpbd DLL (instead of using it)
- #define LIBPBD_API LIBPBD_DLL_EXPORT
+#ifdef LIBPBD_STATIC // libpbd is a DLL
+ #define LIBPBD_API
+ #define LIBPBD_LOCAL
#else
+ #ifdef LIBPBD_DLL_EXPORTS // defined if we are building the libpbd DLL (instead of using it)
+ #define LIBPBD_API LIBPBD_DLL_EXPORT
+ #else
#define LIBPBD_API LIBPBD_DLL_IMPORT
-#endif
-#define LIBPBD_LOCAL LIBPBD_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBPBD_API
-#define LIBPBD_LOCAL
+ #endif
+ #define LIBPBD_LOCAL LIBPBD_DLL_LOCAL
#endif
#endif /* __libpbd_libpbd_visibility_h__ */
diff --git a/libs/pbd/pbd/search_path.h b/libs/pbd/pbd/search_path.h
index 5203588f72..909bffb0a4 100644
--- a/libs/pbd/pbd/search_path.h
+++ b/libs/pbd/pbd/search_path.h
@@ -17,8 +17,8 @@
*/
-#ifndef PBD_SEARCH_PATH_INCLUDED
-#define PBD_SEARCH_PATH_INCLUDED
+#ifndef __libpbd_search_path_h__
+#define __libpbd_search_path_h__
#include <string>
#include <vector>
@@ -112,4 +112,4 @@ protected:
} // namespace PBD
-#endif
+#endif /* __libpbd_search_path_h__ */
diff --git a/libs/pbd/pbd/stacktrace.h b/libs/pbd/pbd/stacktrace.h
index 672ee2acad..c5d9743b1e 100644
--- a/libs/pbd/pbd/stacktrace.h
+++ b/libs/pbd/pbd/stacktrace.h
@@ -38,9 +38,10 @@
namespace PBD {
+
LIBPBD_API void stacktrace (std::ostream& out, int levels = 0);
LIBPBD_API void trace_twb();
-/* JE - !!!! Declaration might possibly get removed (except it's still used in 'libs/canvas/item.cc') */ std::string demangle (const std::string&);
+ LIBPBD_API std::string demangle (const std::string&);
template<typename T>
class /*LIBPBD_API*/ thing_with_backtrace
diff --git a/libs/pbd/semutils.cc b/libs/pbd/semutils.cc
index e5e5898218..cf7b54d30e 100644
--- a/libs/pbd/semutils.cc
+++ b/libs/pbd/semutils.cc
@@ -40,6 +40,8 @@ ProcessSemaphore::ProcessSemaphore (const char* name, int val)
}
#else
+ (void) name; /* stop gcc warning on !Apple systems */
+
if (sem_init (&_sem, 0, val)) {
throw failed_constructor ();
}
diff --git a/libs/pbd/stacktrace.cc b/libs/pbd/stacktrace.cc
index 5721c69c54..c74dd946f7 100644
--- a/libs/pbd/stacktrace.cc
+++ b/libs/pbd/stacktrace.cc
@@ -106,7 +106,7 @@ PBD::stacktrace (std::ostream& out, int levels)
#else
std::string
-/* JE - !!!! 'PBD' namespace might possibly get removed (except it's still used in 'libs/canvas/item.cc') */PBD::demangle (std::string const & l)
+PBD::demangle (std::string const & l) /* JE - !!!! 'PBD' namespace might possibly get removed (except it's still used in 'libs/canvas/item.cc') */
{
return std::string();
}
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index de831c92a2..6b3e12b539 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -115,11 +115,7 @@ def build(bld):
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
print('BUILD SHARED LIB')
obj = bld.shlib(features = 'cxx cxxshlib', source=libpbd_sources)
- obj.defines = [ 'LIBPBD_DLL=1',
- 'LIBPBD_DLL_EXPORTS=1'
- ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
- obj.cflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBPBD_DLL_EXPORTS=1' ]
else:
print('BUILD STATIC LIB')
obj = bld.stlib(features = 'cxx cxxstlib', source=libpbd_sources)
diff --git a/libs/plugins/reasonablesynth.lv2/lv2.c b/libs/plugins/reasonablesynth.lv2/lv2.c
new file mode 100644
index 0000000000..586ca54c86
--- /dev/null
+++ b/libs/plugins/reasonablesynth.lv2/lv2.c
@@ -0,0 +1,218 @@
+/* reasonable simple synth
+ *
+ * Copyright (C) 2013 Robin Gareus <robin@gareus.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <time.h>
+
+/* LV2 */
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
+#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
+#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
+#include "lv2/lv2plug.in/ns/ext/midi/midi.h"
+
+#define RSY_URI "https://community.ardour.org/node/7596"
+
+/* the synth interface */
+static void * synth_alloc (void);
+static void synth_init (void *, double rate);
+static void synth_free (void *);
+static void synth_parse_midi (void *, const uint8_t *data, const size_t size);
+static uint32_t synth_sound (void *, uint32_t written, uint32_t nframes, float **out);
+
+#include "rsynth.c"
+
+typedef enum {
+ RSY_MIDIIN = 0,
+ RSY_OUTL,
+ RSY_OUTR
+} PortIndex;
+
+typedef struct {
+ const LV2_Atom_Sequence* midiin;
+ float* outL;
+ float* outR;
+
+ LV2_URID_Map* map;
+ LV2_URID midi_MidiEvent;
+
+ double SampleRateD;
+ void *synth;
+ bool xmas;
+} RSynth;
+
+/* main LV2 */
+
+static LV2_Handle
+instantiate(const LV2_Descriptor* descriptor,
+ double rate,
+ const char* bundle_path,
+ const LV2_Feature* const* features)
+{
+ (void) descriptor; /* unused variable */
+ (void) bundle_path; /* unused variable */
+
+ if (rate < 8000) {
+ fprintf(stderr, "RSynth.lv2 error: unsupported sample-rate (must be > 8k)\n");
+ return NULL;
+ }
+ RSynth* self = (RSynth*)calloc(1, sizeof(RSynth));
+ if(!self) {
+ return NULL;
+ }
+
+ self->SampleRateD = rate;
+
+ int i;
+ for (i=0; features[i]; ++i) {
+ if (!strcmp(features[i]->URI, LV2_URID__map)) {
+ self->map = (LV2_URID_Map*)features[i]->data;
+ }
+ }
+
+ if (!self->map) {
+ fprintf(stderr, "RSynth.lv2 error: Host does not support urid:map\n");
+ free(self);
+ return NULL;
+ }
+
+ self->midi_MidiEvent = self->map->map(self->map->handle, LV2_MIDI__MidiEvent);
+
+ self->synth = synth_alloc();
+ synth_init(self->synth, rate);
+
+
+ struct tm date;
+ time_t now;
+ time(&now);
+ localtime_r(&now, &date);
+ if (getenv("ITSXMAS") || (date.tm_mon == 11 /*dec*/ && date.tm_mday == 25)) {
+ printf("reasonable synth.lv2 says: happy holidays!\n");
+ self->xmas = true;
+ }
+
+ return (LV2_Handle)self;
+}
+
+static void
+connect_port(LV2_Handle handle,
+ uint32_t port,
+ void* data)
+{
+ RSynth* self = (RSynth*)handle;
+
+ switch ((PortIndex)port) {
+ case RSY_MIDIIN:
+ self->midiin = (const LV2_Atom_Sequence*)data;
+ break;
+ case RSY_OUTL:
+ self->outL = (float*)data;
+ break;
+ case RSY_OUTR:
+ self->outR = (float*)data;
+ break;
+ }
+}
+
+static void
+run(LV2_Handle handle, uint32_t n_samples)
+{
+ RSynth* self = (RSynth*)handle;
+ float* audio[2];
+
+ audio[0] = self->outL;
+ audio[1] = self->outR;
+
+ uint32_t written = 0;
+
+ /* Process incoming MIDI events */
+ if (self->midiin) {
+ LV2_Atom_Event const* ev = (LV2_Atom_Event const*)((&(self->midiin)->body) + 1); // lv2_atom_sequence_begin
+ while( // !lv2_atom_sequence_is_end
+ (const uint8_t*)ev < ((const uint8_t*) &(self->midiin)->body + (self->midiin)->atom.size)
+ )
+ {
+ if (ev->body.type == self->midi_MidiEvent) {
+ if (written + BUFFER_SIZE_SAMPLES < ev->time.frames
+ && ev->time.frames < n_samples) {
+ /* first synthesize sound up until the message timestamp */
+ written = synth_sound(self->synth, written, ev->time.frames, audio);
+ }
+ /* send midi message to synth */
+ if (self->xmas) {
+ synth_parse_xmas(self->synth, (const uint8_t*)(ev+1), ev->body.size);
+ } else {
+ synth_parse_midi(self->synth, (const uint8_t*)(ev+1), ev->body.size);
+ }
+ }
+ ev = (LV2_Atom_Event const*) // lv2_atom_sequence_next()
+ ((const uint8_t*)ev + sizeof(LV2_Atom_Event) + ((ev->body.size + 7) & ~7));
+ }
+ }
+
+ /* synthesize [remaining] sound */
+ synth_sound(self->synth, written, n_samples, audio);
+}
+
+static void
+cleanup(LV2_Handle handle)
+{
+ RSynth* self = (RSynth*)handle;
+ synth_free(self->synth);
+ free(handle);
+}
+
+static const void*
+extension_data(const char* uri)
+{
+ (void) uri; /* unused variable */
+ return NULL;
+}
+
+static const LV2_Descriptor descriptor = {
+ RSY_URI,
+ instantiate,
+ connect_port,
+ NULL,
+ run,
+ NULL,
+ cleanup,
+ extension_data
+};
+
+#if defined(COMPILER_MSVC)
+__declspec(dllexport)
+#else
+__attribute__ ((visibility ("default")))
+#endif
+const LV2_Descriptor*
+lv2_descriptor(uint32_t idx)
+{
+ switch (idx) {
+ case 0:
+ return &descriptor;
+ default:
+ return NULL;
+ }
+}
+
+/* vi:set ts=8 sts=2 sw=2 et: */
diff --git a/libs/plugins/reasonablesynth.lv2/manifest.ttl.in b/libs/plugins/reasonablesynth.lv2/manifest.ttl.in
new file mode 100644
index 0000000000..92b20b40b8
--- /dev/null
+++ b/libs/plugins/reasonablesynth.lv2/manifest.ttl.in
@@ -0,0 +1,7 @@
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+<https://community.ardour.org/node/7596>
+ a lv2:Plugin ;
+ lv2:binary <reasonablesynth@LIB_EXT@> ;
+ rdfs:seeAlso <reasonablesynth.ttl> .
diff --git a/libs/plugins/reasonablesynth.lv2/reasonablesynth.ttl.in b/libs/plugins/reasonablesynth.lv2/reasonablesynth.ttl.in
new file mode 100644
index 0000000000..fe4cddbad4
--- /dev/null
+++ b/libs/plugins/reasonablesynth.lv2/reasonablesynth.ttl.in
@@ -0,0 +1,50 @@
+@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
+@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
+
+<http://gareus.org/rgareus#me>
+ a foaf:Person ;
+ foaf:name "Robin Gareus" ;
+ foaf:mbox <mailto:robin@gareus.org> ;
+ foaf:homepage <http://gareus.org/> .
+
+<https://community.ardour.org/node/7596>
+ a lv2:Plugin, lv2:InstrumentPlugin, doap:Project;
+ doap:license <http://usefulinc.com/doap/licenses/gpl> ;
+ doap:maintainer <http://gareus.org/rgareus#me> ;
+ doap:name "Reasonable Synth";
+ lv2:optionalFeature lv2:hardRTCapable ;
+ lv2:requiredFeature urid:map ;
+ rdfs:comment """A simple synthesizer with no controls at all but a reasonable sound instead.""" ;
+ lv2:port
+ [
+ a atom:AtomPort ,
+ lv2:InputPort ;
+ atom:bufferType atom:Sequence ;
+ atom:supports <http://lv2plug.in/ns/ext/midi#MidiEvent> ;
+ lv2:index 0 ;
+ lv2:symbol "MidiIn" ;
+ lv2:name "MIDI Input" ;
+ ],
+ [
+ a lv2:AudioPort ,
+ lv2:OutputPort ;
+ lv2:index 1 ;
+ lv2:symbol "outL" ;
+ lv2:name "Left output" ;
+ lv2:designation pg:left ;
+ ],
+ [
+ a lv2:AudioPort ,
+ lv2:OutputPort ;
+ lv2:index 2 ;
+ lv2:symbol "outR" ;
+ lv2:name "Right Output" ;
+ lv2:designation pg:right ;
+ ]
+ .
diff --git a/libs/plugins/reasonablesynth.lv2/rsynth.c b/libs/plugins/reasonablesynth.lv2/rsynth.c
new file mode 100644
index 0000000000..a6c74aa26c
--- /dev/null
+++ b/libs/plugins/reasonablesynth.lv2/rsynth.c
@@ -0,0 +1,545 @@
+/* reasonable simple synth
+ *
+ * Copyright (C) 2013 Robin Gareus <robin@gareus.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE // needed for M_PI
+#endif
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <assert.h>
+
+#ifndef BUFFER_SIZE_SAMPLES
+#define BUFFER_SIZE_SAMPLES 64
+#endif
+
+#ifndef MIN
+#define MIN(A, B) ( (A) < (B) ? (A) : (B) )
+#endif
+
+/* internal MIDI event abstraction */
+enum RMIDI_EV_TYPE {
+ INVALID=0,
+ NOTE_ON,
+ NOTE_OFF,
+ PROGRAM_CHANGE,
+ CONTROL_CHANGE,
+};
+
+struct rmidi_event_t {
+ enum RMIDI_EV_TYPE type;
+ uint8_t channel; /**< the MIDI channel number 0-15 */
+ union {
+ struct {
+ uint8_t note;
+ uint8_t velocity;
+ } tone;
+ struct {
+ uint8_t param;
+ uint8_t value;
+ } control;
+ } d;
+};
+
+typedef struct {
+ uint32_t tme[3]; // attack, decay, release times [settings:ms || internal:samples]
+ float vol[2]; // attack, sustain volume [0..1]
+ uint32_t off[3]; // internal use (added attack,decay,release times)
+} ADSRcfg;
+
+typedef struct _RSSynthChannel {
+ uint32_t keycomp;
+ uint32_t adsr_cnt[128];
+ float adsr_amp[128];
+ float phase[128]; // various use, zero'ed on note-on
+ int8_t miditable[128]; // internal, note-on/off velocity
+ int8_t midimsgs [128]; // internal, note-off + on in same cycle
+ ADSRcfg adsr;
+ void (*synthesize) (struct _RSSynthChannel* sc,
+ const uint8_t note, const float vol, const float pc,
+ const size_t n_samples, float* left, float* right);
+} RSSynthChannel;
+
+typedef void (*SynthFunction) (RSSynthChannel* sc,
+ const uint8_t note, const float vol, const float pc,
+ const size_t n_samples, float* left, float* right);
+
+typedef struct {
+ uint32_t boffset;
+ float buf [2][BUFFER_SIZE_SAMPLES];
+ RSSynthChannel sc[16];
+ float freqs[128];
+ float kcgain;
+ float kcfilt;
+ double rate;
+ uint32_t xmas_on;
+ uint32_t xmas_off;
+} RSSynthesizer;
+
+
+/* initialize ADSR values
+ *
+ * @param rate sample-rate
+ * @param a attack time in seconds
+ * @param d decay time in seconds
+ * @param r release time in seconds
+ * @param avol attack gain [0..1]
+ * @param svol sustain volume level [0..1]
+ */
+static void init_adsr(ADSRcfg *adsr, const double rate,
+ const uint32_t a, const uint32_t d, const uint32_t r,
+ const float avol, const float svol) {
+
+ adsr->vol[0] = avol;
+ adsr->vol[1] = svol;
+ adsr->tme[0] = a * rate / 1000.0;
+ adsr->tme[1] = d * rate / 1000.0;
+ adsr->tme[2] = r * rate / 1000.0;
+
+ assert(adsr->tme[0] > 32);
+ assert(adsr->tme[1] > 32);
+ assert(adsr->tme[2] > 32);
+ assert(adsr->vol[0] >=0 && adsr->vol[1] <= 1.0);
+ assert(adsr->vol[1] >=0 && adsr->vol[1] <= 1.0);
+
+ adsr->off[0] = adsr->tme[0];
+ adsr->off[1] = adsr->tme[1] + adsr->off[0];
+ adsr->off[2] = adsr->tme[2] + adsr->off[1];
+}
+
+/* calculate per-sample, per-key envelope */
+static inline float adsr_env(RSSynthChannel *sc, const uint8_t note) {
+
+ if (sc->adsr_cnt[note] < sc->adsr.off[0]) {
+ // attack
+ const uint32_t p = ++sc->adsr_cnt[note];
+ if (p == sc->adsr.tme[0]) {
+ sc->adsr_amp[note] = sc->adsr.vol[0];
+ return sc->adsr.vol[0];
+ } else {
+ const float d = sc->adsr.vol[0] - sc->adsr_amp[note];
+ return sc->adsr_amp[note] + (p / (float) sc->adsr.tme[0]) * d;
+ }
+ }
+ else if (sc->adsr_cnt[note] < sc->adsr.off[1]) {
+ // decay
+ const uint32_t p = ++sc->adsr_cnt[note] - sc->adsr.off[0];
+ if (p == sc->adsr.tme[1]) {
+ sc->adsr_amp[note] = sc->adsr.vol[1];
+ return sc->adsr.vol[1];
+ } else {
+ const float d = sc->adsr.vol[1] - sc->adsr_amp[note];
+ return sc->adsr_amp[note] + (p / (float) sc->adsr.tme[1]) * d;
+ }
+ }
+ else if (sc->adsr_cnt[note] == sc->adsr.off[1]) {
+ // sustain
+ return sc->adsr.vol[1];
+ }
+ else if (sc->adsr_cnt[note] < sc->adsr.off[2]) {
+ // release
+ const uint32_t p = ++sc->adsr_cnt[note] - sc->adsr.off[1];
+ if (p == sc->adsr.tme[2]) {
+ sc->adsr_amp[note] = 0;
+ return 0;
+ } else {
+ const float d = 0 - sc->adsr_amp[note];
+ return sc->adsr_amp[note] + (p / (float) sc->adsr.tme[2]) * d;
+ }
+ }
+ else {
+ sc->adsr_cnt[note] = 0;
+ return 0;
+ }
+}
+
+
+/*****************************************************************************/
+/* piano like sound w/slight stereo phase */
+static void synthesize_sineP (RSSynthChannel* sc,
+ const uint8_t note, const float vol, const float fq,
+ const size_t n_samples, float* left, float* right) {
+
+ size_t i;
+ float phase = sc->phase[note];
+
+ for (i=0; i < n_samples; ++i) {
+ float env = adsr_env(sc, note);
+ if (sc->adsr_cnt[note] == 0) break;
+ const float amp = vol * env;
+
+ left[i] += amp * sinf(2.0 * M_PI * phase);
+ left[i] += .300 * amp * sinf(2.0 * M_PI * phase * 2.0);
+ left[i] += .150 * amp * sinf(2.0 * M_PI * phase * 3.0);
+ left[i] += .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
+ //left[i] -= .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
+ //left[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
+ left[i] += .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
+ phase += fq;
+ right[i] += amp * sinf(2.0 * M_PI * phase);
+ right[i] += .300 * amp * sinf(2.0 * M_PI * phase * 2.0);
+ right[i] += .150 * amp * sinf(2.0 * M_PI * phase * 3.0);
+ right[i] -= .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
+ //right[i] += .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
+ //right[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
+ right[i] -= .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
+ if (phase > 1.0) phase -= 2.0;
+ }
+ sc->phase[note] = phase;
+}
+
+static const ADSRcfg piano_adsr = {{ 5, 800, 100}, { 1.0, 0.0}, {0,0,0}};
+
+/*****************************************************************************/
+
+
+/* process note - move through ADSR states, count active keys,.. */
+static void process_key (void *synth,
+ const uint8_t chn, const uint8_t note,
+ const size_t n_samples, float *left, float *right)
+{
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ RSSynthChannel* sc = &rs->sc[chn];
+ const int8_t vel = sc->miditable[note];
+ const int8_t msg = sc->midimsgs[note];
+ const float vol = /* master_volume */ 0.25 * fabsf(vel) / 127.0;
+ const float phase = sc->phase[note];
+ sc->midimsgs[note] = 0;
+
+ if (phase == -10 && vel > 0) {
+ // new note on
+ assert(sc->adsr_cnt[note] == 0);
+ sc->adsr_amp[note] = 0;
+ sc->adsr_cnt[note] = 0;
+ sc->phase[note] = 0;
+ sc->keycomp++;
+ //printf("[On] Now %d keys active on chn %d\n", sc->keycomp, chn);
+ }
+ else if (phase >= -1.0 && phase <= 1.0 && vel > 0) {
+ // sustain note or re-start note while adsr in progress:
+ if (sc->adsr_cnt[note] > sc->adsr.off[1] || msg == 3) {
+ // x-fade to attack
+ sc->adsr_amp[note] = adsr_env(sc, note);
+ sc->adsr_cnt[note] = 0;
+ }
+ }
+ else if (phase >= -1.0 && phase <= 1.0 && vel < 0) {
+ // note off
+ if (sc->adsr_cnt[note] <= sc->adsr.off[1]) {
+ if (sc->adsr_cnt[note] != sc->adsr.off[1]) {
+ // x-fade to release
+ sc->adsr_amp[note] = adsr_env(sc, note);
+ }
+ sc->adsr_cnt[note] = sc->adsr.off[1] + 1;
+ }
+ }
+ else {
+ /* note-on + off in same cycle */
+ sc->miditable[note] = 0;
+ sc->adsr_cnt[note] = 0;
+ sc->phase[note] = -10;
+ return;
+ }
+
+ // synthesize actual sound
+ sc->synthesize(sc, note, vol, rs->freqs[note], n_samples, left, right);
+
+ if (sc->adsr_cnt[note] == 0) {
+ //printf("Note %d,%d released\n", chn, note);
+ sc->miditable[note] = 0;
+ sc->adsr_amp[note] = 0;
+ sc->phase[note] = -10;
+ sc->keycomp--;
+ //printf("[off] Now %d keys active on chn %d\n", sc->keycomp, chn);
+ }
+}
+
+/* synthesize a BUFFER_SIZE_SAMPLES's of audio-data */
+static void synth_fragment (void *synth, const size_t n_samples, float *left, float *right) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ memset (left, 0, n_samples * sizeof(float));
+ memset (right, 0, n_samples * sizeof(float));
+ uint8_t keycomp = 0;
+ int c,k;
+ size_t i;
+
+ for (c=0; c < 16; ++c) {
+ for (k=0; k < 128; ++k) {
+ if (rs->sc[c].miditable[k] == 0) continue;
+ process_key(synth, c, k, n_samples, left, right);
+ }
+ keycomp += rs->sc[c].keycomp;
+ }
+
+#if 1 // key-compression
+ float kctgt = 8.0 / (float)(keycomp + 7.0);
+ if (kctgt < .5) kctgt = .5;
+ if (kctgt > 1.0) kctgt = 1.0;
+ const float _w = rs->kcfilt;
+ for (i=0; i < n_samples; ++i) {
+ rs->kcgain += _w * (kctgt - rs->kcgain);
+ left[i] *= rs->kcgain;
+ right[i] *= rs->kcgain;
+ }
+ rs->kcgain += 1e-12;
+#endif
+}
+
+static void synth_reset_channel(RSSynthChannel* sc) {
+ int k;
+ for (k=0; k < 128; ++k) {
+ sc->adsr_cnt[k] = 0;
+ sc->adsr_amp[k] = 0;
+ sc->phase[k] = -10;
+ sc->miditable[k] = 0;
+ sc->midimsgs[k] = 0;
+ }
+ sc->keycomp = 0;
+}
+
+static void synth_reset(void *synth) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ int c;
+ for (c=0; c < 16; ++c) {
+ synth_reset_channel(&(rs->sc[c]));
+ }
+ rs->kcgain = 0;
+}
+
+static void synth_load(RSSynthChannel *sc, const double rate,
+ SynthFunction synthesize,
+ ADSRcfg const * const adsr) {
+ synth_reset_channel(sc);
+ init_adsr(&sc->adsr, rate,
+ adsr->tme[0], adsr->tme[1], adsr->tme[2],
+ adsr->vol[0], adsr->vol[1]);
+ sc->synthesize = synthesize;
+}
+
+
+/**
+ * internal abstraction of MIDI data handling
+ */
+static void synth_process_midi_event(void *synth, struct rmidi_event_t *ev) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ switch(ev->type) {
+ case NOTE_ON:
+ rs->sc[ev->channel].midimsgs[ev->d.tone.note] |= 1;
+ if (rs->sc[ev->channel].miditable[ev->d.tone.note] <= 0)
+ rs->sc[ev->channel].miditable[ev->d.tone.note] = ev->d.tone.velocity;
+ break;
+ case NOTE_OFF:
+ rs->sc[ev->channel].midimsgs[ev->d.tone.note] |= 2;
+ if (rs->sc[ev->channel].miditable[ev->d.tone.note] > 0)
+ rs->sc[ev->channel].miditable[ev->d.tone.note] *= -1.0;
+ break;
+ case PROGRAM_CHANGE:
+ break;
+ case CONTROL_CHANGE:
+ if (ev->d.control.param == 0x00 || ev->d.control.param == 0x20) {
+ /* 0x00 and 0x20 are used for BANK select */
+ break;
+ } else
+ if (ev->d.control.param == 121) {
+ /* reset all controllers */
+ break;
+ } else
+ if (ev->d.control.param == 120 || ev->d.control.param == 123) {
+ /* Midi panic: 120: all sound off, 123: all notes off*/
+ synth_reset_channel(&(rs->sc[ev->channel]));
+ break;
+ } else
+ if (ev->d.control.param >= 120) {
+ /* params 122-127 are reserved - skip them. */
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+/******************************************************************************
+ * PUBLIC API (used by lv2.c)
+ */
+
+/**
+ * align LV2 and internal synth buffers
+ * call synth_fragment as often as needed for the given LV2 buffer size
+ *
+ * @param synth synth-handle
+ * @param written samples written so far (offset in \ref out)
+ * @param nframes total samples to synthesize and write to the \out buffer
+ * @param out pointer to stereo output buffers
+ * @return end of buffer (written + nframes)
+ */
+static uint32_t synth_sound (void *synth, uint32_t written, const uint32_t nframes, float **out) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+
+ while (written < nframes) {
+ uint32_t nremain = nframes - written;
+
+ if (rs->boffset >= BUFFER_SIZE_SAMPLES) {
+ rs->boffset = 0;
+ synth_fragment(rs, BUFFER_SIZE_SAMPLES, rs->buf[0], rs->buf[1]);
+ }
+
+ uint32_t nread = MIN(nremain, (BUFFER_SIZE_SAMPLES - rs->boffset));
+
+ memcpy(&out[0][written], &rs->buf[0][rs->boffset], nread*sizeof(float));
+ memcpy(&out[1][written], &rs->buf[1][rs->boffset], nread*sizeof(float));
+
+ written += nread;
+ rs->boffset += nread;
+ }
+ return written;
+}
+
+/**
+ * parse raw midi-data.
+ *
+ * @param synth synth-handle
+ * @param data 8bit midi message
+ * @param size number of bytes in the midi-message
+ */
+static void synth_parse_midi(void *synth, const uint8_t *data, const size_t size) {
+ if (size < 2 || size > 3) return;
+ // All messages need to be 3 bytes; except program-changes: 2bytes.
+ if (size == 2 && (data[0] & 0xf0) != 0xC0) return;
+
+ struct rmidi_event_t ev;
+
+ ev.channel = data[0]&0x0f;
+ switch (data[0] & 0xf0) {
+ case 0x80:
+ ev.type=NOTE_OFF;
+ ev.d.tone.note=data[1]&0x7f;
+ ev.d.tone.velocity=data[2]&0x7f;
+ break;
+ case 0x90:
+ ev.type=NOTE_ON;
+ ev.d.tone.note=data[1]&0x7f;
+ ev.d.tone.velocity=data[2]&0x7f;
+ break;
+ case 0xB0:
+ ev.type=CONTROL_CHANGE;
+ ev.d.control.param=data[1]&0x7f;
+ ev.d.control.value=data[2]&0x7f;
+ break;
+ case 0xC0:
+ ev.type=PROGRAM_CHANGE;
+ ev.d.control.value=data[1]&0x7f;
+ break;
+ default:
+ return;
+ }
+ synth_process_midi_event(synth, &ev);
+}
+
+static const uint8_t jingle[] = { 71 ,71 ,71 ,71 ,71 ,71 ,71 ,74 ,67 ,69 ,71 ,72 ,72 ,72 ,72 ,72 ,71 ,71 ,71 ,71 ,71 ,69 ,69 ,71 ,69 ,74 ,71 ,71 ,71 ,71 ,71 ,71 ,71 ,74 ,67 ,69 ,71 ,72 ,72 ,72 ,72 ,72 ,71 ,71 ,71 ,71 ,74 ,74 ,72 ,69 ,67 ,62 ,62 ,71 ,69 ,67 ,62 ,62 ,62 ,62 ,71 ,69 ,67 ,64 ,64 ,64 ,72 ,71 ,69 ,66 ,74 ,76 ,74 ,72 ,69 ,71 ,62 ,62 ,71 ,69 ,67 ,62 ,62 ,62 ,62 ,71 ,69 ,67 ,64 ,64 ,64 ,72 ,71 ,69 ,74 ,74 ,74 ,74 ,76 ,74 ,72 ,69 ,67 ,74 ,71 ,71 ,71 ,71 ,71 ,71 ,71 ,74 ,67 ,69 ,71 ,72 ,72 ,72 ,72 ,72 ,71 ,71 ,71 ,71 ,71 ,69 ,69 ,71 ,69 ,74 ,71 ,71 ,71 ,71 ,71 ,71 ,71 ,74 ,67 ,69 ,71 ,72 ,72 ,72 ,72 ,72 ,71 ,71 ,71 ,71 ,74 ,74 ,72 ,69 ,67 };
+
+static void synth_parse_xmas(void *synth, const uint8_t *data, const size_t size) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ if (size < 2 || size > 3) return;
+ // All messages need to be 3 bytes; except program-changes: 2bytes.
+ if (size == 2 && (data[0] & 0xf0) != 0xC0) return;
+
+ struct rmidi_event_t ev;
+
+ ev.channel = data[0]&0x0f;
+ switch (data[0] & 0xf0) {
+ case 0x80:
+ ev.type=NOTE_OFF;
+ ev.d.tone.note=jingle[rs->xmas_off++];
+ ev.d.tone.velocity=data[2]&0x7f;
+ if (rs->xmas_off >= sizeof(jingle)) rs->xmas_off = 0;
+ break;
+ case 0x90:
+ ev.type=NOTE_ON;
+ ev.d.tone.note=jingle[rs->xmas_on++];
+ ev.d.tone.velocity=data[2]&0x7f;
+ if (rs->xmas_on >= sizeof(jingle)) rs->xmas_on = 0;
+ break;
+ case 0xB0:
+ ev.type=CONTROL_CHANGE;
+ ev.d.control.param=data[1]&0x7f;
+ ev.d.control.value=data[2]&0x7f;
+ break;
+ case 0xC0:
+ ev.type=PROGRAM_CHANGE;
+ ev.d.control.value=data[1]&0x7f;
+ break;
+ default:
+ return;
+ }
+ synth_process_midi_event(synth, &ev);
+}
+/**
+ * initialize the synth
+ * This should be called after synth_alloc()
+ * as soon as the sample-rate is known
+ *
+ * @param synth synth-handle
+ * @param rate sample-rate
+ */
+static void synth_init(void *synth, double rate) {
+ RSSynthesizer* rs = (RSSynthesizer*)synth;
+ rs->rate = rate;
+ rs->boffset = BUFFER_SIZE_SAMPLES;
+ const float tuning = 440;
+ int c,k;
+ for (k=0; k < 128; k++) {
+ rs->freqs[k] = (tuning / 32.0f) * powf(2, (k - 9.0) / 12.0) / rate;
+ assert(rs->freqs[k] < M_PI/2); // otherwise spatialization may phase out..
+ }
+ rs->kcfilt = 12.0 / rate;
+ synth_reset(synth);
+
+ for (c=0; c < 16; c++) {
+ synth_load(&rs->sc[c], rate, &synthesize_sineP, &piano_adsr);
+ }
+ rs->xmas_on = 0;
+ rs->xmas_off = 0;
+}
+
+/**
+ * Allocate data-structure, create a handle for all other synth_* functions.
+ *
+ * This data should be freeded with \ref synth_free when the synth is no
+ * longer needed.
+ *
+ * The synth can only be used after calling \rev synth_init as well.
+ *
+ * @return synth-handle
+ */
+static void * synth_alloc(void) {
+ return calloc(1, sizeof(RSSynthesizer));
+}
+
+/**
+ * release synth data structure
+ * @param synth synth-handle
+ */
+static void synth_free(void *synth) {
+ free(synth);
+}
+/* vi:set ts=8 sts=2 sw=2 et: */
diff --git a/libs/plugins/reasonablesynth.lv2/wscript b/libs/plugins/reasonablesynth.lv2/wscript
new file mode 100644
index 0000000000..db0bf0af8a
--- /dev/null
+++ b/libs/plugins/reasonablesynth.lv2/wscript
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+import os
+import re
+import shutil
+import waflib.extras.autowaf as autowaf
+from waflib import Options
+
+# Mandatory variables
+top = '.'
+out = 'build'
+
+def options(opt):
+ autowaf.set_options(opt)
+
+def configure(conf):
+ conf.load('compiler_c')
+ autowaf.configure(conf)
+ if Options.options.lv2:
+ autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
+ uselib_store='LV2_1_0_0')
+
+def build(bld):
+ bundle = 'reasonablesynth.lv2'
+ module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
+ module_ext = module_pat[module_pat.rfind('.'):]
+
+ if bld.is_defined ('HAVE_LV2'):
+ # Build RDF files
+ for i in ['manifest.ttl', 'reasonablesynth.ttl']:
+ bld(features = 'subst',
+ source = i + '.in',
+ target = '../../LV2/%s/%s' % (bundle, i),
+ install_path = '${LV2DIR}/%s' % bundle,
+ LIB_EXT = module_ext)
+
+ # Build plugin library
+ obj = bld(features = 'c cshlib',
+ source = 'lv2.c',
+ dep_files = 'rsynth.c',
+ name = 'reasonablesynth',
+ target = '../../LV2/%s/reasonablesynth' % bundle,
+ install_path = '${LV2DIR}/%s' % bundle,
+ use = 'LV2_1_0_0'
+ )
+ obj.env.cshlib_PATTERN = module_pat
+
+# vi:set ts=4 sw=4 et:
diff --git a/libs/qm-dsp/wscript b/libs/qm-dsp/wscript
index fb25d6dbaf..96d0b629dd 100644
--- a/libs/qm-dsp/wscript
+++ b/libs/qm-dsp/wscript
@@ -47,6 +47,7 @@ def build(bld):
maths/MathUtilities.cpp
base/Pitch.cpp
'''
+ autowaf.ensure_visible_symbols (obj, True)
obj.export_includes = ['.']
obj.includes = ['.']
obj.name = 'libqmdsp'
diff --git a/libs/rubberband/COPYING b/libs/rubberband/COPYING
deleted file mode 100644
index c7aea1896f..0000000000
--- a/libs/rubberband/COPYING
+++ /dev/null
@@ -1,280 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
diff --git a/libs/rubberband/Makefile.in b/libs/rubberband/Makefile.in
deleted file mode 100644
index 9d4666ffaf..0000000000
--- a/libs/rubberband/Makefile.in
+++ /dev/null
@@ -1,189 +0,0 @@
-
-CXX := @CXX@
-CXXFLAGS := -DUSE_PTHREADS -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ -Irubberband -Isrc $(OPTFLAGS)
-LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS)
-
-LIBRARY_LIBS := @SRC_LIBS@ @FFTW_LIBS@
-PROGRAM_LIBS := @SNDFILE_LIBS@ $(LIBRARY_LIBS)
-VAMP_PLUGIN_LIBS := @Vamp_LIBS@ $(LIBRARY_LIBS)
-LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
-
-MKDIR := mkdir
-AR := ar
-
-DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic
-DYNAMIC_EXTENSION := .so
-
-PROGRAM_TARGET := bin/rubberband
-STATIC_TARGET := lib/librubberband.a
-DYNAMIC_TARGET := lib/librubberband$(DYNAMIC_EXTENSION)
-VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
-LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
-
-INSTALL_BINDIR := @prefix@/bin
-INSTALL_INCDIR := @prefix@/include/rubberband
-INSTALL_LIBDIR := @prefix@/lib
-INSTALL_VAMPDIR := @prefix@/lib/vamp
-INSTALL_LADSPADIR := @prefix@/lib/ladspa
-INSTALL_PKGDIR := @prefix@/lib/pkgconfig
-
-all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
-
-PUBLIC_INCLUDES := \
- rubberband/TimeStretcher.h \
- rubberband/RubberBandStretcher.h
-
-LIBRARY_INCLUDES := \
- src/AudioCurve.h \
- src/ConstantAudioCurve.h \
- src/FFT.h \
- src/HighFrequencyAudioCurve.h \
- src/PercussiveAudioCurve.h \
- src/Resampler.h \
- src/RingBuffer.h \
- src/Scavenger.h \
- src/SpectralDifferenceAudioCurve.h \
- src/StretchCalculator.h \
- src/StretcherImpl.h \
- src/StretcherChannelData.h \
- src/Thread.h \
- src/Window.h \
- src/sysutils.h
-
-LIBRARY_SOURCES := \
- src/RubberBandStretcher.cpp \
- src/ConstantAudioCurve.cpp \
- src/HighFrequencyAudioCurve.cpp \
- src/PercussiveAudioCurve.cpp \
- src/AudioCurve.cpp \
- src/Resampler.cpp \
- src/SpectralDifferenceAudioCurve.cpp \
- src/StretchCalculator.cpp \
- src/StretcherImpl.cpp \
- src/StretcherProcess.cpp \
- src/StretcherChannelData.cpp \
- src/FFT.cpp \
- src/Thread.cpp \
- src/sysutils.cpp
-
-PROGRAM_SOURCES := \
- src/main.cpp
-
-VAMP_HEADERS := \
- src/vamp/RubberBandVampPlugin.h
-
-VAMP_SOURCES := \
- src/vamp/RubberBandVampPlugin.cpp \
- src/vamp/libmain.cpp
-
-LADSPA_HEADERS := \
- src/ladspa/RubberBandPitchShifter.h
-
-LADSPA_SOURCES := \
- src/ladspa/RubberBandPitchShifter.cpp \
- src/ladspa/libmain.cpp
-
-LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
-PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
-VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
-LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
-
-$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
- $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(PROGRAM_LIBS) $(LDFLAGS)
-
-$(STATIC_TARGET): $(LIBRARY_OBJECTS)
- $(AR) rsc $@ $^
-
-$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
-
-$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
-
-$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
-
-bin:
- $(MKDIR) $@
-lib:
- $(MKDIR) $@
-
-install: all
- $(MKDIR) -p $(INSTALL_BINDIR)
- $(MKDIR) -p $(INSTALL_INCDIR)
- $(MKDIR) -p $(INSTALL_LIBDIR)
- $(MKDIR) -p $(INSTALL_VAMPDIR)
- $(MKDIR) -p $(INSTALL_LADSPADIR)
- cp $(PROGRAM_TARGET) $(INSTALL_BINDIR)
- cp $(PUBLIC_INCLUDES) $(INSTALL_INCDIR)
- cp $(STATIC_TARGET) $(INSTALL_LIBDIR)
- cp $(DYNAMIC_TARGET) $(INSTALL_LIBDIR)
- cp $(VAMP_TARGET) $(INSTALL_VAMPDIR)
- cp src/vamp/vamp-rubberband.cat $(INSTALL_VAMPDIR)
- cp $(LADSPA_TARGET) $(INSTALL_LADSPADIR)
- cp src/ladspa/ladspa-rubberband.cat $(INSTALL_LADSPADIR)
- sed "s,%PREFIX%,@prefix@," rubberband.pc.in \
- > $(INSTALL_PKGDIR)/rubberband.pc
-
-clean:
- rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
-
-distclean: clean
- rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
-
-# DO NOT DELETE
-
-src/AudioCurve.o: src/AudioCurve.h
-src/ConstantAudioCurve.o: src/ConstantAudioCurve.h src/AudioCurve.h
-src/FFT.o: src/FFT.h src/Thread.h
-src/HighFrequencyAudioCurve.o: src/HighFrequencyAudioCurve.h src/AudioCurve.h
-src/HighFrequencyAudioCurve.o: src/Window.h
-src/main.o: src/sysutils.h
-src/PercussiveAudioCurve.o: src/PercussiveAudioCurve.h src/AudioCurve.h
-src/Resampler.o: src/Resampler.h
-src/RubberBandStretcher.o: src/StretcherImpl.h src/Window.h src/Thread.h
-src/RubberBandStretcher.o: src/RingBuffer.h src/Scavenger.h src/sysutils.h
-src/RubberBandStretcher.o: src/FFT.h
-src/SpectralDifferenceAudioCurve.o: src/SpectralDifferenceAudioCurve.h
-src/SpectralDifferenceAudioCurve.o: src/AudioCurve.h src/Window.h
-src/StretchCalculator.o: src/StretchCalculator.h
-src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h
-src/StretcherChannelData.o: src/Window.h src/Thread.h src/RingBuffer.h
-src/StretcherChannelData.o: src/Scavenger.h src/sysutils.h src/FFT.h
-src/StretcherChannelData.o: src/Resampler.h
-src/StretcherImpl.o: src/StretcherImpl.h src/Window.h src/Thread.h
-src/StretcherImpl.o: src/RingBuffer.h src/Scavenger.h src/sysutils.h
-src/StretcherImpl.o: src/FFT.h src/PercussiveAudioCurve.h src/AudioCurve.h
-src/StretcherImpl.o: src/HighFrequencyAudioCurve.h
-src/StretcherImpl.o: src/SpectralDifferenceAudioCurve.h
-src/StretcherImpl.o: src/ConstantAudioCurve.h src/StretchCalculator.h
-src/StretcherImpl.o: src/StretcherChannelData.h src/Resampler.h
-src/StretcherProcess.o: src/StretcherImpl.h src/Window.h src/Thread.h
-src/StretcherProcess.o: src/RingBuffer.h src/Scavenger.h src/sysutils.h
-src/StretcherProcess.o: src/FFT.h src/PercussiveAudioCurve.h src/AudioCurve.h
-src/StretcherProcess.o: src/HighFrequencyAudioCurve.h
-src/StretcherProcess.o: src/ConstantAudioCurve.h src/StretchCalculator.h
-src/StretcherProcess.o: src/StretcherChannelData.h src/Resampler.h
-src/sysutils.o: src/sysutils.h
-src/Thread.o: src/Thread.h
-src/ConstantAudioCurve.o: src/AudioCurve.h
-src/HighFrequencyAudioCurve.o: src/AudioCurve.h src/Window.h
-src/PercussiveAudioCurve.o: src/AudioCurve.h
-src/RingBuffer.o: src/Scavenger.h src/Thread.h src/sysutils.h
-src/Scavenger.o: src/Thread.h src/sysutils.h
-src/SpectralDifferenceAudioCurve.o: src/AudioCurve.h src/Window.h
-src/StretcherChannelData.o: src/StretcherImpl.h src/Window.h src/Thread.h
-src/StretcherChannelData.o: src/RingBuffer.h src/Scavenger.h src/sysutils.h
-src/StretcherChannelData.o: src/FFT.h
-src/StretcherImpl.o: src/Window.h src/Thread.h src/RingBuffer.h
-src/StretcherImpl.o: src/Scavenger.h src/sysutils.h src/FFT.h
-src/vamp/libmain.o: src/vamp/RubberBandVampPlugin.h
-src/vamp/RubberBandVampPlugin.o: src/vamp/RubberBandVampPlugin.h
-src/vamp/RubberBandVampPlugin.o: src/StretchCalculator.h
-src/ladspa/libmain.o: src/ladspa/RubberBandPitchShifter.h src/RingBuffer.h
-src/ladspa/libmain.o: src/Scavenger.h src/Thread.h src/sysutils.h
-src/ladspa/RubberBandPitchShifter.o: src/ladspa/RubberBandPitchShifter.h
-src/ladspa/RubberBandPitchShifter.o: src/RingBuffer.h src/Scavenger.h
-src/ladspa/RubberBandPitchShifter.o: src/Thread.h src/sysutils.h
-src/ladspa/RubberBandPitchShifter.o: src/RingBuffer.h src/Scavenger.h
-src/ladspa/RubberBandPitchShifter.o: src/Thread.h src/sysutils.h
diff --git a/libs/rubberband/README b/libs/rubberband/README
deleted file mode 100644
index 178234e9b5..0000000000
--- a/libs/rubberband/README
+++ /dev/null
@@ -1,158 +0,0 @@
-
-Rubber Band
-===========
-
-An audio time-stretching and pitch-shifting library and utility program.
-
-Copyright 2007 Chris Cannam, cannam@all-day-breakfast.com.
-
-Distributed under the GNU General Public License.
-
-Rubber Band is a library and utility program that permits you to
-change the tempo and pitch of an audio recording independently of one
-another.
-
-
-Attractive features
-~~~~~~~~~~~~~~~~~~~
-
- * High quality results suitable for musical use
-
- Rubber Band is a phase-vocoder-based frequency domain time
- stretcher with partial phase locking to peak frequencies and phase
- resynchronisation at noisy transients. It is suitable for most
- musical uses with its default settings, and has a range of options
- for fine tuning.
-
- * Real-time capable
-
- In addition to the offline mode (for use in situations where all
- audio data is available beforehand), Rubber Band supports a true
- real-time, lock-free streaming mode, in which the time and pitch
- scaling ratios may be dynamically adjusted during use.
-
- * Sample-accurate duration adjustment
-
- In offline mode, Rubber Band ensures that the output has exactly
- the right number of samples for the given stretch ratio. (In
- real-time mode Rubber Band aims to keep as closely as possible to
- the exact ratio, although this depends on the audio material
- itself.)
-
- * Multiprocessor/multi-core support
-
- Rubber Band's offline mode can take advantage of more than one
- processor core if available, when processing data with two or more
- audio channels.
-
- * No job too big, or too small
-
- Rubber Band is tuned so as to work well with the default settings
- for any stretch ratio, from tiny deviations from the original
- speed to very extreme stretches.
-
- * Handy utilities included
-
- The Rubber Band code includes a useful command-line time-stretch
- and pitch shift utility (called simply rubberband), two LADSPA
- pitch shifter plugins (Rubber Band Mono Pitch Shifter and Rubber
- Band Stereo Pitch Shifter), and a Vamp audio analysis plugin which
- may be used to inspect the stretch profile decisions Rubber Band
- is taking.
-
- * Free Software
-
- Rubber Band is Free Software published under the GNU General
- Public License.
-
-
-Limitations
-~~~~~~~~~~~
-
- * Not especially fast
-
- The algorithm used by Rubber Band is very processor intensive, and
- Rubber Band is not the fastest implementation on earth.
-
- * Not especially state of the art
-
- Rubber Band employs well known algorithms which work well in many
- situations, but it isn't "cutting edge" in any interesting sense.
-
- * Relatively complex
-
- While the fundamental algorithms in Rubber Band are not especially
- complex, the implementation is complicated by the support for
- multiple processing modes, exact sample precision, threading, and
- other features that add to the flexibility of the API.
-
-
-Compiling Rubber Band
----------------------
-
-Rubber Band is supplied with build scripts that have been tested on
-Linux platforms. It is also possible to build Rubber Band on other
-platforms, including both POSIX platforms such as OS/X and non-POSIX
-platforms such as Win32. There are some example Makefiles in the misc
-directory, but if you're using a proprietary platform and you get
-stuck I'm afraid you're on your own, unless you want to pay us...
-
-To build Rubber Band you will also need libsndfile, libsamplerate,
-FFTW3, the Vamp plugin SDK, the LADSPA plugin header, the pthread
-library (except on Win32), and a C++ compiler. The code has been
-tested with GCC 4.x and with the Intel C++ compiler.
-
-Rubber Band comes with a simple autoconf script. Run
-
- $ ./configure
- $ make
-
-to compile, and optionally
-
- # make install
-
-to install.
-
-
-Using the Rubber Band utility
------------------------------
-
-The Rubber Band command-line utility builds as bin/rubberband. The
-basic incantation is
-
- $ rubberband -t <timeratio> -p <pitchratio> <infile.wav> <outfile.wav>
-
-For example,
-
- $ rubberband -t 1.5 -p 2.0 test.wav output.wav
-
-stretches the file test.wav to 50% longer than its original duration,
-shifts it up in pitch by one octave, and writes the output to output.wav.
-
-Several further options are available: run "rubberband -h" for help.
-In particular, different types of music may benefit from different
-"crispness" options (-c <n> where <n> is from 0 to 5).
-
-
-Using the Rubber Band library
------------------------------
-
-The Rubber Band library has a public API that consists of one C++
-class, called RubberBandStretcher in the RubberBand namespace. You
-should #include <rubberband/RubberBandStretcher.h> to use this class.
-There is extensive documentation in the class header.
-
-The source code for the command-line utility (src/main.cpp) provides a
-good example of how to use Rubber Band in offline mode; the LADSPA
-pitch shifter plugin (src/ladspa/RubberBandPitchShifter.cpp) may be
-used as an example of Rubber Band in real-time mode.
-
-IMPORTANT: Please ensure you have read and understood the licensing
-terms for Rubber Band before using it in another application. This
-library is provided under the GNU General Public License, which means
-that any application that uses it must also be published under the GPL
-or a compatible license (i.e. with its full source code also available
-for modification and redistribution). See the file COPYING for more
-details. Alternative commercial and proprietary licensing terms are
-available; please contact the author if you are interested.
-
diff --git a/libs/rubberband/configure.ac b/libs/rubberband/configure.ac
deleted file mode 100644
index 83da151ba3..0000000000
--- a/libs/rubberband/configure.ac
+++ /dev/null
@@ -1,38 +0,0 @@
-
-AC_INIT(RubberBand, 0.1, cannam@all-day-breakfast.com)
-
-AC_CONFIG_SRCDIR(src/StretcherImpl.h)
-AC_PROG_CXX
-AC_HEADER_STDC
-AC_C_BIGENDIAN
-
-PKG_CHECK_MODULES([SRC],[samplerate])
-AC_SUBST(SRC_CFLAGS)
-AC_SUBST(SRC_LIBS)
-
-PKG_CHECK_MODULES([SNDFILE],[sndfile])
-AC_SUBST(SNDFILE_CFLAGS)
-AC_SUBST(SNDFILE_LIBS)
-
-PKG_CHECK_MODULES([FFTW],[fftw3])
-AC_SUBST(FFTW_CFLAGS)
-AC_SUBST(FFTW_LIBS)
-
-AC_CHECK_HEADERS(ladspa.h)
-AC_CHECK_HEADERS(pthread.h)
-
-PKG_CHECK_MODULES([Vamp],[vamp-sdk])
-AC_SUBST(Vamp_CFLAGS)
-AC_SUBST(Vamp_LIBS)
-
-changequote(,)dnl
-if test "x$GCC" = "xyes"; then
- case " $CXXFLAGS " in
- *[\ \ ]-fPIC\ -Wall[\ \ ]*) ;;
- *) CXXFLAGS="$CXXFLAGS -fPIC -Wall" ;;
- esac
-fi
-changequote([,])dnl
-
-AC_OUTPUT([Makefile])
-
diff --git a/libs/rubberband/misc/Makefile.osx b/libs/rubberband/misc/Makefile.osx
deleted file mode 100644
index ecef7ab164..0000000000
--- a/libs/rubberband/misc/Makefile.osx
+++ /dev/null
@@ -1,144 +0,0 @@
-
-CXX = g++
-CXXFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O3 -arch i386 -arch ppc -msse -msse2 -I../include -I../vamp-plugin-sdk -Irubberband -Isrc
-LDFLAGS = -L../lib -L../vamp-plugin-sdk/vamp-sdk
-
-LIBRARY_LIBS = -lsamplerate -lfftw3 -lfftw3f
-PROGRAM_LIBS = -lsndfile $(LIBRARY_LIBS)
-VAMP_PLUGIN_LIBS = -lvamp-sdk $(LIBRARY_LIBS)
-LADSPA_PLUGIN_LIBS = $(LIBRARY_LIBS)
-
-MKDIR = mkdir
-AR = ar
-
-PROGRAM_TARGET := bin/rubberband
-STATIC_TARGET := lib/librubberband.a
-DYNAMIC_TARGET := lib/librubberband.dylib
-VAMP_TARGET := lib/vamp-rubberband.dylib
-LADSPA_TARGET := lib/ladspa-rubberband.dylib
-
-#DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic
-DYNAMIC_LDFLAGS := -dynamiclib
-
-all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
-
-PUBLIC_INCLUDES := \
- rubberband/TimeStretcher.h \
- rubberband/RubberBandStretcher.h
-
-LIBRARY_INCLUDES := \
- src/AudioCurve.h \
- src/ConstantAudioCurve.h \
- src/FFT.h \
- src/HighFrequencyAudioCurve.h \
- src/PercussiveAudioCurve.h \
- src/Resampler.h \
- src/RingBuffer.h \
- src/Scavenger.h \
- src/StretchCalculator.h \
- src/StretcherImpl.h \
- src/StretcherChannelData.h \
- src/Thread.h \
- src/Window.h \
- src/sysutils.h
-
-LIBRARY_SOURCES := \
- src/RubberBandStretcher.cpp \
- src/ConstantAudioCurve.cpp \
- src/HighFrequencyAudioCurve.cpp \
- src/PercussiveAudioCurve.cpp \
- src/AudioCurve.cpp \
- src/Resampler.cpp \
- src/StretchCalculator.cpp \
- src/StretcherImpl.cpp \
- src/StretcherProcess.cpp \
- src/StretcherChannelData.cpp \
- src/FFT.cpp \
- src/Thread.cpp \
- src/sysutils.cpp
-
-PROGRAM_SOURCES := \
- src/main.cpp
-
-VAMP_HEADERS := \
- src/vamp/RubberBandVampPlugin.h
-
-VAMP_SOURCES := \
- src/vamp/RubberBandVampPlugin.cpp \
- src/vamp/libmain.cpp
-
-LADSPA_HEADERS := \
- src/ladspa/RubberBandPitchShifter.h
-
-LADSPA_SOURCES := \
- src/ladspa/RubberBandPitchShifter.cpp \
- src/ladspa/libmain.cpp
-
-LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
-PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
-VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
-LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
-
-$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
- $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(PROGRAM_LIBS) $(LDFLAGS)
-
-$(STATIC_TARGET): $(LIBRARY_OBJECTS)
- $(AR) rsc $@ $^
-
-$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
-
-$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
-
-$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
- $(CXX) $(DYNAMIC_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
-
-bin:
- $(MKDIR) $@
-lib:
- $(MKDIR) $@
-
-clean:
- rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
-
-distclean: clean
- rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
-
-# DO NOT DELETE
-
-src/AudioCurve.o: src/AudioCurve.h
-src/ConstantAudioCurve.o: src/ConstantAudioCurve.h src/AudioCurve.h
-src/FFT.o: src/FFT.h src/Thread.h
-src/HighFrequencyAudioCurve.o: src/HighFrequencyAudioCurve.h src/AudioCurve.h
-src/HighFrequencyAudioCurve.o: src/Window.h
-src/main.o: rubberband/RubberBandStretcher.h rubberband/TimeStretcher.h
-src/PercussiveAudioCurve.o: src/PercussiveAudioCurve.h src/AudioCurve.h
-src/Resampler.o: src/Resampler.h
-src/RubberBandStretcher.o: src/StretcherImpl.h
-src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
-src/RubberBandStretcher.o: rubberband/TimeStretcher.h src/Window.h
-src/RubberBandStretcher.o: src/Thread.h src/RingBuffer.h src/Scavenger.h
-src/RubberBandStretcher.o: src/FFT.h src/sysutils.h
-src/StretchCalculator.o: src/StretchCalculator.h
-src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h
-src/StretcherChannelData.o: rubberband/RubberBandStretcher.h
-src/StretcherChannelData.o: rubberband/TimeStretcher.h src/Window.h
-src/StretcherChannelData.o: src/Thread.h src/RingBuffer.h src/Scavenger.h
-src/StretcherChannelData.o: src/FFT.h src/sysutils.h src/Resampler.h
-src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h
-src/StretcherImpl.o: rubberband/TimeStretcher.h src/Window.h src/Thread.h
-src/StretcherImpl.o: src/RingBuffer.h src/Scavenger.h src/FFT.h
-src/StretcherImpl.o: src/sysutils.h src/PercussiveAudioCurve.h
-src/StretcherImpl.o: src/AudioCurve.h src/HighFrequencyAudioCurve.h
-src/StretcherImpl.o: src/ConstantAudioCurve.h src/StretchCalculator.h
-src/StretcherImpl.o: src/StretcherChannelData.h src/Resampler.h
-src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h
-src/StretcherProcess.o: rubberband/TimeStretcher.h src/Window.h src/Thread.h
-src/StretcherProcess.o: src/RingBuffer.h src/Scavenger.h src/FFT.h
-src/StretcherProcess.o: src/sysutils.h src/PercussiveAudioCurve.h
-src/StretcherProcess.o: src/AudioCurve.h src/HighFrequencyAudioCurve.h
-src/StretcherProcess.o: src/ConstantAudioCurve.h src/StretchCalculator.h
-src/StretcherProcess.o: src/StretcherChannelData.h src/Resampler.h
-src/sysutils.o: src/sysutils.h
-src/Thread.o: src/Thread.h
diff --git a/libs/rubberband/repopulate b/libs/rubberband/repopulate
deleted file mode 100755
index 5a5ca263f6..0000000000
--- a/libs/rubberband/repopulate
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-#
-# this script copies the relevant files from $1 into this
-# working copy of the repository, adds new files and
-# prints a list of mods for SConscript
-#
-
-from=$1
-#strip=`dirname $1`
-strip=$1
-
-echo "Looking for copies in $from ... will strip $strip"
-
-for file in `find $from \( -name \*.cpp -o -name \*.h -o -name \*.c \)`
-do
- src=$file
- copy=`echo $file | sed "s?$strip/??"`
- echo "Look for $copy"
- if [ -f $copy ] ; then
- cp $src $copy
- echo "copy $copy"
- else
- echo "ADD $copy"
- cp $src $copy
- svn add $copy
- fi
-done \ No newline at end of file
diff --git a/libs/rubberband/rubberband.pc.in b/libs/rubberband/rubberband.pc.in
deleted file mode 100644
index 580fea38f2..0000000000
--- a/libs/rubberband/rubberband.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=%PREFIX%
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: rubberband
-Version: 1.0
-Description:
-Libs: -L${libdir} -lrubberband
-Cflags: -I${includedir}
diff --git a/libs/rubberband/rubberband/RubberBandStretcher.h b/libs/rubberband/rubberband/RubberBandStretcher.h
deleted file mode 100644
index 48343c70c9..0000000000
--- a/libs/rubberband/rubberband/RubberBandStretcher.h
+++ /dev/null
@@ -1,563 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBANDSTRETCHER_H_
-#define _RUBBERBANDSTRETCHER_H_
-
-#define RUBBERBAND_VERSION "1.3.0-gpl"
-#define RUBBERBAND_API_MAJOR_VERSION 2
-#define RUBBERBAND_API_MINOR_VERSION 0
-
-#include <cstddef>
-#include <vector>
-
-/**
- * @mainpage RubberBand
- *
- * The Rubber Band API is contained in the single class
- * RubberBand::RubberBandStretcher.
- *
- * Threading notes for real-time applications:
- *
- * Multiple instances of RubberBandStretcher may be created and used
- * in separate threads concurrently. However, for any single instance
- * of RubberBandStretcher, you may not call process() more than once
- * concurrently, and you may not change the time or pitch ratio while
- * a process() call is being executed (if the stretcher was created in
- * "real-time mode"; in "offline mode" you can't change the ratios
- * during use anyway).
- *
- * So you can run process() in its own thread if you like, but if you
- * want to change ratios dynamically from a different thread, you will
- * need some form of mutex in your code. Changing the time or pitch
- * ratio is real-time safe except in extreme circumstances, so for
- * most applications that may change these dynamically it probably
- * makes most sense to do so from the same thread as calls process(),
- * even if that is a real-time thread.
- */
-
-namespace RubberBand
-{
-
-class RubberBandStretcher
-{
-public:
- /**
- * Processing options for the timestretcher. The preferred
- * options should normally be set in the constructor, as a bitwise
- * OR of the option flags. The default value (DefaultOptions) is
- * intended to give good results in most situations.
- *
- * 1. Flags prefixed \c OptionProcess determine how the timestretcher
- * will be invoked. These options may not be changed after
- * construction.
- *
- * \li \c OptionProcessOffline - Run the stretcher in offline
- * mode. In this mode the input data needs to be provided
- * twice, once to study(), which calculates a stretch profile
- * for the audio, and once to process(), which stretches it.
- *
- * \li \c OptionProcessRealTime - Run the stretcher in real-time
- * mode. In this mode only process() should be called, and the
- * stretcher adjusts dynamically in response to the input audio.
- *
- * The Process setting is likely to depend on your architecture:
- * non-real-time operation on seekable files: Offline; real-time
- * or streaming operation: RealTime.
- *
- * 2. Flags prefixed \c OptionStretch control the profile used for
- * variable timestretching. Rubber Band always adjusts the
- * stretch profile to minimise stretching of busy broadband
- * transient sounds, but the degree to which it does so is
- * adjustable. These options may not be changed after
- * construction.
- *
- * \li \c OptionStretchElastic - Only meaningful in offline
- * mode, and the default in that mode. The audio will be
- * stretched at a variable rate, aimed at preserving the quality
- * of transient sounds as much as possible. The timings of low
- * activity regions between transients may be less exact than
- * when the precise flag is set.
- *
- * \li \c OptionStretchPrecise - Although still using a variable
- * stretch rate, the audio will be stretched so as to maintain
- * as close as possible to a linear stretch ratio throughout.
- * Timing may be better than when using \c OptionStretchElastic, at
- * slight cost to the sound quality of transients. This setting
- * is always used when running in real-time mode.
- *
- * 3. Flags prefixed \c OptionTransients control the component
- * frequency phase-reset mechanism that may be used at transient
- * points to provide clarity and realism to percussion and other
- * significant transient sounds. These options may be changed
- * after construction when running in real-time mode, but not when
- * running in offline mode.
- *
- * \li \c OptionTransientsCrisp - Reset component phases at the
- * peak of each transient (the start of a significant note or
- * percussive event). This, the default setting, usually
- * results in a clear-sounding output; but it is not always
- * consistent, and may cause interruptions in stable sounds
- * present at the same time as transient events.
- *
- * \li \c OptionTransientsMixed - Reset component phases at the
- * peak of each transient, outside a frequency range typical of
- * musical fundamental frequencies. The results may be more
- * regular for mixed stable and percussive notes than
- * \c OptionTransientsCrisp, but with a "phasier" sound. The
- * balance may sound very good for certain types of music and
- * fairly bad for others.
- *
- * \li \c OptionTransientsSmooth - Do not reset component phases
- * at any point. The results will be smoother and more regular
- * but may be less clear than with either of the other
- * transients flags.
- *
- * 4. Flags prefixed \c OptionPhase control the adjustment of
- * component frequency phases from one analysis window to the next
- * during non-transient segments. These options may be changed at
- * any time.
- *
- * \li \c OptionPhaseLaminar - Adjust phases when stretching in
- * such a way as to try to retain the continuity of phase
- * relationships between adjacent frequency bins whose phases
- * are behaving in similar ways. This, the default setting,
- * should give good results in most situations.
- *
- * \li \c OptionPhaseIndependent - Adjust the phase in each
- * frequency bin independently from its neighbours. This
- * usually results in a slightly softer, phasier sound.
- *
- * 5. Flags prefixed \c OptionThreading control the threading
- * model of the stretcher. These options may not be changed after
- * construction.
- *
- * \li \c OptionThreadingAuto - Permit the stretcher to
- * determine its own threading model. Usually this means using
- * one processing thread per audio channel in offline mode if
- * the stretcher is able to determine that more than one CPU is
- * available, and one thread only in realtime mode.
- *
- * \li \c OptionThreadingNever - Never use more than one thread.
- *
- * \li \c OptionThreadingAlways - Use multiple threads in any
- * situation where \c OptionThreadingAuto would do so, except omit
- * the check for multiple CPUs and instead assume it to be true.
- *
- * 6. Flags prefixed \c OptionWindow control the window size for
- * FFT processing. The window size actually used will depend on
- * many factors, but it can be influenced. These options may not
- * be changed after construction.
- *
- * \li \c OptionWindowStandard - Use the default window size.
- * The actual size will vary depending on other parameters.
- * This option is expected to produce better results than the
- * other window options in most situations.
- *
- * \li \c OptionWindowShort - Use a shorter window. This may
- * result in crisper sound for audio that depends strongly on
- * its timing qualities.
- *
- * \li \c OptionWindowLong - Use a longer window. This is
- * likely to result in a smoother sound at the expense of
- * clarity and timing.
- *
- * 7. Flags prefixed \c OptionFormant control the handling of
- * formant shape (spectral envelope) when pitch-shifting. These
- * options may be changed at any time.
- *
- * \li \c OptionFormantShifted - Apply no special formant
- * processing. The spectral envelope will be pitch shifted as
- * normal.
- *
- * \li \c OptionFormantPreserved - Preserve the spectral
- * envelope of the unshifted signal. This permits shifting the
- * note frequency without so substantially affecting the
- * perceived pitch profile of the voice or instrument.
- *
- * 8. Flags prefixed \c OptionPitch control the method used for
- * pitch shifting. These options may be changed at any time.
- * They are only effective in realtime mode; in offline mode, the
- * pitch-shift method is fixed.
- *
- * \li \c OptionPitchHighSpeed - Use a method with a CPU cost
- * that is relatively moderate and predictable. This may
- * sound less clear than OptionPitchHighQuality, especially
- * for large pitch shifts.
-
- * \li \c OptionPitchHighQuality - Use the highest quality
- * method for pitch shifting. This method has a CPU cost
- * approximately proportional to the required frequency shift.
-
- * \li \c OptionPitchHighConsistency - Use the method that gives
- * greatest consistency when used to create small variations in
- * pitch around the 1.0-ratio level. Unlike the previous two
- * options, this avoids discontinuities when moving across the
- * 1.0 pitch scale in real-time; it also consumes more CPU than
- * the others in the case where the pitch scale is exactly 1.0.
- */
-
- enum Option {
-
- OptionProcessOffline = 0x00000000,
- OptionProcessRealTime = 0x00000001,
-
- OptionStretchElastic = 0x00000000,
- OptionStretchPrecise = 0x00000010,
-
- OptionTransientsCrisp = 0x00000000,
- OptionTransientsMixed = 0x00000100,
- OptionTransientsSmooth = 0x00000200,
-
- OptionPhaseLaminar = 0x00000000,
- OptionPhaseIndependent = 0x00002000,
-
- OptionThreadingAuto = 0x00000000,
- OptionThreadingNever = 0x00010000,
- OptionThreadingAlways = 0x00020000,
-
- OptionWindowStandard = 0x00000000,
- OptionWindowShort = 0x00100000,
- OptionWindowLong = 0x00200000,
-
- OptionFormantShifted = 0x00000000,
- OptionFormantPreserved = 0x01000000,
-
- OptionPitchHighSpeed = 0x00000000,
- OptionPitchHighQuality = 0x02000000,
- OptionPitchHighConsistency = 0x04000000
- };
-
- typedef int Options;
-
- enum PresetOption {
- DefaultOptions = 0x00000000,
- PercussiveOptions = 0x00102000
- };
-
- /**
- * Construct a time and pitch stretcher object to run at the given
- * sample rate, with the given number of channels. Processing
- * options and the time and pitch scaling ratios may be provided.
- * The time and pitch ratios may be changed after construction,
- * but most of the options may not. See the option documentation
- * above for more details.
- */
- RubberBandStretcher(size_t sampleRate,
- size_t channels,
- Options options = DefaultOptions,
- double initialTimeRatio = 1.0,
- double initialPitchScale = 1.0);
- ~RubberBandStretcher();
-
- /**
- * Reset the stretcher's internal buffers. The stretcher should
- * subsequently behave as if it had just been constructed
- * (although retaining the current time and pitch ratio).
- */
- void reset();
-
- /**
- * Set the time ratio for the stretcher. This is the ratio of
- * stretched to unstretched duration -- not tempo. For example, a
- * ratio of 2.0 would make the audio twice as long (i.e. halve the
- * tempo); 0.5 would make it half as long (i.e. double the tempo);
- * 1.0 would leave the duration unaffected.
- *
- * If the stretcher was constructed in Offline mode, the time
- * ratio is fixed throughout operation; this function may be
- * called any number of times between construction (or a call to
- * reset()) and the first call to study() or process(), but may
- * not be called after study() or process() has been called.
- *
- * If the stretcher was constructed in RealTime mode, the time
- * ratio may be varied during operation; this function may be
- * called at any time, so long as it is not called concurrently
- * with process(). You should either call this function from the
- * same thread as process(), or provide your own mutex or similar
- * mechanism to ensure that setTimeRatio and process() cannot be
- * run at once (there is no internal mutex for this purpose).
- */
- void setTimeRatio(double ratio);
-
- /**
- * Set the pitch scaling ratio for the stretcher. This is the
- * ratio of target frequency to source frequency. For example, a
- * ratio of 2.0 would shift up by one octave; 0.5 down by one
- * octave; or 1.0 leave the pitch unaffected.
- *
- * To put this in musical terms, a pitch scaling ratio
- * corresponding to a shift of S equal-tempered semitones (where S
- * is positive for an upwards shift and negative for downwards) is
- * pow(2.0, S / 12.0).
- *
- * If the stretcher was constructed in Offline mode, the pitch
- * scaling ratio is fixed throughout operation; this function may
- * be called any number of times between construction (or a call
- * to reset()) and the first call to study() or process(), but may
- * not be called after study() or process() has been called.
- *
- * If the stretcher was constructed in RealTime mode, the pitch
- * scaling ratio may be varied during operation; this function may
- * be called at any time, so long as it is not called concurrently
- * with process(). You should either call this function from the
- * same thread as process(), or provide your own mutex or similar
- * mechanism to ensure that setPitchScale and process() cannot be
- * run at once (there is no internal mutex for this purpose).
- */
- void setPitchScale(double scale);
-
- /**
- * Return the last time ratio value that was set (either on
- * construction or with setTimeRatio()).
- */
- double getTimeRatio() const;
-
- /**
- * Return the last pitch scaling ratio value that was set (either
- * on construction or with setPitchScale()).
- */
- double getPitchScale() const;
-
- /**
- * Return the processing latency of the stretcher. This is the
- * number of audio samples that one would have to discard at the
- * start of the output in order to ensure that the resulting audio
- * aligned with the input audio at the start. In Offline mode,
- * latency is automatically adjusted for and the result is zero.
- * In RealTime mode, the latency may depend on the time and pitch
- * ratio and other options.
- */
- size_t getLatency() const;
-
- /**
- * Change an OptionTransients configuration setting. This may be
- * called at any time in RealTime mode. It may not be called in
- * Offline mode (for which the transients option is fixed on
- * construction).
- */
- void setTransientsOption(Options options);
-
- /**
- * Change an OptionPhase configuration setting. This may be
- * called at any time in any mode.
- *
- * Note that if running multi-threaded in Offline mode, the change
- * may not take effect immediately if processing is already under
- * way when this function is called.
- */
- void setPhaseOption(Options options);
-
- /**
- * Change an OptionFormant configuration setting. This may be
- * called at any time in any mode.
- *
- * Note that if running multi-threaded in Offline mode, the change
- * may not take effect immediately if processing is already under
- * way when this function is called.
- */
- void setFormantOption(Options options);
-
- /**
- * Change an OptionPitch configuration setting. This may be
- * called at any time in RealTime mode. It may not be called in
- * Offline mode (for which the transients option is fixed on
- * construction).
- */
- void setPitchOption(Options options);
-
- /**
- * Tell the stretcher exactly how many input samples it will
- * receive. This is only useful in Offline mode, when it allows
- * the stretcher to ensure that the number of output samples is
- * exactly correct. In RealTime mode no such guarantee is
- * possible and this value is ignored.
- */
- void setExpectedInputDuration(size_t samples);
-
- /**
- * Ask the stretcher how many audio sample frames should be
- * provided as input in order to ensure that some more output
- * becomes available. Normal usage consists of querying this
- * function, providing that number of samples to process(),
- * reading the output using available() and retrieve(), and then
- * repeating.
- *
- * Note that this value is only relevant to process(), not to
- * study() (to which you may pass any number of samples at a time,
- * and from which there is no output).
- */
- size_t getSamplesRequired() const;
-
- /**
- * Tell the stretcher the maximum number of sample frames that you
- * will ever be passing in to a single process() call. If you
- * don't call this function, the stretcher will assume that you
- * never pass in more samples than getSamplesRequired() suggested
- * you should. You should not pass in more samples than that
- * unless you have called setMaxProcessSize first.
- *
- * This function may not be called after the first call to study()
- * or process().
- *
- * Note that this value is only relevant to process(), not to
- * study() (to which you may pass any number of samples at a time,
- * and from which there is no output).
- */
- void setMaxProcessSize(size_t samples);
-
- /**
- * Provide a block of "samples" sample frames for the stretcher to
- * study and calculate a stretch profile from.
- *
- * This is only meaningful in Offline mode, and is required if
- * running in that mode. You should pass the entire input through
- * study() before any process() calls are made, as a sequence of
- * blocks in individual study() calls, or as a single large block.
- *
- * "input" should point to de-interleaved audio data with one
- * float array per channel. "samples" supplies the number of
- * audio sample frames available in "input". If "samples" is
- * zero, "input" may be NULL.
- *
- * Set "final" to true if this is the last block of data that will
- * be provided to study() before the first process() call.
- */
- void study(const float *const *input, size_t samples, bool final);
-
- /**
- * Provide a block of "samples" sample frames for processing.
- * See also getSamplesRequired() and setMaxProcessSize().
- *
- * Set "final" to true if this is the last block of input data.
- */
- void process(const float *const *input, size_t samples, bool final);
-
- /**
- * Ask the stretcher how many audio sample frames of output data
- * are available for reading (via retrieve()).
- *
- * This function returns 0 if no frames are available: this
- * usually means more input data needs to be provided, but if the
- * stretcher is running in threaded mode it may just mean that not
- * enough data has yet been processed. Call getSamplesRequired()
- * to discover whether more input is needed.
- *
- * This function returns -1 if all data has been fully processed
- * and all output read, and the stretch process is now finished.
- */
- int available() const;
-
- /**
- * Obtain some processed output data from the stretcher. Up to
- * "samples" samples will be stored in the output arrays (one per
- * channel for de-interleaved audio data) pointed to by "output".
- * The return value is the actual number of sample frames
- * retrieved.
- */
- size_t retrieve(float *const *output, size_t samples) const;
-
- /**
- * Return the value of internal frequency cutoff value n.
- *
- * This function is not for general use.
- */
- float getFrequencyCutoff(int n) const;
-
- /**
- * Set the value of internal frequency cutoff n to f Hz.
- *
- * This function is not for general use.
- */
- void setFrequencyCutoff(int n, float f);
-
- /**
- * Retrieve the value of the internal input block increment value.
- *
- * This function is provided for diagnostic purposes only.
- */
- size_t getInputIncrement() const;
-
- /**
- * In offline mode, retrieve the sequence of internal block
- * increments for output, for the entire audio data, provided the
- * stretch profile has been calculated. In realtime mode,
- * retrieve any output increments that have accumulated since the
- * last call to getOutputIncrements, to a limit of 16.
- *
- * This function is provided for diagnostic purposes only.
- */
- std::vector<int> getOutputIncrements() const;
-
- /**
- * In offline mode, retrieve the sequence of internal phase reset
- * detection function values, for the entire audio data, provided
- * the stretch profile has been calculated. In realtime mode,
- * retrieve any phase reset points that have accumulated since the
- * last call to getPhaseResetCurve, to a limit of 16.
- *
- * This function is provided for diagnostic purposes only.
- */
- std::vector<float> getPhaseResetCurve() const;
-
- /**
- * In offline mode, retrieve the sequence of internal frames for
- * which exact timing has been sought, for the entire audio data,
- * provided the stretch profile has been calculated. In realtime
- * mode, return an empty sequence.
- *
- * This function is provided for diagnostic purposes only.
- */
- std::vector<int> getExactTimePoints() const;
-
- /**
- * Return the number of channels this stretcher was constructed
- * with.
- */
- size_t getChannelCount() const;
-
- /**
- * Force the stretcher to calculate a stretch profile. Normally
- * this happens automatically for the first process() call in
- * offline mode.
- *
- * This function is provided for diagnostic purposes only.
- */
- void calculateStretch();
-
- /**
- * Set the level of debug output. The value may be from 0 (errors
- * only) to 3 (very verbose, with audible ticks in the output at
- * phase reset points). The default is whatever has been set
- * using setDefaultDebugLevel, or 0 if that function has not been
- * called.
- */
- void setDebugLevel(int level);
-
- /**
- * Set the default level of debug output for subsequently
- * constructed stretchers.
- *
- * @see setDebugLevel
- */
- static void setDefaultDebugLevel(int level);
-
-protected:
- class Impl;
- Impl *m_d;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/rubberband/TimeStretcher.h b/libs/rubberband/rubberband/TimeStretcher.h
deleted file mode 100644
index bad916a75c..0000000000
--- a/libs/rubberband/rubberband/TimeStretcher.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_TIMESTRETCHER_H_
-#define _RUBBERBAND_TIMESTRETCHER_H_
-
-#include <sys/types.h>
-
-namespace RubberBand
-{
-
-/**
- * Base class for time stretchers. RubberBand currently provides only
- * a single subclass implementation.
- *
- * @see RubberBandStretcher
- */
-class TimeStretcher
-{
-public:
- TimeStretcher(size_t sampleRate, size_t channels) :
- m_sampleRate(sampleRate),
- m_channels(channels)
- { }
- virtual ~TimeStretcher()
- { }
-
- virtual void reset() = 0;
- virtual void setTimeRatio(double ratio) = 0;
- virtual void setPitchScale(double scale) = 0;
- virtual size_t getLatency() const = 0;
-
- virtual void study(const float *const *input, size_t samples, bool final) = 0;
- virtual size_t getSamplesRequired() const = 0;
- virtual void process(const float *const *input, size_t samples, bool final) = 0;
- virtual int available() const = 0;
- virtual size_t retrieve(float *const *output, size_t samples) const = 0;
-
-protected:
- size_t m_sampleRate;
- size_t m_channels;
-};
-
-}
-
-#endif
-
diff --git a/libs/rubberband/rubberband/msvc_rubberband.h b/libs/rubberband/rubberband/msvc_rubberband.h
deleted file mode 100644
index 700b11033e..0000000000
--- a/libs/rubberband/rubberband/msvc_rubberband.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- Copyright (C) 2009 John Emmas
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-#ifndef __msvc_rubberband_h__
-#define __msvc_rubberband_h__
-
-#ifdef RUBBERBAND_IS_IN_WIN_STATIC_LIB // #define if your project uses librubberband (under Windows) as a static library
-#define RUBBERBAND_IS_IN_WINDLL 0
-#endif
-
-#if !defined(RUBBERBAND_IS_IN_WINDLL)
- #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
- // If you need '__declspec' compatibility, add extra compilers to the above as necessary
- #define RUBBERBAND_IS_IN_WINDLL 1
- #else
- #define RUBBERBAND_IS_IN_WINDLL 0
- #endif
-#endif
-
-#if RUBBERBAND_IS_IN_WINDLL && !defined(RUBBERBAND_API)
- #if defined(BUILDING_RUBBERBAND)
- #define RUBBERBAND_API __declspec(dllexport)
- #define RUBBERBAND_APICALLTYPE __stdcall
- #elif defined(COMPILER_MSVC) || defined(COMPILER_MINGW) // Probably needs Cygwin too, at some point
- #define RUBBERBAND_API __declspec(dllimport)
- #define RUBBERBAND_APICALLTYPE __stdcall
- #else
- #error "Attempting to define __declspec with an incompatible compiler !"
- #endif
-#elif !defined(RUBBERBAND_API)
- // Other compilers / platforms could be accommodated here
- #define RUBBERBAND_API
- #define RUBBERBAND_APICALLTYPE
- #define GETOPT_API
- #define GETOPT_APICALLTYPE
-#endif
-
-#ifndef GETOPT_API
- #if defined(BUILDING_GETOPT)
- #define GETOPT_API __declspec(dllexport)
- #define GETOPT_APICALLTYPE __cdecl
- #elif defined(COMPILER_MSVC) || defined(COMPILER_MINGW) // Probably needs Cygwin too, at some point
- #define GETOPT_API __declspec(dllimport)
- #define GETOPT_APICALLTYPE __cdecl
- #else
- #error "Attempting to define __declspec with an incompatible compiler !"
- #endif
-#endif // GETOPT_API
-
-#ifdef COMPILER_MSVC
-#include <rpc.h>
-
-#ifndef __THROW
-#define __THROW throw()
-#endif
-
-namespace RubberBand {
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-// These are used to replicate 'dirent.h' functionality
-// RUBBERBAND_API int RUBBERBAND_APICALLTYPE placeholder();
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-} // namespace Rubberband
-
-#endif // COMPILER_MSVC
-#endif // __msvc_rubberband_h__
diff --git a/libs/rubberband/rubberband/rubberband-c.h b/libs/rubberband/rubberband/rubberband-c.h
deleted file mode 100644
index a2cfe7605d..0000000000
--- a/libs/rubberband/rubberband/rubberband-c.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_C_API_H_
-#define _RUBBERBAND_C_API_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define RUBBERBAND_VERSION "1.3.0-gpl"
-#define RUBBERBAND_API_MAJOR_VERSION 2
-#define RUBBERBAND_API_MINOR_VERSION 0
-
-/**
- * This is a C-linkage interface to the Rubber Band time stretcher.
- *
- * This is a wrapper interface: the primary interface is in C++ and is
- * defined and documented in RubberBandStretcher.h. The library
- * itself is implemented in C++, and requires C++ standard library
- * support even when using the C-linkage API.
- *
- * Please see RubberBandStretcher.h for documentation.
- *
- * If you are writing to the C++ API, do not include this header.
- */
-
-enum RubberBandOption {
-
- RubberBandOptionProcessOffline = 0x00000000,
- RubberBandOptionProcessRealTime = 0x00000001,
-
- RubberBandOptionStretchElastic = 0x00000000,
- RubberBandOptionStretchPrecise = 0x00000010,
-
- RubberBandOptionTransientsCrisp = 0x00000000,
- RubberBandOptionTransientsMixed = 0x00000100,
- RubberBandOptionTransientsSmooth = 0x00000200,
-
- RubberBandOptionPhaseLaminar = 0x00000000,
- RubberBandOptionPhaseIndependent = 0x00002000,
-
- RubberBandOptionThreadingAuto = 0x00000000,
- RubberBandOptionThreadingNever = 0x00010000,
- RubberBandOptionThreadingAlways = 0x00020000,
-
- RubberBandOptionWindowStandard = 0x00000000,
- RubberBandOptionWindowShort = 0x00100000,
- RubberBandOptionWindowLong = 0x00200000,
-
- RubberBandOptionFormantShifted = 0x00000000,
- RubberBandOptionFormantPreserved = 0x01000000,
-
- RubberBandOptionPitchHighQuality = 0x00000000,
- RubberBandOptionPitchHighSpeed = 0x02000000,
- RubberBandOptionPitchHighConsistency = 0x04000000
-};
-
-typedef int RubberBandOptions;
-
-struct RubberBandState_;
-typedef struct RubberBandState_ *RubberBandState;
-
-extern RubberBandState rubberband_new(unsigned int sampleRate,
- unsigned int channels,
- RubberBandOptions options,
- double initialTimeRatio,
- double initialPitchScale);
-
-extern void rubberband_delete(RubberBandState);
-
-extern void rubberband_reset(RubberBandState);
-
-extern void rubberband_set_time_ratio(RubberBandState, double ratio);
-extern void rubberband_set_pitch_scale(RubberBandState, double scale);
-
-extern double rubberband_get_time_ratio(const RubberBandState);
-extern double rubberband_get_pitch_scale(const RubberBandState);
-
-extern unsigned int rubberband_get_latency(const RubberBandState);
-
-extern void rubberband_set_transients_option(RubberBandState, RubberBandOptions options);
-extern void rubberband_set_phase_option(RubberBandState, RubberBandOptions options);
-extern void rubberband_set_formant_option(RubberBandState, RubberBandOptions options);
-extern void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options);
-
-extern void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples);
-
-extern unsigned int rubberband_get_samples_required(const RubberBandState);
-
-extern void rubberband_set_max_process_size(RubberBandState, unsigned int samples);
-
-extern void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final);
-extern void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final);
-
-extern int rubberband_available(const RubberBandState);
-extern unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples);
-
-extern unsigned int rubberband_get_channel_count(const RubberBandState);
-
-extern void rubberband_calculate_stretch(RubberBandState);
-
-extern void rubberband_set_debug_level(RubberBandState, int level);
-extern void rubberband_set_default_debug_level(int level);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libs/rubberband/src/AudioCurve.cpp b/libs/rubberband/src/AudioCurve.cpp
deleted file mode 100644
index 8cf247b1db..0000000000
--- a/libs/rubberband/src/AudioCurve.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "AudioCurve.h"
-
-#include <iostream>
-using namespace std;
-
-namespace RubberBand
-{
-
-AudioCurve::AudioCurve(size_t sampleRate, size_t windowSize) :
- m_sampleRate(sampleRate),
- m_windowSize(windowSize)
-{
-}
-
-AudioCurve::~AudioCurve()
-{
-}
-
-float
-AudioCurve::processDouble(const double *R__ mag, size_t increment)
-{
- cerr << "AudioCurve::processDouble: WARNING: Using inefficient and lossy conversion for AudioCurve::process(float)" << endl;
- float *tmp = new float[m_windowSize];
- for (int i = 0; i < int(m_windowSize); ++i) tmp[i] = float(mag[i]);
- float df = process(tmp, increment);
- delete[] tmp;
- return df;
-}
-
-}
diff --git a/libs/rubberband/src/AudioCurve.h b/libs/rubberband/src/AudioCurve.h
deleted file mode 100644
index a34a4aab9a..0000000000
--- a/libs/rubberband/src/AudioCurve.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _AUDIO_CURVE_H_
-#define _AUDIO_CURVE_H_
-
-#include <sys/types.h>
-
-#include "sysutils.h"
-
-namespace RubberBand
-{
-
-class AudioCurve
-{
-public:
- AudioCurve(size_t sampleRate, size_t windowSize);
- virtual ~AudioCurve();
-
- virtual void setWindowSize(size_t newSize) = 0;
-
- virtual float process(const float *R__ mag, size_t increment) = 0;
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset() = 0;
-
-protected:
- size_t m_sampleRate;
- size_t m_windowSize;
-};
-
-}
-
-#endif
-
diff --git a/libs/rubberband/src/ConstantAudioCurve.cpp b/libs/rubberband/src/ConstantAudioCurve.cpp
deleted file mode 100644
index 87867f3cb2..0000000000
--- a/libs/rubberband/src/ConstantAudioCurve.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "ConstantAudioCurve.h"
-
-namespace RubberBand
-{
-
-ConstantAudioCurve::ConstantAudioCurve(size_t sampleRate, size_t windowSize) :
- AudioCurve(sampleRate, windowSize)
-{
-}
-
-ConstantAudioCurve::~ConstantAudioCurve()
-{
-}
-
-void
-ConstantAudioCurve::reset()
-{
-}
-
-void
-ConstantAudioCurve::setWindowSize(size_t newSize)
-{
- m_windowSize = newSize;
-}
-
-float
-ConstantAudioCurve::process(const float *R__, size_t)
-{
- return 1.f;
-}
-
-float
-ConstantAudioCurve::processDouble(const double *R__, size_t)
-{
- return 1.f;
-}
-
-}
-
diff --git a/libs/rubberband/src/ConstantAudioCurve.h b/libs/rubberband/src/ConstantAudioCurve.h
deleted file mode 100644
index 41a2ea0ca5..0000000000
--- a/libs/rubberband/src/ConstantAudioCurve.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _CONSTANT_AUDIO_CURVE_H_
-#define _CONSTANT_AUDIO_CURVE_H_
-
-#include "AudioCurve.h"
-
-namespace RubberBand
-{
-
-class ConstantAudioCurve : public AudioCurve
-{
-public:
- ConstantAudioCurve(size_t sampleRate, size_t windowSize);
- virtual ~ConstantAudioCurve();
-
- virtual void setWindowSize(size_t newSize);
-
- virtual float process(const float *R__ mag, size_t increment);
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset();
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/FFT.cpp b/libs/rubberband/src/FFT.cpp
deleted file mode 100644
index f04f6506d6..0000000000
--- a/libs/rubberband/src/FFT.cpp
+++ /dev/null
@@ -1,1369 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "FFT.h"
-#include "Thread.h"
-#include "Profiler.h"
-
-//#define FFT_MEASUREMENT 1
-
-#ifndef HAVE_FFTW3
-#define HAVE_FFTW3 // for Ardour
-#endif
-
-#ifdef HAVE_FFTW3
-#include <fftw3.h>
-#endif
-
-#include <cstdlib>
-
-#ifdef USE_KISSFFT
-#include "bsd-3rdparty/kissfft/kiss_fftr.h"
-#endif
-
-#ifndef HAVE_FFTW3
-#ifndef USE_KISSFFT
-#ifndef USE_BUILTIN_FFT
-#error No FFT implementation selected!
-#endif
-#endif
-#endif
-
-#include <cmath>
-#include <iostream>
-#include <map>
-#include <cstdio>
-#include <cstdlib>
-#include <vector>
-
-namespace RubberBand {
-
-class FFTImpl
-{
-public:
- virtual ~FFTImpl() { }
-
- virtual void initFloat() = 0;
- virtual void initDouble() = 0;
-
- virtual void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut) = 0;
- virtual void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut) = 0;
- virtual void forwardMagnitude(const double *R__ realIn, double *R__ magOut) = 0;
-
- virtual void forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut) = 0;
- virtual void forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut) = 0;
- virtual void forwardMagnitude(const float *R__ realIn, float *R__ magOut) = 0;
-
- virtual void inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut) = 0;
- virtual void inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut) = 0;
- virtual void inverseCepstral(const double *R__ magIn, double *R__ cepOut) = 0;
-
- virtual void inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut) = 0;
- virtual void inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut) = 0;
- virtual void inverseCepstral(const float *R__ magIn, float *R__ cepOut) = 0;
-
- virtual float *getFloatTimeBuffer() = 0;
- virtual double *getDoubleTimeBuffer() = 0;
-};
-
-namespace FFTs {
-
-
-#ifdef HAVE_FFTW3
-
-// Define FFTW_DOUBLE_ONLY to make all uses of FFTW functions be
-// double-precision (so "float" FFTs are calculated by casting to
-// doubles and using the double-precision FFTW function).
-//
-// Define FFTW_FLOAT_ONLY to make all uses of FFTW functions be
-// single-precision (so "double" FFTs are calculated by casting to
-// floats and using the single-precision FFTW function).
-//
-// Neither of these flags is terribly desirable -- FFTW_FLOAT_ONLY
-// obviously loses you precision, and neither is handled in the most
-// efficient way so any performance improvement will be small at best.
-// The only real reason to define either flag would be to avoid
-// linking against both fftw3 and fftw3f libraries.
-
-//#define FFTW_DOUBLE_ONLY 1
-//#define FFTW_FLOAT_ONLY 1
-
-#if defined(FFTW_DOUBLE_ONLY) && defined(FFTW_FLOAT_ONLY)
-// Can't meaningfully define both
-#undef FFTW_DOUBLE_ONLY
-#undef FFTW_FLOAT_ONLY
-#endif
-
-#ifdef FFTW_DOUBLE_ONLY
-#define fft_float_type double
-#define fftwf_complex fftw_complex
-#define fftwf_plan fftw_plan
-#define fftwf_plan_dft_r2c_1d fftw_plan_dft_r2c_1d
-#define fftwf_plan_dft_c2r_1d fftw_plan_dft_c2r_1d
-#define fftwf_destroy_plan fftw_destroy_plan
-#define fftwf_malloc fftw_malloc
-#define fftwf_free fftw_free
-#define fftwf_execute fftw_execute
-#define atan2f atan2
-#define sqrtf sqrt
-#define cosf cos
-#define sinf sin
-#else
-#define fft_float_type float
-#endif /* FFTW_DOUBLE_ONLY */
-
-#ifdef FFTW_FLOAT_ONLY
-#define fft_double_type float
-#define fftw_complex fftwf_complex
-#define fftw_plan fftwf_plan
-#define fftw_plan_dft_r2c_1d fftwf_plan_dft_r2c_1d
-#define fftw_plan_dft_c2r_1d fftwf_plan_dft_c2r_1d
-#define fftw_destroy_plan fftwf_destroy_plan
-#define fftw_malloc fftwf_malloc
-#define fftw_free fftwf_free
-#define fftw_execute fftwf_execute
-#define atan2 atan2f
-#define sqrt sqrtf
-#define cos cosf
-#define sin sinf
-#else
-#define fft_double_type double
-#endif /* FFTW_FLOAT_ONLY */
-
-class D_FFTW : public FFTImpl
-{
-public:
- D_FFTW(int size) : m_fplanf(0)
-#ifdef FFTW_DOUBLE_ONLY
- , m_frb(0)
-#endif
- , m_dplanf(0)
-#ifdef FFTW_FLOAT_ONLY
- , m_drb(0)
-#endif
- , m_size(size)
- {
- }
-
- ~D_FFTW() {
- if (m_fplanf) {
- bool save = false;
- m_extantMutex.lock();
- if (m_extantf > 0 && --m_extantf == 0) save = true;
- m_extantMutex.unlock();
-#ifndef FFTW_DOUBLE_ONLY
- if (save) saveWisdom('f');
-#endif
- fftwf_destroy_plan(m_fplanf);
- fftwf_destroy_plan(m_fplani);
- fftwf_free(m_fbuf);
- fftwf_free(m_fpacked);
-#ifdef FFTW_DOUBLE_ONLY
- if (m_frb) fftw_free(m_frb);
-#endif
- }
- if (m_dplanf) {
- bool save = false;
- m_extantMutex.lock();
- if (m_extantd > 0 && --m_extantd == 0) save = true;
- m_extantMutex.unlock();
-#ifndef FFTW_FLOAT_ONLY
- if (save) saveWisdom('d');
-#endif
- fftw_destroy_plan(m_dplanf);
- fftw_destroy_plan(m_dplani);
- fftw_free(m_dbuf);
- fftw_free(m_dpacked);
-#ifdef FFTW_FLOAT_ONLY
- if (m_drb) fftwf_free(m_drb);
-#endif
- }
- }
-
- void initFloat() {
- if (m_fplanf) return;
- bool load = false;
- m_extantMutex.lock();
- if (m_extantf++ == 0) load = true;
- m_extantMutex.unlock();
-#ifdef FFTW_DOUBLE_ONLY
- if (load) loadWisdom('d');
-#else
- if (load) loadWisdom('f');
-#endif
- m_fbuf = (fft_float_type *)fftw_malloc(m_size * sizeof(fft_float_type));
- m_fpacked = (fftwf_complex *)fftw_malloc
- ((m_size/2 + 1) * sizeof(fftwf_complex));
- m_fplanf = fftwf_plan_dft_r2c_1d
- (m_size, m_fbuf, m_fpacked, FFTW_MEASURE);
- m_fplani = fftwf_plan_dft_c2r_1d
- (m_size, m_fpacked, m_fbuf, FFTW_MEASURE);
- }
-
- void initDouble() {
- if (m_dplanf) return;
- bool load = false;
- m_extantMutex.lock();
- if (m_extantd++ == 0) load = true;
- m_extantMutex.unlock();
-#ifdef FFTW_FLOAT_ONLY
- if (load) loadWisdom('f');
-#else
- if (load) loadWisdom('d');
-#endif
- m_dbuf = (fft_double_type *)fftw_malloc(m_size * sizeof(fft_double_type));
- m_dpacked = (fftw_complex *)fftw_malloc
- ((m_size/2 + 1) * sizeof(fftw_complex));
- m_dplanf = fftw_plan_dft_r2c_1d
- (m_size, m_dbuf, m_dpacked, FFTW_MEASURE);
- m_dplani = fftw_plan_dft_c2r_1d
- (m_size, m_dpacked, m_dbuf, FFTW_MEASURE);
- }
-
- void loadWisdom(char type) { wisdom(false, type); }
- void saveWisdom(char type) { wisdom(true, type); }
-
- void wisdom(bool save, char type) {
-
-#ifdef FFTW_DOUBLE_ONLY
- if (type == 'f') return;
-#endif
-#ifdef FFTW_FLOAT_ONLY
- if (type == 'd') return;
-#endif
-
- const char *home = getenv("HOME");
- if (!home) return;
-
- char fn[256];
- snprintf(fn, 256, "%s/%s.%c", home, ".rubberband.wisdom", type);
-
- FILE *f = fopen(fn, save ? "wb" : "rb");
- if (!f) return;
-
- if (save) {
- switch (type) {
-#ifdef FFTW_DOUBLE_ONLY
- case 'f': break;
-#else
- case 'f': fftwf_export_wisdom_to_file(f); break;
-#endif
-#ifdef FFTW_FLOAT_ONLY
- case 'd': break;
-#else
- case 'd': fftw_export_wisdom_to_file(f); break;
-#endif
- default: break;
- }
- } else {
- switch (type) {
-#ifdef FFTW_DOUBLE_ONLY
- case 'f': break;
-#else
- case 'f': fftwf_import_wisdom_from_file(f); break;
-#endif
-#ifdef FFTW_FLOAT_ONLY
- case 'd': break;
-#else
- case 'd': fftw_import_wisdom_from_file(f); break;
-#endif
- default: break;
- }
- }
-
- fclose(f);
- }
-
- void packFloat(const float *R__ re, const float *R__ im) {
- const int hs = m_size/2;
- fftwf_complex *const R__ fpacked = m_fpacked;
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][0] = re[i];
- }
- if (im) {
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][1] = im[i];
- }
- } else {
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][1] = 0.f;
- }
- }
- }
-
- void packDouble(const double *R__ re, const double *R__ im) {
- const int hs = m_size/2;
- fftw_complex *const R__ dpacked = m_dpacked;
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][0] = re[i];
- }
- if (im) {
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][1] = im[i];
- }
- } else {
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][1] = 0.0;
- }
- }
- }
-
- void unpackFloat(float *R__ re, float *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- re[i] = m_fpacked[i][0];
- }
- if (im) {
- for (int i = 0; i <= hs; ++i) {
- im[i] = m_fpacked[i][1];
- }
- }
- }
-
- void unpackDouble(double *R__ re, double *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- re[i] = m_dpacked[i][0];
- }
- if (im) {
- for (int i = 0; i <= hs; ++i) {
- im[i] = m_dpacked[i][1];
- }
- }
- }
-
- void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut) {
- if (!m_dplanf) initDouble();
- const int sz = m_size;
- fft_double_type *const R__ dbuf = m_dbuf;
-#ifndef FFTW_FLOAT_ONLY
- if (realIn != dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- dbuf[i] = realIn[i];
- }
- fftw_execute(m_dplanf);
- unpackDouble(realOut, imagOut);
- }
-
- void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut) {
- if (!m_dplanf) initDouble();
- fft_double_type *const R__ dbuf = m_dbuf;
- const int sz = m_size;
-#ifndef FFTW_FLOAT_ONLY
- if (realIn != dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- dbuf[i] = realIn[i];
- }
- fftw_execute(m_dplanf);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_dpacked[i][0] * m_dpacked[i][0] +
- m_dpacked[i][1] * m_dpacked[i][1]);
- }
- for (int i = 0; i <= hs; ++i) {
- phaseOut[i] = atan2(m_dpacked[i][1], m_dpacked[i][0]);
- }
- }
-
- void forwardMagnitude(const double *R__ realIn, double *R__ magOut) {
- if (!m_dplanf) initDouble();
- fft_double_type *const R__ dbuf = m_dbuf;
- const int sz = m_size;
-#ifndef FFTW_FLOAT_ONLY
- if (realIn != m_dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- dbuf[i] = realIn[i];
- }
- fftw_execute(m_dplanf);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_dpacked[i][0] * m_dpacked[i][0] +
- m_dpacked[i][1] * m_dpacked[i][1]);
- }
- }
-
- void forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut) {
- if (!m_fplanf) initFloat();
- fft_float_type *const R__ fbuf = m_fbuf;
- const int sz = m_size;
-#ifndef FFTW_DOUBLE_ONLY
- if (realIn != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- fbuf[i] = realIn[i];
- }
- fftwf_execute(m_fplanf);
- unpackFloat(realOut, imagOut);
- }
-
- void forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut) {
- if (!m_fplanf) initFloat();
- fft_float_type *const R__ fbuf = m_fbuf;
- const int sz = m_size;
-#ifndef FFTW_DOUBLE_ONLY
- if (realIn != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- fbuf[i] = realIn[i];
- }
- fftwf_execute(m_fplanf);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrtf(m_fpacked[i][0] * m_fpacked[i][0] +
- m_fpacked[i][1] * m_fpacked[i][1]);
- }
- for (int i = 0; i <= hs; ++i) {
- phaseOut[i] = atan2f(m_fpacked[i][1], m_fpacked[i][0]) ;
- }
- }
-
- void forwardMagnitude(const float *R__ realIn, float *R__ magOut) {
- if (!m_fplanf) initFloat();
- fft_float_type *const R__ fbuf = m_fbuf;
- const int sz = m_size;
-#ifndef FFTW_DOUBLE_ONLY
- if (realIn != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- fbuf[i] = realIn[i];
- }
- fftwf_execute(m_fplanf);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrtf(m_fpacked[i][0] * m_fpacked[i][0] +
- m_fpacked[i][1] * m_fpacked[i][1]);
- }
- }
-
- void inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut) {
- if (!m_dplanf) initDouble();
- packDouble(realIn, imagIn);
- fftw_execute(m_dplani);
- const int sz = m_size;
- fft_double_type *const R__ dbuf = m_dbuf;
-#ifndef FFTW_FLOAT_ONLY
- if (realOut != dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- realOut[i] = dbuf[i];
- }
- }
-
- void inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut) {
- if (!m_dplanf) initDouble();
- const int hs = m_size/2;
- fftw_complex *const R__ dpacked = m_dpacked;
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][0] = magIn[i] * cos(phaseIn[i]);
- }
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][1] = magIn[i] * sin(phaseIn[i]);
- }
- fftw_execute(m_dplani);
- const int sz = m_size;
- fft_double_type *const R__ dbuf = m_dbuf;
-#ifndef FFTW_FLOAT_ONLY
- if (realOut != dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- realOut[i] = dbuf[i];
- }
- }
-
- void inverseCepstral(const double *R__ magIn, double *R__ cepOut) {
- if (!m_dplanf) initDouble();
- fft_double_type *const R__ dbuf = m_dbuf;
- fftw_complex *const R__ dpacked = m_dpacked;
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][0] = log(magIn[i] + 0.000001);
- }
- for (int i = 0; i <= hs; ++i) {
- dpacked[i][1] = 0.0;
- }
- fftw_execute(m_dplani);
- const int sz = m_size;
-#ifndef FFTW_FLOAT_ONLY
- if (cepOut != dbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- cepOut[i] = dbuf[i];
- }
- }
-
- void inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut) {
- if (!m_fplanf) initFloat();
- packFloat(realIn, imagIn);
- fftwf_execute(m_fplani);
- const int sz = m_size;
- fft_float_type *const R__ fbuf = m_fbuf;
-#ifndef FFTW_DOUBLE_ONLY
- if (realOut != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- realOut[i] = fbuf[i];
- }
- }
-
- void inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut) {
- if (!m_fplanf) initFloat();
- const int hs = m_size/2;
- fftwf_complex *const R__ fpacked = m_fpacked;
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][0] = magIn[i] * cosf(phaseIn[i]);
- }
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][1] = magIn[i] * sinf(phaseIn[i]);
- }
- fftwf_execute(m_fplani);
- const int sz = m_size;
- fft_float_type *const R__ fbuf = m_fbuf;
-#ifndef FFTW_DOUBLE_ONLY
- if (realOut != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- realOut[i] = fbuf[i];
- }
- }
-
- void inverseCepstral(const float *R__ magIn, float *R__ cepOut) {
- if (!m_fplanf) initFloat();
- const int hs = m_size/2;
- fftwf_complex *const R__ fpacked = m_fpacked;
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][0] = logf(magIn[i] + 0.000001f);
- }
- for (int i = 0; i <= hs; ++i) {
- fpacked[i][1] = 0.f;
- }
- fftwf_execute(m_fplani);
- const int sz = m_size;
- fft_float_type *const R__ fbuf = m_fbuf;
-#ifndef FFTW_DOUBLE_ONLY
- if (cepOut != fbuf)
-#endif
- for (int i = 0; i < sz; ++i) {
- cepOut[i] = fbuf[i];
- }
- }
-
- float *getFloatTimeBuffer() {
- initFloat();
-#ifdef FFTW_DOUBLE_ONLY
- if (!m_frb) m_frb = (float *)fftw_malloc(m_size * sizeof(float));
- return m_frb;
-#else
- return m_fbuf;
-#endif
- }
-
- double *getDoubleTimeBuffer() {
- initDouble();
-#ifdef FFTW_FLOAT_ONLY
- if (!m_drb) m_drb = (double *)fftwf_malloc(m_size * sizeof(double));
- return m_drb;
-#else
- return m_dbuf;
-#endif
- }
-
-private:
- fftwf_plan m_fplanf;
- fftwf_plan m_fplani;
-#ifdef FFTW_DOUBLE_ONLY
- float *m_frb;
- double *m_fbuf;
-#else
- float *m_fbuf;
-#endif
- fftwf_complex *m_fpacked;
- fftw_plan m_dplanf;
- fftw_plan m_dplani;
-#ifdef FFTW_FLOAT_ONLY
- float *m_dbuf;
- double *m_drb;
-#else
- double *m_dbuf;
-#endif
- fftw_complex * m_dpacked;
- const int m_size;
- static int m_extantf;
- static int m_extantd;
- static Mutex m_extantMutex;
-};
-
-int
-D_FFTW::m_extantf = 0;
-
-int
-D_FFTW::m_extantd = 0;
-
-Mutex
-D_FFTW::m_extantMutex;
-
-#endif /* HAVE_FFTW3 */
-
-#ifdef USE_KISSFFT
-
-class D_KISSFFT : public FFTImpl
-{
-public:
- D_KISSFFT(int size) :
- m_size(size),
- m_frb(0),
- m_drb(0),
- m_fplanf(0),
- m_fplani(0)
- {
-#ifdef FIXED_POINT
-#error KISSFFT is not configured for float values
-#endif
- if (sizeof(kiss_fft_scalar) != sizeof(float)) {
- std::cerr << "ERROR: KISSFFT is not configured for float values"
- << std::endl;
- }
-
- m_fbuf = new kiss_fft_scalar[m_size + 2];
- m_fpacked = new kiss_fft_cpx[m_size + 2];
- m_fplanf = kiss_fftr_alloc(m_size, 0, NULL, NULL);
- m_fplani = kiss_fftr_alloc(m_size, 1, NULL, NULL);
- }
-
- ~D_KISSFFT() {
- kiss_fftr_free(m_fplanf);
- kiss_fftr_free(m_fplani);
- kiss_fft_cleanup();
-
- delete[] m_fbuf;
- delete[] m_fpacked;
-
- if (m_frb) delete[] m_frb;
- if (m_drb) delete[] m_drb;
- }
-
- void initFloat() { }
- void initDouble() { }
-
- void packFloat(const float *R__ re, const float *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = re[i];
- m_fpacked[i].i = im[i];
- }
- }
-
- void unpackFloat(float *R__ re, float *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- re[i] = m_fpacked[i].r;
- im[i] = m_fpacked[i].i;
- }
- }
-
- void packDouble(const double *R__ re, const double *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = float(re[i]);
- m_fpacked[i].i = float(im[i]);
- }
- }
-
- void unpackDouble(double *R__ re, double *R__ im) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- re[i] = double(m_fpacked[i].r);
- im[i] = double(m_fpacked[i].i);
- }
- }
-
- void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut) {
-
- for (int i = 0; i < m_size; ++i) {
- m_fbuf[i] = float(realIn[i]);
- }
-
- kiss_fftr(m_fplanf, m_fbuf, m_fpacked);
- unpackDouble(realOut, imagOut);
- }
-
- void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut) {
-
- for (int i = 0; i < m_size; ++i) {
- m_fbuf[i] = float(realIn[i]);
- }
-
- kiss_fftr(m_fplanf, m_fbuf, m_fpacked);
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(double(m_fpacked[i].r) * double(m_fpacked[i].r) +
- double(m_fpacked[i].i) * double(m_fpacked[i].i));
- }
-
- for (int i = 0; i <= hs; ++i) {
- phaseOut[i] = atan2(double(m_fpacked[i].i), double(m_fpacked[i].r));
- }
- }
-
- void forwardMagnitude(const double *R__ realIn, double *R__ magOut) {
-
- for (int i = 0; i < m_size; ++i) {
- m_fbuf[i] = float(realIn[i]);
- }
-
- kiss_fftr(m_fplanf, m_fbuf, m_fpacked);
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(double(m_fpacked[i].r) * double(m_fpacked[i].r) +
- double(m_fpacked[i].i) * double(m_fpacked[i].i));
- }
- }
-
- void forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut) {
-
- kiss_fftr(m_fplanf, realIn, m_fpacked);
- unpackFloat(realOut, imagOut);
- }
-
- void forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut) {
-
- kiss_fftr(m_fplanf, realIn, m_fpacked);
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrtf(m_fpacked[i].r * m_fpacked[i].r +
- m_fpacked[i].i * m_fpacked[i].i);
- }
-
- for (int i = 0; i <= hs; ++i) {
- phaseOut[i] = atan2f(m_fpacked[i].i, m_fpacked[i].r);
- }
- }
-
- void forwardMagnitude(const float *R__ realIn, float *R__ magOut) {
-
- kiss_fftr(m_fplanf, realIn, m_fpacked);
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrtf(m_fpacked[i].r * m_fpacked[i].r +
- m_fpacked[i].i * m_fpacked[i].i);
- }
- }
-
- void inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut) {
-
- packDouble(realIn, imagIn);
-
- kiss_fftri(m_fplani, m_fpacked, m_fbuf);
-
- for (int i = 0; i < m_size; ++i) {
- realOut[i] = m_fbuf[i];
- }
- }
-
- void inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut) {
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = float(magIn[i] * cos(phaseIn[i]));
- m_fpacked[i].i = float(magIn[i] * sin(phaseIn[i]));
- }
-
- kiss_fftri(m_fplani, m_fpacked, m_fbuf);
-
- for (int i = 0; i < m_size; ++i) {
- realOut[i] = m_fbuf[i];
- }
- }
-
- void inverseCepstral(const double *R__ magIn, double *R__ cepOut) {
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = float(log(magIn[i] + 0.000001));
- m_fpacked[i].i = 0.0f;
- }
-
- kiss_fftri(m_fplani, m_fpacked, m_fbuf);
-
- for (int i = 0; i < m_size; ++i) {
- cepOut[i] = m_fbuf[i];
- }
- }
-
- void inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut) {
-
- packFloat(realIn, imagIn);
- kiss_fftri(m_fplani, m_fpacked, realOut);
- }
-
- void inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut) {
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = magIn[i] * cosf(phaseIn[i]);
- m_fpacked[i].i = magIn[i] * sinf(phaseIn[i]);
- }
-
- kiss_fftri(m_fplani, m_fpacked, realOut);
- }
-
- void inverseCepstral(const float *R__ magIn, float *R__ cepOut) {
-
- const int hs = m_size/2;
-
- for (int i = 0; i <= hs; ++i) {
- m_fpacked[i].r = logf(magIn[i] + 0.000001f);
- m_fpacked[i].i = 0.0f;
- }
-
- kiss_fftri(m_fplani, m_fpacked, cepOut);
- }
-
- float *getFloatTimeBuffer() {
- if (!m_frb) m_frb = new float[m_size];
- return m_frb;
- }
-
- double *getDoubleTimeBuffer() {
- if (!m_drb) m_drb = new double[m_size];
- return m_drb;
- }
-
-private:
- const int m_size;
- float* m_frb;
- double* m_drb;
- kiss_fftr_cfg m_fplanf;
- kiss_fftr_cfg m_fplani;
- kiss_fft_scalar *m_fbuf;
- kiss_fft_cpx *m_fpacked;
-};
-
-#endif /* USE_KISSFFT */
-
-#ifdef USE_BUILTIN_FFT
-
-class D_Cross : public FFTImpl
-{
-public:
- D_Cross(int size) : m_size(size), m_table(0), m_frb(0), m_drb(0) {
-
- m_a = new double[size];
- m_b = new double[size];
- m_c = new double[size];
- m_d = new double[size];
-
- m_table = new int[m_size];
-
- int bits;
- int i, j, k, m;
-
- for (i = 0; ; ++i) {
- if (m_size & (1 << i)) {
- bits = i;
- break;
- }
- }
-
- for (i = 0; i < m_size; ++i) {
-
- m = i;
-
- for (j = k = 0; j < bits; ++j) {
- k = (k << 1) | (m & 1);
- m >>= 1;
- }
-
- m_table[i] = k;
- }
- }
-
- ~D_Cross() {
- delete[] m_table;
- delete[] m_a;
- delete[] m_b;
- delete[] m_c;
- delete[] m_d;
- delete[] m_frb;
- delete[] m_drb;
- }
-
- void initFloat() { }
- void initDouble() { }
-
- void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut) {
- basefft(false, realIn, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) realOut[i] = m_c[i];
- if (imagOut) {
- for (int i = 0; i <= hs; ++i) imagOut[i] = m_d[i];
- }
- }
-
- void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut) {
- basefft(false, realIn, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_c[i] * m_c[i] + m_d[i] * m_d[i]);
- phaseOut[i] = atan2(m_d[i], m_c[i]) ;
- }
- }
-
- void forwardMagnitude(const double *R__ realIn, double *R__ magOut) {
- basefft(false, realIn, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_c[i] * m_c[i] + m_d[i] * m_d[i]);
- }
- }
-
- void forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut) {
- for (int i = 0; i < m_size; ++i) m_a[i] = realIn[i];
- basefft(false, m_a, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) realOut[i] = m_c[i];
- if (imagOut) {
- for (int i = 0; i <= hs; ++i) imagOut[i] = m_d[i];
- }
- }
-
- void forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut) {
- for (int i = 0; i < m_size; ++i) m_a[i] = realIn[i];
- basefft(false, m_a, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_c[i] * m_c[i] + m_d[i] * m_d[i]);
- phaseOut[i] = atan2(m_d[i], m_c[i]) ;
- }
- }
-
- void forwardMagnitude(const float *R__ realIn, float *R__ magOut) {
- for (int i = 0; i < m_size; ++i) m_a[i] = realIn[i];
- basefft(false, m_a, 0, m_c, m_d);
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- magOut[i] = sqrt(m_c[i] * m_c[i] + m_d[i] * m_d[i]);
- }
- }
-
- void inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- double real = realIn[i];
- double imag = imagIn[i];
- m_a[i] = real;
- m_b[i] = imag;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = -imag;
- }
- }
- basefft(true, m_a, m_b, realOut, m_d);
- }
-
- void inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- double real = magIn[i] * cos(phaseIn[i]);
- double imag = magIn[i] * sin(phaseIn[i]);
- m_a[i] = real;
- m_b[i] = imag;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = -imag;
- }
- }
- basefft(true, m_a, m_b, realOut, m_d);
- }
-
- void inverseCepstral(const double *R__ magIn, double *R__ cepOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- double real = log(magIn[i] + 0.000001);
- m_a[i] = real;
- m_b[i] = 0.0;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = 0.0;
- }
- }
- basefft(true, m_a, m_b, cepOut, m_d);
- }
-
- void inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- float real = realIn[i];
- float imag = imagIn[i];
- m_a[i] = real;
- m_b[i] = imag;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = -imag;
- }
- }
- basefft(true, m_a, m_b, m_c, m_d);
- for (int i = 0; i < m_size; ++i) realOut[i] = m_c[i];
- }
-
- void inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- float real = magIn[i] * cosf(phaseIn[i]);
- float imag = magIn[i] * sinf(phaseIn[i]);
- m_a[i] = real;
- m_b[i] = imag;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = -imag;
- }
- }
- basefft(true, m_a, m_b, m_c, m_d);
- for (int i = 0; i < m_size; ++i) realOut[i] = m_c[i];
- }
-
- void inverseCepstral(const float *R__ magIn, float *R__ cepOut) {
- const int hs = m_size/2;
- for (int i = 0; i <= hs; ++i) {
- float real = logf(magIn[i] + 0.000001);
- m_a[i] = real;
- m_b[i] = 0.0;
- if (i > 0) {
- m_a[m_size-i] = real;
- m_b[m_size-i] = 0.0;
- }
- }
- basefft(true, m_a, m_b, m_c, m_d);
- for (int i = 0; i < m_size; ++i) cepOut[i] = m_c[i];
- }
-
- float *getFloatTimeBuffer() {
- if (!m_frb) m_frb = new float[m_size];
- return m_frb;
- }
-
- double *getDoubleTimeBuffer() {
- if (!m_drb) m_drb = new double[m_size];
- return m_drb;
- }
-
-private:
- const int m_size;
- int *m_table;
- float *m_frb;
- double *m_drb;
- double *m_a;
- double *m_b;
- double *m_c;
- double *m_d;
- void basefft(bool inverse, const double *R__ ri, const double *R__ ii, double *R__ ro, double *R__ io);
-};
-
-void
-D_Cross::basefft(bool inverse, const double *R__ ri, const double *R__ ii, double *R__ ro, double *R__ io)
-{
- if (!ri || !ro || !io) return;
-
- int i, j, k, m;
- int blockSize, blockEnd;
-
- double tr, ti;
-
- double angle = 2.0 * M_PI;
- if (inverse) angle = -angle;
-
- const int n = m_size;
-
- if (ii) {
- for (i = 0; i < n; ++i) {
- ro[m_table[i]] = ri[i];
- }
- for (i = 0; i < n; ++i) {
- io[m_table[i]] = ii[i];
- }
- } else {
- for (i = 0; i < n; ++i) {
- ro[m_table[i]] = ri[i];
- }
- for (i = 0; i < n; ++i) {
- io[m_table[i]] = 0.0;
- }
- }
-
- blockEnd = 1;
-
- for (blockSize = 2; blockSize <= n; blockSize <<= 1) {
-
- double delta = angle / (double)blockSize;
- double sm2 = -sin(-2 * delta);
- double sm1 = -sin(-delta);
- double cm2 = cos(-2 * delta);
- double cm1 = cos(-delta);
- double w = 2 * cm1;
- double ar[3], ai[3];
-
- for (i = 0; i < n; i += blockSize) {
-
- ar[2] = cm2;
- ar[1] = cm1;
-
- ai[2] = sm2;
- ai[1] = sm1;
-
- for (j = i, m = 0; m < blockEnd; j++, m++) {
-
- ar[0] = w * ar[1] - ar[2];
- ar[2] = ar[1];
- ar[1] = ar[0];
-
- ai[0] = w * ai[1] - ai[2];
- ai[2] = ai[1];
- ai[1] = ai[0];
-
- k = j + blockEnd;
- tr = ar[0] * ro[k] - ai[0] * io[k];
- ti = ar[0] * io[k] + ai[0] * ro[k];
-
- ro[k] = ro[j] - tr;
- io[k] = io[j] - ti;
-
- ro[j] += tr;
- io[j] += ti;
- }
- }
-
- blockEnd = blockSize;
- }
-
-/* fftw doesn't rescale, so nor will we
-
- if (inverse) {
-
- double denom = (double)n;
-
- for (i = 0; i < n; i++) {
- ro[i] /= denom;
- io[i] /= denom;
- }
- }
-*/
-}
-
-#endif /* USE_BUILTIN_FFT */
-
-} /* end namespace FFTs */
-
-int
-FFT::m_method = -1;
-
-FFT::FFT(int size, int debugLevel)
-{
- if ((size < 2) ||
- (size & (size-1))) {
- std::cerr << "FFT::FFT(" << size << "): power-of-two sizes only supported, minimum size 2" << std::endl;
- throw InvalidSize;
- }
-
- if (m_method == -1) {
- m_method = 3;
-#ifdef USE_KISSFFT
- m_method = 2;
-#endif
-#ifdef HAVE_FFTW3
- m_method = 1;
-#endif
- }
-
- switch (m_method) {
-
- case 0:
- std::cerr << "FFT::FFT(" << size << "): WARNING: Selected implementation not available" << std::endl;
-#ifdef USE_BUILTIN_FFT
- d = new FFTs::D_Cross(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): ERROR: Fallback implementation not available!" << std::endl;
- abort();
-#endif
- break;
-
- case 1:
-#ifdef HAVE_FFTW3
- if (debugLevel > 0) {
- std::cerr << "FFT::FFT(" << size << "): using FFTW3 implementation"
- << std::endl;
- }
- d = new FFTs::D_FFTW(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): WARNING: Selected implementation not available" << std::endl;
-#ifdef USE_BUILTIN_FFT
- d = new FFTs::D_Cross(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): ERROR: Fallback implementation not available!" << std::endl;
- abort();
-#endif
-#endif
- break;
-
- case 2:
-#ifdef USE_KISSFFT
- if (debugLevel > 0) {
- std::cerr << "FFT::FFT(" << size << "): using KISSFFT implementation"
- << std::endl;
- }
- d = new FFTs::D_KISSFFT(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): WARNING: Selected implementation not available" << std::endl;
-#ifdef USE_BUILTIN_FFT
- d = new FFTs::D_Cross(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): ERROR: Fallback implementation not available!" << std::endl;
- abort();
-#endif
-#endif
- break;
-
- default:
-#ifdef USE_BUILTIN_FFT
- std::cerr << "FFT::FFT(" << size << "): WARNING: using slow built-in implementation" << std::endl;
- d = new FFTs::D_Cross(size);
-#else
- std::cerr << "FFT::FFT(" << size << "): ERROR: Fallback implementation not available!" << std::endl;
- abort();
-#endif
- break;
- }
-}
-
-FFT::~FFT()
-{
- delete d;
-}
-
-void
-FFT::forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut)
-{
- d->forward(realIn, realOut, imagOut);
-}
-
-void
-FFT::forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut)
-{
- d->forwardPolar(realIn, magOut, phaseOut);
-}
-
-void
-FFT::forwardMagnitude(const double *R__ realIn, double *R__ magOut)
-{
- d->forwardMagnitude(realIn, magOut);
-}
-
-void
-FFT::forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut)
-{
- d->forward(realIn, realOut, imagOut);
-}
-
-void
-FFT::forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut)
-{
- d->forwardPolar(realIn, magOut, phaseOut);
-}
-
-void
-FFT::forwardMagnitude(const float *R__ realIn, float *R__ magOut)
-{
- d->forwardMagnitude(realIn, magOut);
-}
-
-void
-FFT::inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut)
-{
- d->inverse(realIn, imagIn, realOut);
-}
-
-void
-FFT::inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut)
-{
- d->inversePolar(magIn, phaseIn, realOut);
-}
-
-void
-FFT::inverseCepstral(const double *R__ magIn, double *R__ cepOut)
-{
- d->inverseCepstral(magIn, cepOut);
-}
-
-void
-FFT::inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut)
-{
- d->inverse(realIn, imagIn, realOut);
-}
-
-void
-FFT::inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut)
-{
- d->inversePolar(magIn, phaseIn, realOut);
-}
-
-void
-FFT::inverseCepstral(const float *R__ magIn, float *R__ cepOut)
-{
- d->inverseCepstral(magIn, cepOut);
-}
-
-void
-FFT::initFloat()
-{
- d->initFloat();
-}
-
-void
-FFT::initDouble()
-{
- d->initDouble();
-}
-
-float *
-FFT::getFloatTimeBuffer()
-{
- return d->getFloatTimeBuffer();
-}
-
-double *
-FFT::getDoubleTimeBuffer()
-{
- return d->getDoubleTimeBuffer();
-}
-
-
-void
-FFT::tune()
-{
-}
-
-
-}
diff --git a/libs/rubberband/src/FFT.h b/libs/rubberband/src/FFT.h
deleted file mode 100644
index b31d925d36..0000000000
--- a/libs/rubberband/src/FFT.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_FFT_H_
-#define _RUBBERBAND_FFT_H_
-
-#include "sysutils.h"
-
-namespace RubberBand {
-
-class FFTImpl;
-
-/**
- * Provide the basic FFT computations we need, using one of a set of
- * candidate FFT implementations (depending on compile flags).
- *
- * Implements real->complex FFTs of power-of-two sizes only. Note
- * that only the first half of the output signal is returned (the
- * complex conjugates half is omitted), so the "complex" arrays need
- * room for size/2+1 elements.
- *
- * Not thread safe: use a separate instance per thread.
- */
-
-class FFT
-{
-public:
- enum Exception { InvalidSize };
-
- FFT(int size, int debugLevel = 0); // may throw InvalidSize
- ~FFT();
-
- void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut);
- void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut);
- void forwardMagnitude(const double *R__ realIn, double *R__ magOut);
-
- void forward(const float *R__ realIn, float *R__ realOut, float *R__ imagOut);
- void forwardPolar(const float *R__ realIn, float *R__ magOut, float *R__ phaseOut);
- void forwardMagnitude(const float *R__ realIn, float *R__ magOut);
-
- void inverse(const double *R__ realIn, const double *R__ imagIn, double *R__ realOut);
- void inversePolar(const double *R__ magIn, const double *R__ phaseIn, double *R__ realOut);
- void inverseCepstral(const double *R__ magIn, double *R__ cepOut);
-
- void inverse(const float *R__ realIn, const float *R__ imagIn, float *R__ realOut);
- void inversePolar(const float *R__ magIn, const float *R__ phaseIn, float *R__ realOut);
- void inverseCepstral(const float *R__ magIn, float *R__ cepOut);
-
- // Calling one or both of these is optional -- if neither is
- // called, the first call to a forward or inverse method will call
- // init(). You only need call these if you don't want to risk
- // expensive allocations etc happening in forward or inverse.
- void initFloat();
- void initDouble();
-
- float *getFloatTimeBuffer();
- double *getDoubleTimeBuffer();
-
- static void tune();
-
-protected:
- FFTImpl *d;
- static int m_method;
-};
-
-}
-
-#endif
-
diff --git a/libs/rubberband/src/HighFrequencyAudioCurve.cpp b/libs/rubberband/src/HighFrequencyAudioCurve.cpp
deleted file mode 100644
index 2ede70d283..0000000000
--- a/libs/rubberband/src/HighFrequencyAudioCurve.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "HighFrequencyAudioCurve.h"
-
-namespace RubberBand
-{
-
-HighFrequencyAudioCurve::HighFrequencyAudioCurve(size_t sampleRate, size_t windowSize) :
- AudioCurve(sampleRate, windowSize)
-{
-}
-
-HighFrequencyAudioCurve::~HighFrequencyAudioCurve()
-{
-}
-
-void
-HighFrequencyAudioCurve::reset()
-{
-}
-
-void
-HighFrequencyAudioCurve::setWindowSize(size_t newSize)
-{
- m_windowSize = newSize;
-}
-
-float
-HighFrequencyAudioCurve::process(const float *R__ mag, size_t /*increment*/)
-{
- float result = 0.0;
-
- const int sz = m_windowSize / 2;
-
- for (int n = 0; n <= sz; ++n) {
- result = result + mag[n] * n;
- }
-
- return result;
-}
-
-float
-HighFrequencyAudioCurve::processDouble(const double *R__ mag, size_t /*increment*/)
-{
- float result = 0.0;
-
- const int sz = m_windowSize / 2;
-
- for (int n = 0; n <= sz; ++n) {
- result = result + (float)mag[n] * n;
- }
-
- return result;
-}
-
-}
-
diff --git a/libs/rubberband/src/HighFrequencyAudioCurve.h b/libs/rubberband/src/HighFrequencyAudioCurve.h
deleted file mode 100644
index b0a3ec2db7..0000000000
--- a/libs/rubberband/src/HighFrequencyAudioCurve.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _HIGHFREQUENCY_AUDIO_CURVE_H_
-#define _HIGHFREQUENCY_AUDIO_CURVE_H_
-
-#include "AudioCurve.h"
-#include "Window.h"
-
-namespace RubberBand
-{
-
-class HighFrequencyAudioCurve : public AudioCurve
-{
-public:
- HighFrequencyAudioCurve(size_t sampleRate, size_t windowSize);
-
- virtual ~HighFrequencyAudioCurve();
-
- virtual void setWindowSize(size_t newSize);
-
- virtual float process(const float *R__ mag, size_t increment);
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset();
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/PercussiveAudioCurve.cpp b/libs/rubberband/src/PercussiveAudioCurve.cpp
deleted file mode 100644
index aced9e08c2..0000000000
--- a/libs/rubberband/src/PercussiveAudioCurve.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "PercussiveAudioCurve.h"
-
-#include "Profiler.h"
-
-#include <cmath>
-
-
-namespace RubberBand
-{
-
-PercussiveAudioCurve::PercussiveAudioCurve(size_t sampleRate, size_t windowSize) :
- AudioCurve(sampleRate, windowSize)
-{
- m_prevMag = new float[m_windowSize/2 + 1];
-
- for (size_t i = 0; i <= m_windowSize/2; ++i) {
- m_prevMag[i] = 0.f;
- }
-}
-
-PercussiveAudioCurve::~PercussiveAudioCurve()
-{
- delete[] m_prevMag;
-}
-
-void
-PercussiveAudioCurve::reset()
-{
- for (size_t i = 0; i <= m_windowSize/2; ++i) {
- m_prevMag[i] = 0;
- }
-}
-
-void
-PercussiveAudioCurve::setWindowSize(size_t newSize)
-{
- m_windowSize = newSize;
-
- delete[] m_prevMag;
- m_prevMag = new float[m_windowSize/2 + 1];
-
- reset();
-}
-
-float
-PercussiveAudioCurve::process(const float *R__ mag, size_t /*increment*/)
-{
- static float threshold = powf(10.f, 0.15f); // 3dB rise in square of magnitude
- static float zeroThresh = powf(10.f, -8);
-
- size_t count = 0;
- size_t nonZeroCount = 0;
-
- const int sz = m_windowSize / 2;
-
- for (int n = 1; n <= sz; ++n) {
- bool above = ((mag[n] / m_prevMag[n]) >= threshold);
- if (above) ++count;
- if (mag[n] > zeroThresh) ++nonZeroCount;
- }
-
- for (int n = 1; n <= sz; ++n) {
- m_prevMag[n] = mag[n];
- }
-
- if (nonZeroCount == 0) return 0;
- else return float(count) / float(nonZeroCount);
-}
-
-float
-PercussiveAudioCurve::processDouble(const double *R__ mag, size_t /*increment*/)
-{
- Profiler profiler("PercussiveAudioCurve::process");
-
- static double threshold = pow(10.0, 0.15); // 3dB rise in square of magnitude
- static double zeroThresh = pow(10.0, -8);
-
- size_t count = 0;
- size_t nonZeroCount = 0;
-
- const int sz = m_windowSize / 2;
-
- for (int n = 1; n <= sz; ++n) {
- bool above = ((mag[n] / m_prevMag[n]) >= threshold);
- if (above) ++count;
- if (mag[n] > zeroThresh) ++nonZeroCount;
- }
-
- for (int n = 1; n <= sz; ++n) {
- m_prevMag[n] = mag[n];
- }
-
- if (nonZeroCount == 0) return 0;
- else return float(count) / float(nonZeroCount);
-}
-
-}
-
diff --git a/libs/rubberband/src/PercussiveAudioCurve.h b/libs/rubberband/src/PercussiveAudioCurve.h
deleted file mode 100644
index 9f087053a4..0000000000
--- a/libs/rubberband/src/PercussiveAudioCurve.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _PERCUSSIVE_AUDIO_CURVE_H_
-#define _PERCUSSIVE_AUDIO_CURVE_H_
-
-#include "AudioCurve.h"
-
-namespace RubberBand
-{
-
-class PercussiveAudioCurve : public AudioCurve
-{
-public:
- PercussiveAudioCurve(size_t sampleRate, size_t windowSize);
-
- virtual ~PercussiveAudioCurve();
-
- virtual void setWindowSize(size_t newSize);
-
- virtual float process(const float *R__ mag, size_t increment);
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset();
-
-protected:
- float *R__ m_prevMag;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/Profiler.cpp b/libs/rubberband/src/Profiler.cpp
deleted file mode 100644
index df148d48e3..0000000000
--- a/libs/rubberband/src/Profiler.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "Profiler.h"
-
-#include <algorithm>
-#include <set>
-#include <string>
-#include <map>
-
-#include <cstdio>
-
-namespace RubberBand {
-
-#ifndef NO_TIMING
-
-Profiler::ProfileMap
-Profiler::m_profiles;
-
-Profiler::WorstCallMap
-Profiler::m_worstCalls;
-
-void
-Profiler::add(const char *id, float ms)
-{
- ProfileMap::iterator pmi = m_profiles.find(id);
- if (pmi != m_profiles.end()) {
- ++pmi->second.first;
- pmi->second.second += ms;
- } else {
- m_profiles[id] = TimePair(1, ms);
- }
-
- WorstCallMap::iterator wci = m_worstCalls.find(id);
- if (wci != m_worstCalls.end()) {
- if (ms > wci->second) wci->second = ms;
- } else {
- m_worstCalls[id] = ms;
- }
-}
-
-void
-Profiler::dump()
-{
-#ifdef PROFILE_CLOCKS
- fprintf(stderr, "Profiling points [CPU time]:\n");
-#else
- fprintf(stderr, "Profiling points [Wall time]:\n");
-#endif
-
- fprintf(stderr, "\nBy name:\n");
-
- typedef std::set<const char *, std::less<std::string> > StringSet;
-
- StringSet profileNames;
- for (ProfileMap::const_iterator i = m_profiles.begin();
- i != m_profiles.end(); ++i) {
- profileNames.insert(i->first);
- }
-
- for (StringSet::const_iterator i = profileNames.begin();
- i != profileNames.end(); ++i) {
-
- ProfileMap::const_iterator j = m_profiles.find(*i);
- if (j == m_profiles.end()) continue;
-
- const TimePair &pp(j->second);
- fprintf(stderr, "%s(%d):\n", *i, pp.first);
- fprintf(stderr, "\tReal: \t%f ms \t[%f ms total]\n",
- (pp.second / pp.first),
- (pp.second));
-
- WorstCallMap::const_iterator k = m_worstCalls.find(*i);
- if (k == m_worstCalls.end()) continue;
-
- fprintf(stderr, "\tWorst:\t%f ms/call\n", k->second);
- }
-
- typedef std::multimap<float, const char *> TimeRMap;
- typedef std::multimap<int, const char *> IntRMap;
- TimeRMap totmap, avgmap, worstmap;
- IntRMap ncallmap;
-
- for (ProfileMap::const_iterator i = m_profiles.begin();
- i != m_profiles.end(); ++i) {
- totmap.insert(TimeRMap::value_type(i->second.second, i->first));
- avgmap.insert(TimeRMap::value_type(i->second.second /
- i->second.first, i->first));
- ncallmap.insert(IntRMap::value_type(i->second.first, i->first));
- }
-
- for (WorstCallMap::const_iterator i = m_worstCalls.begin();
- i != m_worstCalls.end(); ++i) {
- worstmap.insert(TimeRMap::value_type(i->second, i->first));
- }
-
- fprintf(stderr, "\nBy total:\n");
- for (TimeRMap::const_iterator i = totmap.end(); i != totmap.begin(); ) {
- --i;
- fprintf(stderr, "%-40s %f ms\n", i->second, i->first);
- }
-
- fprintf(stderr, "\nBy average:\n");
- for (TimeRMap::const_iterator i = avgmap.end(); i != avgmap.begin(); ) {
- --i;
- fprintf(stderr, "%-40s %f ms\n", i->second, i->first);
- }
-
- fprintf(stderr, "\nBy worst case:\n");
- for (TimeRMap::const_iterator i = worstmap.end(); i != worstmap.begin(); ) {
- --i;
- fprintf(stderr, "%-40s %f ms\n", i->second, i->first);
- }
-
- fprintf(stderr, "\nBy number of calls:\n");
- for (IntRMap::const_iterator i = ncallmap.end(); i != ncallmap.begin(); ) {
- --i;
- fprintf(stderr, "%-40s %d\n", i->second, i->first);
- }
-}
-
-Profiler::Profiler(const char* c) :
- m_c(c),
- m_ended(false)
-{
-#ifdef PROFILE_CLOCKS
- m_start = clock();
-#else
- (void)gettimeofday(&m_start, 0);
-#endif
-}
-
-Profiler::~Profiler()
-{
- if (!m_ended) end();
-}
-
-void
-Profiler::end()
-{
-#ifdef PROFILE_CLOCKS
- clock_t end = clock();
- clock_t elapsed = end - m_start;
- float ms = float((double(elapsed) / double(CLOCKS_PER_SEC)) * 1000.0);
-#else
- struct timeval tv;
- (void)gettimeofday(&tv, 0);
-
- tv.tv_sec -= m_start.tv_sec;
- if (tv.tv_usec < m_start.tv_usec) {
- tv.tv_usec += 1000000;
- tv.tv_sec -= 1;
- }
- tv.tv_usec -= m_start.tv_usec;
- float ms = float((double(tv.tv_sec) + (double(tv.tv_usec) / 1000000.0)) * 1000.0);
-#endif
-
- add(m_c, ms);
-
- m_ended = true;
-}
-
-#endif
-
-}
diff --git a/libs/rubberband/src/Profiler.h b/libs/rubberband/src/Profiler.h
deleted file mode 100644
index d6897b817b..0000000000
--- a/libs/rubberband/src/Profiler.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _PROFILER_H_
-#define _PROFILER_H_
-
-#define NO_TIMING 1
-
-//#define WANT_TIMING 1
-//#define PROFILE_CLOCKS 1
-
-#ifdef NDEBUG
-#ifndef WANT_TIMING
-#define NO_TIMING 1
-#endif
-#endif
-
-#ifndef NO_TIMING
-#ifdef PROFILE_CLOCKS
-#include <time.h>
-#else
-#include "sysutils.h"
-#ifndef PLATFORM_WINDOWS
-#include <sys/time.h>
-#endif
-#endif
-#endif
-
-#include <map>
-
-namespace RubberBand {
-
-#ifndef NO_TIMING
-
-class Profiler
-{
-public:
- Profiler(const char *name);
- ~Profiler();
-
- void end(); // same action as dtor
-
- static void dump();
-
-protected:
- const char* m_c;
-#ifdef PROFILE_CLOCKS
- clock_t m_start;
-#else
- struct timeval m_start;
-#endif
- bool m_showOnDestruct;
- bool m_ended;
-
- typedef std::pair<int, float> TimePair;
- typedef std::map<const char *, TimePair> ProfileMap;
- typedef std::map<const char *, float> WorstCallMap;
- static ProfileMap m_profiles;
- static WorstCallMap m_worstCalls;
- static void add(const char *, float);
-};
-
-#else
-
-class Profiler
-{
-public:
- Profiler(const char *) { }
- ~Profiler() { }
-
- void update() const { }
- void end() { }
- static void dump() { }
-};
-
-#endif
-
-}
-
-#endif
diff --git a/libs/rubberband/src/Resampler.cpp b/libs/rubberband/src/Resampler.cpp
deleted file mode 100644
index 1e479363b5..0000000000
--- a/libs/rubberband/src/Resampler.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "Resampler.h"
-
-#include "Profiler.h"
-
-#include <cstdlib>
-#include <cmath>
-
-#include <iostream>
-
-
-#include <samplerate.h>
-
-
-
-namespace RubberBand {
-
-class ResamplerImpl
-{
-public:
- virtual ~ResamplerImpl() { }
-
- virtual int resample(const float *const R__ *const R__ in,
- float *const R__ *const R__ out,
- int incount,
- float ratio,
- bool final) = 0;
-
- virtual void reset() = 0;
-};
-
-namespace Resamplers {
-
-
-
-class D_SRC : public ResamplerImpl
-{
-public:
- D_SRC(Resampler::Quality quality, int channels, int maxBufferSize,
- int m_debugLevel);
- ~D_SRC();
-
- int resample(const float *const R__ *const R__ in,
- float *const R__ *const R__ out,
- int incount,
- float ratio,
- bool final);
-
- void reset();
-
-protected:
- SRC_STATE *m_src;
- float *m_iin;
- float *m_iout;
- float m_lastRatio;
- int m_channels;
- int m_iinsize;
- int m_ioutsize;
- int m_debugLevel;
-};
-
-D_SRC::D_SRC(Resampler::Quality quality, int channels, int maxBufferSize,
- int debugLevel) :
- m_src(0),
- m_iin(0),
- m_iout(0),
- m_lastRatio(1.f),
- m_channels(channels),
- m_iinsize(0),
- m_ioutsize(0),
- m_debugLevel(debugLevel)
-{
- if (m_debugLevel > 0) {
- std::cerr << "Resampler::Resampler: using libsamplerate implementation"
- << std::endl;
- }
-
- int err = 0;
- m_src = src_new(quality == Resampler::Best ? SRC_SINC_BEST_QUALITY :
- quality == Resampler::Fastest ? SRC_LINEAR :
- SRC_SINC_FASTEST,
- channels, &err);
-
- if (err) {
- std::cerr << "Resampler::Resampler: failed to create libsamplerate resampler: "
- << src_strerror(err) << std::endl;
- throw Resampler::ImplementationError; //!!! of course, need to catch this!
- }
-
- if (maxBufferSize > 0 && m_channels > 1) {
- m_iinsize = maxBufferSize * m_channels;
- m_ioutsize = maxBufferSize * m_channels * 2;
- m_iin = allocFloat(m_iinsize);
- m_iout = allocFloat(m_ioutsize);
- }
-
- reset();
-}
-
-D_SRC::~D_SRC()
-{
- src_delete(m_src);
- if (m_iinsize > 0) {
- free(m_iin);
- }
- if (m_ioutsize > 0) {
- free(m_iout);
- }
-}
-
-int
-D_SRC::resample(const float *const R__ *const R__ in,
- float *const R__ *const R__ out,
- int incount,
- float ratio,
- bool final)
-{
- SRC_DATA data;
-
- int outcount = lrintf(ceilf(incount * ratio));
-
- if (m_channels == 1) {
- data.data_in = const_cast<float *>(*in); //!!!???
- data.data_out = *out;
- } else {
- if (incount * m_channels > m_iinsize) {
- m_iinsize = incount * m_channels;
- m_iin = allocFloat(m_iin, m_iinsize);
- }
- if (outcount * m_channels > m_ioutsize) {
- m_ioutsize = outcount * m_channels;
- m_iout = allocFloat(m_iout, m_ioutsize);
- }
- for (int i = 0; i < incount; ++i) {
- for (int c = 0; c < m_channels; ++c) {
- m_iin[i * m_channels + c] = in[c][i];
- }
- }
- data.data_in = m_iin;
- data.data_out = m_iout;
- }
-
- data.input_frames = incount;
- data.output_frames = outcount;
- data.src_ratio = ratio;
- data.end_of_input = (final ? 1 : 0);
-
- int err = 0;
- err = src_process(m_src, &data);
-
- if (err) {
- std::cerr << "Resampler::process: libsamplerate error: "
- << src_strerror(err) << std::endl;
- throw Resampler::ImplementationError; //!!! of course, need to catch this!
- }
-
- if (m_channels > 1) {
- for (int i = 0; i < data.output_frames_gen; ++i) {
- for (int c = 0; c < m_channels; ++c) {
- out[c][i] = m_iout[i * m_channels + c];
- }
- }
- }
-
- m_lastRatio = ratio;
-
- return data.output_frames_gen;
-}
-
-void
-D_SRC::reset()
-{
- src_reset(m_src);
-}
-
-
-
-} /* end namespace Resamplers */
-
-Resampler::Resampler(Resampler::Quality quality, int channels,
- int maxBufferSize, int debugLevel)
-{
- m_method = -1;
-
- switch (quality) {
-
- case Resampler::Best:
- m_method = 1;
- break;
-
- case Resampler::FastestTolerable:
- m_method = 1;
- break;
-
- case Resampler::Fastest:
- m_method = 1;
- break;
- }
-
- if (m_method == -1) {
- std::cerr << "Resampler::Resampler(" << quality << ", " << channels
- << ", " << maxBufferSize << "): No implementation available!"
- << std::endl;
- abort();
- }
-
- switch (m_method) {
- case 0:
- std::cerr << "Resampler::Resampler(" << quality << ", " << channels
- << ", " << maxBufferSize << "): No implementation available!"
- << std::endl;
- abort();
- break;
-
- case 1:
- d = new Resamplers::D_SRC(quality, channels, maxBufferSize, debugLevel);
- break;
-
- case 2:
- std::cerr << "Resampler::Resampler(" << quality << ", " << channels
- << ", " << maxBufferSize << "): No implementation available!"
- << std::endl;
- abort();
- break;
- }
-}
-
-Resampler::~Resampler()
-{
- delete d;
-}
-
-int
-Resampler::resample(const float *const R__ *const R__ in,
- float *const R__ *const R__ out,
- int incount, float ratio, bool final)
-{
- Profiler profiler("Resampler::resample");
- return d->resample(in, out, incount, ratio, final);
-}
-
-void
-Resampler::reset()
-{
- d->reset();
-}
-
-}
diff --git a/libs/rubberband/src/Resampler.h b/libs/rubberband/src/Resampler.h
deleted file mode 100644
index 3c4af40e8e..0000000000
--- a/libs/rubberband/src/Resampler.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_RESAMPLER_H_
-#define _RUBBERBAND_RESAMPLER_H_
-
-#include <sys/types.h>
-
-#include "sysutils.h"
-
-namespace RubberBand {
-
-class ResamplerImpl;
-
-class Resampler
-{
-public:
- enum Quality { Best, FastestTolerable, Fastest };
- enum Exception { ImplementationError };
-
- /**
- * Construct a resampler with the given quality level and channel
- * count. maxBufferSize gives a bound on the maximum incount size
- * that may be passed to the resample function before the
- * resampler needs to reallocate its internal buffers.
- */
- Resampler(Quality quality, int channels, int maxBufferSize = 0,
- int debugLevel = 0);
- ~Resampler();
-
- int resample(const float *const R__ *const R__ in,
- float *const R__ *const R__ out,
- int incount,
- float ratio,
- bool final = false);
-
- void reset();
-
-protected:
- ResamplerImpl *d;
- int m_method;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/RingBuffer.h b/libs/rubberband/src/RingBuffer.h
deleted file mode 100644
index a9262c8cdc..0000000000
--- a/libs/rubberband/src/RingBuffer.h
+++ /dev/null
@@ -1,670 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_RINGBUFFER_H_
-#define _RUBBERBAND_RINGBUFFER_H_
-
-#include <cstring>
-#include <sys/types.h>
-
-#include <cstring>
-
-#ifndef PLATFORM_WINDOWS
-#include <sys/mman.h>
-#endif
-
-#include "Scavenger.h"
-#include "Profiler.h"
-
-
-//#define DEBUG_RINGBUFFER 1
-
-#ifdef PLATFORM_WINDOWS
-#define MLOCK(a,b) 1
-#define MUNLOCK(a,b) 1
-#else
-#define MLOCK(a,b) ::mlock(a,b)
-#define MUNLOCK(a,b) ::munlock(a,b)
-#endif
-
-#ifdef DEBUG_RINGBUFFER
-#include <iostream>
-#endif
-
-namespace RubberBand {
-
-/**
- * RingBuffer implements a lock-free ring buffer for one writer and N
- * readers, that is to be used to store a sample type T.
- */
-
-template <typename T, int N = 1>
-class RingBuffer
-{
-public:
- /**
- * Create a ring buffer with room to write n samples.
- *
- * Note that the internal storage size will actually be n+1
- * samples, as one element is unavailable for administrative
- * reasons. Since the ring buffer performs best if its size is a
- * power of two, this means n should ideally be some power of two
- * minus one.
- */
- RingBuffer(int n);
-
- virtual ~RingBuffer();
-
- /**
- * Return the total capacity of the ring buffer in samples.
- * (This is the argument n passed to the constructor.)
- */
- int getSize() const;
-
- /**
- * Resize the ring buffer. This also empties it; use resized()
- * below if you do not want this to happen. Actually swaps in a
- * new, larger buffer; the old buffer is scavenged after a seemly
- * delay. Should be called from the write thread.
- */
- void resize(int newSize);
-
- /**
- * Return a new ring buffer (allocated with "new" -- called must
- * delete when no longer needed) of the given size, containing the
- * same data as this one. If another thread reads from or writes
- * to this buffer during the call, the results may be incomplete
- * or inconsistent. If this buffer's data will not fit in the new
- * size, the contents are undefined.
- */
- RingBuffer<T, N> *resized(int newSize, int R = 0) const;
-
- /**
- * Lock the ring buffer into physical memory. Returns true
- * for success.
- */
- bool mlock();
-
- /**
- * Reset read and write pointers, thus emptying the buffer.
- * Should be called from the write thread.
- */
- void reset();
-
- /**
- * Return the amount of data available for reading by reader R, in
- * samples.
- */
- int getReadSpace(int R = 0) const;
-
- /**
- * Return the amount of space available for writing, in samples.
- */
- int getWriteSpace() const;
-
- /**
- * Read n samples from the buffer, for reader R. If fewer than n
- * are available, the remainder will be zeroed out. Returns the
- * number of samples actually read.
- */
- int read(T *R__ destination, int n, int R = 0);
-
- /**
- * Read n samples from the buffer, for reader R, adding them to
- * the destination. If fewer than n are available, the remainder
- * will be left alone. Returns the number of samples actually
- * read.
- */
- int readAdding(T *R__ destination, int n, int R = 0);
-
- /**
- * Read one sample from the buffer, for reader R. If no sample is
- * available, this will silently return zero. Calling this
- * repeatedly is obviously slower than calling read once, but it
- * may be good enough if you don't want to allocate a buffer to
- * read into.
- */
- T readOne(int R = 0);
-
- /**
- * Read n samples from the buffer, if available, for reader R,
- * without advancing the read pointer -- i.e. a subsequent read()
- * or skip() will be necessary to empty the buffer. If fewer than
- * n are available, the remainder will be zeroed out. Returns the
- * number of samples actually read.
- */
- int peek(T *R__ destination, int n, int R = 0) const;
-
- /**
- * Read one sample from the buffer, if available, without
- * advancing the read pointer -- i.e. a subsequent read() or
- * skip() will be necessary to empty the buffer. Returns zero if
- * no sample was available.
- */
- T peekOne(int R = 0) const;
-
- /**
- * Pretend to read n samples from the buffer, for reader R,
- * without actually returning them (i.e. discard the next n
- * samples). Returns the number of samples actually available for
- * discarding.
- */
- int skip(int n, int R = 0);
-
- /**
- * Write n samples to the buffer. If insufficient space is
- * available, not all samples may actually be written. Returns
- * the number of samples actually written.
- */
- int write(const T *source, int n);
-
- /**
- * Write n zero-value samples to the buffer. If insufficient
- * space is available, not all zeros may actually be written.
- * Returns the number of zeroes actually written.
- */
- int zero(int n);
-
-protected:
- T *R__ m_buffer;
- volatile int m_writer;
- volatile int m_readers[N];
- int m_size;
- bool m_mlocked;
-
- static Scavenger<ScavengerArrayWrapper<T> > m_scavenger;
-
-private:
- RingBuffer(const RingBuffer &); // not provided
- RingBuffer &operator=(const RingBuffer &); // not provided
-};
-
-template <typename T, int N>
-Scavenger<ScavengerArrayWrapper<T> > RingBuffer<T, N>::m_scavenger;
-
-template <typename T, int N>
-RingBuffer<T, N>::RingBuffer(int n) :
- m_buffer(new T[n + 1]),
- m_writer(0),
- m_size(n + 1),
- m_mlocked(false)
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::RingBuffer(" << n << ")" << std::endl;
-#endif
-
- for (int i = 0; i < N; ++i) m_readers[i] = 0;
-
- m_scavenger.scavenge();
-}
-
-template <typename T, int N>
-RingBuffer<T, N>::~RingBuffer()
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::~RingBuffer" << std::endl;
-#endif
-
- if (m_mlocked) {
- MUNLOCK((void *)m_buffer, m_size * sizeof(T));
- }
- delete[] m_buffer;
-
- m_scavenger.scavenge();
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::getSize() const
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::getSize(): " << m_size-1 << std::endl;
-#endif
-
- return m_size - 1;
-}
-
-template <typename T, int N>
-void
-RingBuffer<T, N>::resize(int newSize)
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::resize(" << newSize << ")" << std::endl;
-#endif
-
- m_scavenger.scavenge();
-
- if (m_mlocked) {
- MUNLOCK((void *)m_buffer, m_size * sizeof(T));
- }
-
- m_scavenger.claim(new ScavengerArrayWrapper<T>(m_buffer));
-
- reset();
- m_buffer = new T[newSize + 1];
- m_size = newSize + 1;
-
- if (m_mlocked) {
- if (MLOCK((void *)m_buffer, m_size * sizeof(T))) {
- m_mlocked = false;
- }
- }
-}
-
-template <typename T, int N>
-RingBuffer<T, N> *
-RingBuffer<T, N>::resized(int newSize, int R) const
-{
- RingBuffer<T, N> *newBuffer = new RingBuffer<T, N>(newSize);
-
- int w = m_writer;
- int r = m_readers[R];
-
- while (r != w) {
- T value = m_buffer[r];
- newBuffer->write(&value, 1);
- if (++r == m_size) r = 0;
- }
-
- return newBuffer;
-}
-
-template <typename T, int N>
-bool
-RingBuffer<T, N>::mlock()
-{
- if (MLOCK((void *)m_buffer, m_size * sizeof(T))) return false;
- m_mlocked = true;
- return true;
-}
-
-template <typename T, int N>
-void
-RingBuffer<T, N>::reset()
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::reset" << std::endl;
-#endif
-
- m_writer = 0;
- for (int i = 0; i < N; ++i) m_readers[i] = 0;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::getReadSpace(int R) const
-{
- int writer = m_writer;
- int reader = m_readers[R];
- int space;
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::getReadSpace(" << R << "): reader " << reader << ", writer " << writer << std::endl;
-#endif
-
- if (writer > reader) space = writer - reader;
- else if (writer < reader) space = (writer + m_size) - reader;
- else space = 0;
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::getReadSpace(" << R << "): " << space << std::endl;
-#endif
-
- return space;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::getWriteSpace() const
-{
- int space = 0;
- for (int i = 0; i < N; ++i) {
- int writer = m_writer;
- int reader = m_readers[i];
- int here = (reader + m_size - writer - 1);
- if (here >= m_size) here -= m_size;
- if (i == 0 || here < space) space = here;
- }
-
-#ifdef DEBUG_RINGBUFFER
- int rs(getReadSpace()), rp(m_readers[0]);
-
- std::cerr << "RingBuffer: write space " << space << ", read space "
- << rs << ", total " << (space + rs) << ", m_size " << m_size << std::endl;
- std::cerr << "RingBuffer: reader " << rp << ", writer " << m_writer << std::endl;
-#endif
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::getWriteSpace(): " << space << std::endl;
-#endif
-
- return space;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::read(T *R__ destination, int n, int R)
-{
- Profiler profiler("RingBuffer::read");
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::read(dest, " << n << ", " << R << ")" << std::endl;
-#endif
-
- int available = getReadSpace(R);
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only " << available << " samples available"
- << std::endl;
-#endif
- for (int i = available; i < n; ++i) {
- destination[i] = 0;
- }
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_readers[R];
- int here = m_size - reader;
- T *const R__ bufbase = m_buffer + reader;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- destination[i] = bufbase[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- destination[i] = bufbase[i];
- }
- T *const R__ destbase = destination + here;
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- destbase[i] = m_buffer[i];
- }
- }
-
- reader += n;
- while (reader >= m_size) reader -= m_size;
- m_readers[R] = reader;
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::read: read " << n << ", reader now " << m_readers[R] << std::endl;
-#endif
-
- return n;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::readAdding(T *R__ destination, int n, int R)
-{
- Profiler profiler("RingBuffer::readAdding");
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::readAdding(dest, " << n << ", " << R << ")" << std::endl;
-#endif
-
- int available = getReadSpace(R);
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only " << available << " samples available"
- << std::endl;
-#endif
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_readers[R];
- int here = m_size - reader;
- const T *const R__ bufbase = m_buffer + reader;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- destination[i] += bufbase[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- destination[i] += bufbase[i];
- }
- T *const R__ destbase = destination + here;
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- destbase[i] += m_buffer[i];
- }
- }
-
- reader += n;
- while (reader >= m_size) reader -= m_size;
- m_readers[R] = reader;
- return n;
-}
-
-template <typename T, int N>
-T
-RingBuffer<T, N>::readOne(int R)
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::readOne(" << R << ")" << std::endl;
-#endif
-
- if (m_writer == m_readers[R]) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: No sample available"
- << std::endl;
-#endif
- return 0;
- }
- int reader = m_readers[R];
- T value = m_buffer[reader];
- if (++reader == m_size) reader = 0;
- m_readers[R] = reader;
- return value;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::peek(T *R__ destination, int n, int R) const
-{
- Profiler profiler("RingBuffer::peek");
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::peek(dest, " << n << ", " << R << ")" << std::endl;
-#endif
-
- int available = getReadSpace(R);
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only " << available << " samples available"
- << std::endl;
-#endif
- memset(destination + available, 0, (n - available) * sizeof(T));
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_readers[R];
- int here = m_size - reader;
- const T *const R__ bufbase = m_buffer + reader;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- destination[i] = bufbase[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- destination[i] = bufbase[i];
- }
- T *const R__ destbase = destination + here;
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- destbase[i] = m_buffer[i];
- }
- }
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::peek: read " << n << std::endl;
-#endif
-
- return n;
-}
-
-template <typename T, int N>
-T
-RingBuffer<T, N>::peekOne(int R) const
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::peek(" << R << ")" << std::endl;
-#endif
-
- if (m_writer == m_readers[R]) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: No sample available"
- << std::endl;
-#endif
- return 0;
- }
- T value = m_buffer[m_readers[R]];
- return value;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::skip(int n, int R)
-{
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::skip(" << n << ", " << R << ")" << std::endl;
-#endif
-
- int available = getReadSpace(R);
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only " << available << " samples available"
- << std::endl;
-#endif
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_readers[R];
- reader += n;
- while (reader >= m_size) reader -= m_size;
- m_readers[R] = reader;
- return n;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::write(const T *source, int n)
-{
- Profiler profiler("RingBuffer::write");
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::write(" << n << ")" << std::endl;
-#endif
-
- int available = getWriteSpace();
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only room for " << available << " samples"
- << std::endl;
-#endif
- n = available;
- }
- if (n == 0) return n;
-
- int writer = m_writer;
- int here = m_size - writer;
- T *const R__ bufbase = m_buffer + writer;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- bufbase[i] = source[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- bufbase[i] = source[i];
- }
- const int nh = n - here;
- const T *const R__ srcbase = source + here;
- T *const R__ buf = m_buffer;
- for (int i = 0; i < nh; ++i) {
- buf[i] = srcbase[i];
- }
- }
-
- writer += n;
- while (writer >= m_size) writer -= m_size;
- m_writer = writer;
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::write: wrote " << n << ", writer now " << m_writer << std::endl;
-#endif
-
- return n;
-}
-
-template <typename T, int N>
-int
-RingBuffer<T, N>::zero(int n)
-{
- Profiler profiler("RingBuffer::zero");
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "RingBuffer<T," << N << ">[" << this << "]::zero(" << n << ")" << std::endl;
-#endif
-
- int available = getWriteSpace();
- if (n > available) {
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "WARNING: Only room for " << available << " samples"
- << std::endl;
-#endif
- n = available;
- }
- if (n == 0) return n;
-
- int writer = m_writer;
- int here = m_size - writer;
- T *const R__ bufbase = m_buffer + writer;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- bufbase[i] = 0;
- }
- } else {
- for (int i = 0; i < here; ++i) {
- bufbase[i] = 0;
- }
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- m_buffer[i] = 0;
- }
- }
-
- writer += n;
- while (writer >= m_size) writer -= m_size;
- m_writer = writer;
-
-#ifdef DEBUG_RINGBUFFER
- std::cerr << "writer -> " << m_writer << std::endl;
-#endif
-
- return n;
-}
-
-}
-
-//#include "RingBuffer.cpp"
-
-#endif // _RINGBUFFER_H_
diff --git a/libs/rubberband/src/RubberBandStretcher.cpp b/libs/rubberband/src/RubberBandStretcher.cpp
deleted file mode 100644
index 7e249c6633..0000000000
--- a/libs/rubberband/src/RubberBandStretcher.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "StretcherImpl.h"
-
-namespace RubberBand {
-
-
-RubberBandStretcher::RubberBandStretcher(size_t sampleRate,
- size_t channels,
- Options options,
- double initialTimeRatio,
- double initialPitchScale) :
- m_d(new Impl(sampleRate, channels, options,
- initialTimeRatio, initialPitchScale))
-{
-}
-
-RubberBandStretcher::~RubberBandStretcher()
-{
- delete m_d;
-}
-
-void
-RubberBandStretcher::reset()
-{
- m_d->reset();
-}
-
-void
-RubberBandStretcher::setTimeRatio(double ratio)
-{
- m_d->setTimeRatio(ratio);
-}
-
-void
-RubberBandStretcher::setPitchScale(double scale)
-{
- m_d->setPitchScale(scale);
-}
-
-double
-RubberBandStretcher::getTimeRatio() const
-{
- return m_d->getTimeRatio();
-}
-
-double
-RubberBandStretcher::getPitchScale() const
-{
- return m_d->getPitchScale();
-}
-
-size_t
-RubberBandStretcher::getLatency() const
-{
- return m_d->getLatency();
-}
-
-void
-RubberBandStretcher::setTransientsOption(Options options)
-{
- m_d->setTransientsOption(options);
-}
-
-void
-RubberBandStretcher::setPhaseOption(Options options)
-{
- m_d->setPhaseOption(options);
-}
-
-void
-RubberBandStretcher::setFormantOption(Options options)
-{
- m_d->setFormantOption(options);
-}
-
-void
-RubberBandStretcher::setPitchOption(Options options)
-{
- m_d->setPitchOption(options);
-}
-
-void
-RubberBandStretcher::setExpectedInputDuration(size_t samples)
-{
- m_d->setExpectedInputDuration(samples);
-}
-
-void
-RubberBandStretcher::setMaxProcessSize(size_t samples)
-{
- m_d->setMaxProcessSize(samples);
-}
-
-size_t
-RubberBandStretcher::getSamplesRequired() const
-{
- return m_d->getSamplesRequired();
-}
-
-void
-RubberBandStretcher::study(const float *const *input, size_t samples,
- bool final)
-{
- m_d->study(input, samples, final);
-}
-
-void
-RubberBandStretcher::process(const float *const *input, size_t samples,
- bool final)
-{
- m_d->process(input, samples, final);
-}
-
-int
-RubberBandStretcher::available() const
-{
- return m_d->available();
-}
-
-size_t
-RubberBandStretcher::retrieve(float *const *output, size_t samples) const
-{
- return m_d->retrieve(output, samples);
-}
-
-float
-RubberBandStretcher::getFrequencyCutoff(int n) const
-{
- return m_d->getFrequencyCutoff(n);
-}
-
-void
-RubberBandStretcher::setFrequencyCutoff(int n, float f)
-{
- m_d->setFrequencyCutoff(n, f);
-}
-
-size_t
-RubberBandStretcher::getInputIncrement() const
-{
- return m_d->getInputIncrement();
-}
-
-std::vector<int>
-RubberBandStretcher::getOutputIncrements() const
-{
- return m_d->getOutputIncrements();
-}
-
-std::vector<float>
-RubberBandStretcher::getPhaseResetCurve() const
-{
- return m_d->getPhaseResetCurve();
-}
-
-std::vector<int>
-RubberBandStretcher::getExactTimePoints() const
-{
- return m_d->getExactTimePoints();
-}
-
-size_t
-RubberBandStretcher::getChannelCount() const
-{
- return m_d->getChannelCount();
-}
-
-void
-RubberBandStretcher::calculateStretch()
-{
- m_d->calculateStretch();
-}
-
-void
-RubberBandStretcher::setDebugLevel(int level)
-{
- m_d->setDebugLevel(level);
-}
-
-void
-RubberBandStretcher::setDefaultDebugLevel(int level)
-{
- Impl::setDefaultDebugLevel(level);
-}
-
-}
-
diff --git a/libs/rubberband/src/Scavenger.h b/libs/rubberband/src/Scavenger.h
deleted file mode 100644
index a922d7ec6e..0000000000
--- a/libs/rubberband/src/Scavenger.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_SCAVENGER_H_
-#define _RUBBERBAND_SCAVENGER_H_
-
-#include <vector>
-#include <list>
-#include <iostream>
-
-#ifndef PLATFORM_WINDOWS
-#include <sys/time.h>
-#endif
-
-#include "Thread.h"
-#include "sysutils.h"
-
-namespace RubberBand {
-
-/**
- * A very simple class that facilitates running things like plugins
- * without locking, by collecting unwanted objects and deleting them
- * after a delay so as to be sure nobody's in the middle of using
- * them. Requires scavenge() to be called regularly from a non-RT
- * thread.
- *
- * This is currently not at all suitable for large numbers of objects
- * -- it's just a quick hack for use with things like plugins.
- */
-
-template <typename T>
-class Scavenger
-{
-public:
- Scavenger(int sec = 2, int defaultObjectListSize = 200);
- ~Scavenger();
-
- /**
- * Call from an RT thread etc., to pass ownership of t to us.
- * Only one thread should be calling this on any given scavenger.
- */
- void claim(T *t);
-
- /**
- * Call from a non-RT thread.
- * Only one thread should be calling this on any given scavenger.
- */
- void scavenge(bool clearNow = false);
-
-protected:
- typedef std::pair<T *, int> ObjectTimePair;
- typedef std::vector<ObjectTimePair> ObjectTimeList;
- ObjectTimeList m_objects;
- int m_sec;
-
- typedef std::list<T *> ObjectList;
- ObjectList m_excess;
- int m_lastExcess;
- Mutex m_excessMutex;
- void pushExcess(T *);
- void clearExcess(int);
-
- unsigned int m_claimed;
- unsigned int m_scavenged;
-};
-
-/**
- * A wrapper to permit arrays to be scavenged.
- */
-
-template <typename T>
-class ScavengerArrayWrapper
-{
-public:
- ScavengerArrayWrapper(T *array) : m_array(array) { }
- ~ScavengerArrayWrapper() { delete[] m_array; }
-
-private:
- T *m_array;
-};
-
-
-template <typename T>
-Scavenger<T>::Scavenger(int sec, int defaultObjectListSize) :
- m_objects(ObjectTimeList(defaultObjectListSize)),
- m_sec(sec),
- m_claimed(0),
- m_scavenged(0)
-{
-}
-
-template <typename T>
-Scavenger<T>::~Scavenger()
-{
- if (m_scavenged < m_claimed) {
- for (size_t i = 0; i < m_objects.size(); ++i) {
- ObjectTimePair &pair = m_objects[i];
- if (pair.first != 0) {
- T *ot = pair.first;
- pair.first = 0;
- delete ot;
- ++m_scavenged;
- }
- }
- }
-
- clearExcess(0);
-}
-
-template <typename T>
-void
-Scavenger<T>::claim(T *t)
-{
-// std::cerr << "Scavenger::claim(" << t << ")" << std::endl;
-
- struct timeval tv;
- (void)gettimeofday(&tv, 0);
- int sec = tv.tv_sec;
-
- for (size_t i = 0; i < m_objects.size(); ++i) {
- ObjectTimePair &pair = m_objects[i];
- if (pair.first == 0) {
- pair.second = sec;
- pair.first = t;
- ++m_claimed;
- return;
- }
- }
-
- std::cerr << "WARNING: Scavenger::claim(" << t << "): run out of slots, "
- << "using non-RT-safe method" << std::endl;
- pushExcess(t);
-}
-
-template <typename T>
-void
-Scavenger<T>::scavenge(bool clearNow)
-{
-// std::cerr << "Scavenger::scavenge: scavenged " << m_scavenged << ", claimed " << m_claimed << std::endl;
-
- if (m_scavenged >= m_claimed) return;
-
- struct timeval tv;
- (void)gettimeofday(&tv, 0);
- int sec = tv.tv_sec;
-
- for (size_t i = 0; i < m_objects.size(); ++i) {
- ObjectTimePair &pair = m_objects[i];
- if (clearNow ||
- (pair.first != 0 && pair.second + m_sec < sec)) {
- T *ot = pair.first;
- pair.first = 0;
- delete ot;
- ++m_scavenged;
- }
- }
-
- if (sec > m_lastExcess + m_sec) {
- clearExcess(sec);
- }
-}
-
-template <typename T>
-void
-Scavenger<T>::pushExcess(T *t)
-{
- m_excessMutex.lock();
- m_excess.push_back(t);
- struct timeval tv;
- (void)gettimeofday(&tv, 0);
- m_lastExcess = tv.tv_sec;
- m_excessMutex.unlock();
-}
-
-template <typename T>
-void
-Scavenger<T>::clearExcess(int sec)
-{
- m_excessMutex.lock();
- for (typename ObjectList::iterator i = m_excess.begin();
- i != m_excess.end(); ++i) {
- delete *i;
- }
- m_excess.clear();
- m_lastExcess = sec;
- m_excessMutex.unlock();
-}
-
-}
-
-#endif
diff --git a/libs/rubberband/src/SilentAudioCurve.cpp b/libs/rubberband/src/SilentAudioCurve.cpp
deleted file mode 100644
index 2bc8bdcf5f..0000000000
--- a/libs/rubberband/src/SilentAudioCurve.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "SilentAudioCurve.h"
-
-#include <cmath>
-
-namespace RubberBand
-{
-
-SilentAudioCurve::SilentAudioCurve(size_t sampleRate, size_t windowSize) :
- AudioCurve(sampleRate, windowSize)
-{
-}
-
-SilentAudioCurve::~SilentAudioCurve()
-{
-}
-
-void
-SilentAudioCurve::reset()
-{
-}
-
-void
-SilentAudioCurve::setWindowSize(size_t newSize)
-{
- m_windowSize = newSize;
-}
-
-float
-SilentAudioCurve::process(const float *R__ mag, size_t)
-{
- const int hs = m_windowSize / 2;
- static float threshold = powf(10.f, -6);
-
- for (int i = 0; i <= hs; ++i) {
- if (mag[i] > threshold) return 0.f;
- }
-
- return 1.f;
-}
-
-float
-SilentAudioCurve::processDouble(const double *R__ mag, size_t)
-{
- const int hs = m_windowSize / 2;
- static double threshold = pow(10.0, -6);
-
- for (int i = 0; i <= hs; ++i) {
- if (mag[i] > threshold) return 0.f;
- }
-
- return 1.f;
-}
-
-}
-
diff --git a/libs/rubberband/src/SilentAudioCurve.h b/libs/rubberband/src/SilentAudioCurve.h
deleted file mode 100644
index 6309f9dddf..0000000000
--- a/libs/rubberband/src/SilentAudioCurve.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _SILENT_AUDIO_CURVE_H_
-#define _SILENT_AUDIO_CURVE_H_
-
-#include "AudioCurve.h"
-
-namespace RubberBand
-{
-
-class SilentAudioCurve : public AudioCurve
-{
-public:
- SilentAudioCurve(size_t sampleRate, size_t windowSize);
- virtual ~SilentAudioCurve();
-
- virtual void setWindowSize(size_t newSize);
-
- virtual float process(const float *R__ mag, size_t increment);
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset();
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp b/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp
deleted file mode 100644
index 7d98828915..0000000000
--- a/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "SpectralDifferenceAudioCurve.h"
-
-namespace RubberBand
-{
-
-SpectralDifferenceAudioCurve::SpectralDifferenceAudioCurve(size_t sampleRate, size_t windowSize) :
- AudioCurve(sampleRate, windowSize)
-{
- m_prevMag = new float[m_windowSize/2 + 1];
-
- for (size_t i = 0; i <= m_windowSize/2; ++i) {
- m_prevMag[i] = 0.f;
- }
-}
-
-SpectralDifferenceAudioCurve::~SpectralDifferenceAudioCurve()
-{
- delete[] m_prevMag;
-}
-
-void
-SpectralDifferenceAudioCurve::reset()
-{
- for (size_t i = 0; i <= m_windowSize/2; ++i) {
- m_prevMag[i] = 0;
- }
-}
-
-void
-SpectralDifferenceAudioCurve::setWindowSize(size_t newSize)
-{
- delete[] m_prevMag;
- m_windowSize = newSize;
-
- m_prevMag = new float[m_windowSize/2 + 1];
-
- reset();
-}
-
-float
-SpectralDifferenceAudioCurve::process(const float *R__ mag, size_t /*increment*/)
-{
- float result = 0.0;
-
- for (size_t n = 0; n <= m_windowSize / 2; ++n) {
- result += sqrtf(fabsf((mag[n] * mag[n]) -
- (m_prevMag[n] * m_prevMag[n])));
- m_prevMag[n] = mag[n];
- }
-
- return result;
-}
-
-float
-SpectralDifferenceAudioCurve::processDouble(const double *R__ mag, size_t /*increment*/)
-{
- float result = 0.0;
-
- for (size_t n = 0; n <= m_windowSize / 2; ++n) {
- result += sqrtf(fabsf((mag[n] * mag[n]) -
- (m_prevMag[n] * m_prevMag[n])));
- m_prevMag[n] = (float)mag[n];
- }
-
- return result;
-}
-
-}
-
diff --git a/libs/rubberband/src/SpectralDifferenceAudioCurve.h b/libs/rubberband/src/SpectralDifferenceAudioCurve.h
deleted file mode 100644
index 4295653cf0..0000000000
--- a/libs/rubberband/src/SpectralDifferenceAudioCurve.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _SPECTRALDIFFERENCE_AUDIO_CURVE_H_
-#define _SPECTRALDIFFERENCE_AUDIO_CURVE_H_
-
-#include "AudioCurve.h"
-#include "Window.h"
-
-namespace RubberBand
-{
-
-class SpectralDifferenceAudioCurve : public AudioCurve
-{
-public:
- SpectralDifferenceAudioCurve(size_t sampleRate, size_t windowSize);
-
- virtual ~SpectralDifferenceAudioCurve();
-
- virtual void setWindowSize(size_t newSize);
-
- virtual float process(const float *R__ mag, size_t increment);
- virtual float processDouble(const double *R__ mag, size_t increment);
- virtual void reset();
-
-protected:
- float *R__ m_prevMag;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/StretchCalculator.cpp b/libs/rubberband/src/StretchCalculator.cpp
deleted file mode 100644
index 18ee9cc9c3..0000000000
--- a/libs/rubberband/src/StretchCalculator.cpp
+++ /dev/null
@@ -1,802 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifdef COMPILER_MSVC
-#include "bsd-3rdparty/float_cast/float_cast.h"
-#endif
-#include "StretchCalculator.h"
-
-#include <algorithm>
-#include <math.h>
-#include <algorithm>
-#include <iostream>
-#include <deque>
-#include <set>
-#include <cassert>
-#include <algorithm>
-
-#include "sysutils.h"
-
-namespace RubberBand
-{
-
-StretchCalculator::StretchCalculator(size_t sampleRate,
- size_t inputIncrement,
- bool useHardPeaks) :
- m_sampleRate(sampleRate),
- m_increment(inputIncrement),
- m_prevDf(0),
- m_divergence(0),
- m_recovery(0),
- m_prevRatio(1.0),
- m_transientAmnesty(0),
- m_useHardPeaks(useHardPeaks)
-{
-// std::cerr << "StretchCalculator::StretchCalculator: useHardPeaks = " << useHardPeaks << std::endl;
-}
-
-StretchCalculator::~StretchCalculator()
-{
-}
-
-std::vector<int>
-StretchCalculator::calculate(double ratio, size_t inputDuration,
- const std::vector<float> &phaseResetDf,
- const std::vector<float> &stretchDf)
-{
- assert(phaseResetDf.size() == stretchDf.size());
-
- m_lastPeaks = findPeaks(phaseResetDf);
- std::vector<Peak> &peaks = m_lastPeaks;
- size_t totalCount = phaseResetDf.size();
-
- std::vector<int> increments;
-
- size_t outputDuration = lrint(inputDuration * ratio);
-
- if (m_debugLevel > 0) {
- std::cerr << "StretchCalculator::calculate(): inputDuration " << inputDuration << ", ratio " << ratio << ", outputDuration " << outputDuration;
- }
-
- outputDuration = lrint((phaseResetDf.size() * m_increment) * ratio);
-
- if (m_debugLevel > 0) {
- std::cerr << " (rounded up to " << outputDuration << ")";
- std::cerr << ", df size " << phaseResetDf.size() << std::endl;
- }
-
- std::vector<size_t> fixedAudioChunks;
- for (size_t i = 0; i < peaks.size(); ++i) {
- fixedAudioChunks.push_back
- (lrint((double(peaks[i].chunk) * outputDuration) / totalCount));
- }
-
- if (m_debugLevel > 1) {
- std::cerr << "have " << peaks.size() << " fixed positions" << std::endl;
- }
-
- size_t totalInput = 0, totalOutput = 0;
-
- // For each region between two consecutive time sync points, we
- // want to take the number of output chunks to be allocated and
- // the detection function values within the range, and produce a
- // series of increments that sum to the number of output chunks,
- // such that each increment is displaced from the input increment
- // by an amount inversely proportional to the magnitude of the
- // stretch detection function at that input step.
-
- size_t regionTotalChunks = 0;
-
- for (size_t i = 0; i <= peaks.size(); ++i) {
-
- size_t regionStart, regionStartChunk, regionEnd, regionEndChunk;
- bool phaseReset = false;
-
- if (i == 0) {
- regionStartChunk = 0;
- regionStart = 0;
- } else {
- regionStartChunk = peaks[i-1].chunk;
- regionStart = fixedAudioChunks[i-1];
- phaseReset = peaks[i-1].hard;
- }
-
- if (i == peaks.size()) {
- regionEndChunk = totalCount;
- regionEnd = outputDuration;
- } else {
- regionEndChunk = peaks[i].chunk;
- regionEnd = fixedAudioChunks[i];
- }
-
- size_t regionDuration = regionEnd - regionStart;
- regionTotalChunks += regionDuration;
-
- std::vector<float> dfRegion;
-
- for (size_t j = regionStartChunk; j != regionEndChunk; ++j) {
- dfRegion.push_back(stretchDf[j]);
- }
-
- if (m_debugLevel > 1) {
- std::cerr << "distributeRegion from " << regionStartChunk << " to " << regionEndChunk << " (chunks " << regionStart << " to " << regionEnd << ")" << std::endl;
- }
-
- dfRegion = smoothDF(dfRegion);
-
- std::vector<int> regionIncrements = distributeRegion
- (dfRegion, regionDuration, ratio, phaseReset);
-
- size_t totalForRegion = 0;
-
- for (size_t j = 0; j < regionIncrements.size(); ++j) {
-
- int incr = regionIncrements[j];
-
- if (j == 0 && phaseReset) increments.push_back(-incr);
- else increments.push_back(incr);
-
- if (incr > 0) totalForRegion += incr;
- else totalForRegion += -incr;
-
- totalInput += m_increment;
- }
-
- if (totalForRegion != regionDuration) {
- std::cerr << "*** WARNING: distributeRegion returned wrong duration " << totalForRegion << ", expected " << regionDuration << std::endl;
- }
-
- totalOutput += totalForRegion;
- }
-
- if (m_debugLevel > 0) {
- std::cerr << "total input increment = " << totalInput << " (= " << totalInput / m_increment << " chunks), output = " << totalOutput << ", ratio = " << double(totalOutput)/double(totalInput) << ", ideal output " << size_t(ceil(totalInput * ratio)) << std::endl;
- std::cerr << "(region total = " << regionTotalChunks << ")" << std::endl;
- }
-
- return increments;
-}
-
-int
-StretchCalculator::calculateSingle(double ratio,
- float df,
- size_t increment)
-{
- if (increment == 0) increment = m_increment;
-
- bool isTransient = false;
-
- // We want to ensure, as close as possible, that the phase reset
- // points appear at _exactly_ the right audio frame numbers.
-
- // In principle, the threshold depends on chunk size: larger chunk
- // sizes need higher thresholds. Since chunk size depends on
- // ratio, I suppose we could in theory calculate the threshold
- // from the ratio directly. For the moment we're happy if it
- // works well in common situations.
-
- float transientThreshold = 0.35f;
- if (ratio > 1) transientThreshold = 0.25f;
-
- if (m_useHardPeaks && df > m_prevDf * 1.1f && df > transientThreshold) {
- isTransient = true;
- }
-
- if (m_debugLevel > 2) {
- std::cerr << "df = " << df << ", prevDf = " << m_prevDf
- << ", thresh = " << transientThreshold << std::endl;
- }
-
- m_prevDf = df;
-
- bool ratioChanged = (ratio != m_prevRatio);
- m_prevRatio = ratio;
-
- if (isTransient && m_transientAmnesty == 0) {
- if (m_debugLevel > 1) {
- std::cerr << "StretchCalculator::calculateSingle: transient"
- << std::endl;
- }
- m_divergence += increment - (increment * ratio);
-
- // as in offline mode, 0.05 sec approx min between transients
- m_transientAmnesty =
- lrint(ceil(double(m_sampleRate) / (20 * double(increment))));
-
- m_recovery = m_divergence / ((m_sampleRate / 10.0) / increment);
- return -int(increment);
- }
-
- if (ratioChanged) {
- m_recovery = m_divergence / ((m_sampleRate / 10.0) / increment);
- }
-
- if (m_transientAmnesty > 0) --m_transientAmnesty;
-
- int incr = lrint(increment * ratio - m_recovery);
- if (m_debugLevel > 2 || (m_debugLevel > 1 && m_divergence != 0)) {
- std::cerr << "divergence = " << m_divergence << ", recovery = " << m_recovery << ", incr = " << incr << ", ";
- }
- if (incr < lrint((increment * ratio) / 2)) {
- incr = lrint((increment * ratio) / 2);
- } else if (incr > lrint(increment * ratio * 2)) {
- incr = lrint(increment * ratio * 2);
- }
-
- double divdiff = (increment * ratio) - incr;
-
- if (m_debugLevel > 2 || (m_debugLevel > 1 && m_divergence != 0)) {
- std::cerr << "divdiff = " << divdiff << std::endl;
- }
-
- double prevDivergence = m_divergence;
- m_divergence -= divdiff;
- if ((prevDivergence < 0 && m_divergence > 0) ||
- (prevDivergence > 0 && m_divergence < 0)) {
- m_recovery = m_divergence / ((m_sampleRate / 10.0) / increment);
- }
-
- return incr;
-}
-
-void
-StretchCalculator::reset()
-{
- m_prevDf = 0;
- m_divergence = 0;
-}
-
-std::vector<StretchCalculator::Peak>
-StretchCalculator::findPeaks(const std::vector<float> &rawDf)
-{
- std::vector<float> df = smoothDF(rawDf);
-
- // We distinguish between "soft" and "hard" peaks. A soft peak is
- // simply the result of peak-picking on the smoothed onset
- // detection function, and it represents any (strong-ish) onset.
- // We aim to ensure always that soft peaks are placed at the
- // correct position in time. A hard peak is where there is a very
- // rapid rise in detection function, and it presumably represents
- // a more broadband, noisy transient. For these we perform a
- // phase reset (if in the appropriate mode), and we locate the
- // reset at the first point where we notice enough of a rapid
- // rise, rather than necessarily at the peak itself, in order to
- // preserve the shape of the transient.
-
- std::set<size_t> hardPeakCandidates;
- std::set<size_t> softPeakCandidates;
-
- if (m_useHardPeaks) {
-
- // 0.05 sec approx min between hard peaks
- size_t hardPeakAmnesty = lrint(ceil(double(m_sampleRate) /
- (20 * double(m_increment))));
- size_t prevHardPeak = 0;
-
- if (m_debugLevel > 1) {
- std::cerr << "hardPeakAmnesty = " << hardPeakAmnesty << std::endl;
- }
-
- for (size_t i = 1; i + 1 < df.size(); ++i) {
-
- if (df[i] < 0.1) continue;
- if (df[i] <= df[i-1] * 1.1) continue;
- if (df[i] < 0.22) continue;
-
- if (!hardPeakCandidates.empty() &&
- i < prevHardPeak + hardPeakAmnesty) {
- continue;
- }
-
- bool hard = (df[i] > 0.4);
-
- if (hard && (m_debugLevel > 1)) {
- std::cerr << "hard peak at " << i << ": " << df[i]
- << " > absolute " << 0.4
- << std::endl;
- }
-
- if (!hard) {
- hard = (df[i] > df[i-1] * 1.4);
-
- if (hard && (m_debugLevel > 1)) {
- std::cerr << "hard peak at " << i << ": " << df[i]
- << " > prev " << df[i-1] << " * 1.4"
- << std::endl;
- }
- }
-
- if (!hard && i > 1) {
- hard = (df[i] > df[i-1] * 1.2 &&
- df[i-1] > df[i-2] * 1.2);
-
- if (hard && (m_debugLevel > 1)) {
- std::cerr << "hard peak at " << i << ": " << df[i]
- << " > prev " << df[i-1] << " * 1.2 and "
- << df[i-1] << " > prev " << df[i-2] << " * 1.2"
- << std::endl;
- }
- }
-
- if (!hard && i > 2) {
- // have already established that df[i] > df[i-1] * 1.1
- hard = (df[i] > 0.3 &&
- df[i-1] > df[i-2] * 1.1 &&
- df[i-2] > df[i-3] * 1.1);
-
- if (hard && (m_debugLevel > 1)) {
- std::cerr << "hard peak at " << i << ": " << df[i]
- << " > prev " << df[i-1] << " * 1.1 and "
- << df[i-1] << " > prev " << df[i-2] << " * 1.1 and "
- << df[i-2] << " > prev " << df[i-3] << " * 1.1"
- << std::endl;
- }
- }
-
- if (!hard) continue;
-
-// (df[i+1] > df[i] && df[i+1] > df[i-1] * 1.8) ||
-// df[i] > 0.4) {
-
- size_t peakLocation = i;
-
- if (i + 1 < rawDf.size() &&
- rawDf[i + 1] > rawDf[i] * 1.4) {
-
- ++peakLocation;
-
- if (m_debugLevel > 1) {
- std::cerr << "pushing hard peak forward to " << peakLocation << ": " << df[peakLocation] << " > " << df[peakLocation-1] << " * " << 1.4 << std::endl;
- }
- }
-
- hardPeakCandidates.insert(peakLocation);
- prevHardPeak = peakLocation;
- }
- }
-
- size_t medianmaxsize = lrint(ceil(double(m_sampleRate) /
- double(m_increment))); // 1 sec ish
-
- if (m_debugLevel > 1) {
- std::cerr << "mediansize = " << medianmaxsize << std::endl;
- }
- if (medianmaxsize < 7) {
- medianmaxsize = 7;
- if (m_debugLevel > 1) {
- std::cerr << "adjusted mediansize = " << medianmaxsize << std::endl;
- }
- }
-
- int minspacing = lrint(ceil(double(m_sampleRate) /
- (20 * double(m_increment)))); // 0.05 sec ish
-
- std::deque<float> medianwin;
- std::vector<float> sorted;
- int softPeakAmnesty = 0;
-
- for (size_t i = 0; i < medianmaxsize/2; ++i) {
- medianwin.push_back(0);
- }
- for (size_t i = 0; i < medianmaxsize/2 && i < df.size(); ++i) {
- medianwin.push_back(df[i]);
- }
-
- size_t lastSoftPeak = 0;
-
- for (size_t i = 0; i < df.size(); ++i) {
-
- size_t mediansize = medianmaxsize;
-
- if (medianwin.size() < mediansize) {
- mediansize = medianwin.size();
- }
-
- size_t middle = medianmaxsize / 2;
- if (middle >= mediansize) middle = mediansize-1;
-
- size_t nextDf = i + mediansize - middle;
-
- if (mediansize < 2) {
- if (mediansize > medianmaxsize) { // absurd, but never mind that
- medianwin.pop_front();
- }
- if (nextDf < df.size()) {
- medianwin.push_back(df[nextDf]);
- } else {
- medianwin.push_back(0);
- }
- continue;
- }
-
- if (m_debugLevel > 2) {
-// std::cerr << "have " << mediansize << " in median buffer" << std::endl;
- }
-
- sorted.clear();
- for (size_t j = 0; j < mediansize; ++j) {
- sorted.push_back(medianwin[j]);
- }
- std::sort(sorted.begin(), sorted.end());
-
- size_t n = 90; // percentile above which we pick peaks
- size_t index = (sorted.size() * n) / 100;
- if (index >= sorted.size()) index = sorted.size()-1;
- if (index == sorted.size()-1 && index > 0) --index;
- float thresh = sorted[index];
-
-// if (m_debugLevel > 2) {
-// std::cerr << "medianwin[" << middle << "] = " << medianwin[middle] << ", thresh = " << thresh << std::endl;
-// if (medianwin[middle] == 0.f) {
-// std::cerr << "contents: ";
-// for (size_t j = 0; j < medianwin.size(); ++j) {
-// std::cerr << medianwin[j] << " ";
-// }
-// std::cerr << std::endl;
-// }
-// }
-
- if (medianwin[middle] > thresh &&
- medianwin[middle] > medianwin[middle-1] &&
- medianwin[middle] > medianwin[middle+1] &&
- softPeakAmnesty == 0) {
-
- size_t maxindex = middle;
- float maxval = medianwin[middle];
-
- for (size_t j = middle+1; j < mediansize; ++j) {
- if (medianwin[j] > maxval) {
- maxval = medianwin[j];
- maxindex = j;
- } else if (medianwin[j] < medianwin[middle]) {
- break;
- }
- }
-
- size_t peak = i + maxindex - middle;
-
-// std::cerr << "i = " << i << ", maxindex = " << maxindex << ", middle = " << middle << ", so peak at " << peak << std::endl;
-
- if (softPeakCandidates.empty() || lastSoftPeak != peak) {
-
- if (m_debugLevel > 1) {
- std::cerr << "soft peak at " << peak << " ("
- << peak * m_increment << "): "
- << medianwin[middle] << " > "
- << thresh << " and "
- << medianwin[middle]
- << " > " << medianwin[middle-1] << " and "
- << medianwin[middle]
- << " > " << medianwin[middle+1]
- << std::endl;
- }
-
- if (peak >= df.size()) {
- if (m_debugLevel > 2) {
- std::cerr << "peak is beyond end" << std::endl;
- }
- } else {
- softPeakCandidates.insert(peak);
- lastSoftPeak = peak;
- }
- }
-
- softPeakAmnesty = minspacing + maxindex - middle;
- if (m_debugLevel > 2) {
- std::cerr << "amnesty = " << softPeakAmnesty << std::endl;
- }
-
- } else if (softPeakAmnesty > 0) --softPeakAmnesty;
-
- if (mediansize >= medianmaxsize) {
- medianwin.pop_front();
- }
- if (nextDf < df.size()) {
- medianwin.push_back(df[nextDf]);
- } else {
- medianwin.push_back(0);
- }
- }
-
- std::vector<Peak> peaks;
-
- while (!hardPeakCandidates.empty() || !softPeakCandidates.empty()) {
-
- bool haveHardPeak = !hardPeakCandidates.empty();
- bool haveSoftPeak = !softPeakCandidates.empty();
-
- size_t hardPeak = (haveHardPeak ? *hardPeakCandidates.begin() : 0);
- size_t softPeak = (haveSoftPeak ? *softPeakCandidates.begin() : 0);
-
- Peak peak;
- peak.hard = false;
- peak.chunk = softPeak;
-
- bool ignore = false;
-
- if (haveHardPeak &&
- (!haveSoftPeak || hardPeak <= softPeak)) {
-
- if (m_debugLevel > 2) {
- std::cerr << "Hard peak: " << hardPeak << std::endl;
- }
-
- peak.hard = true;
- peak.chunk = hardPeak;
- hardPeakCandidates.erase(hardPeakCandidates.begin());
-
- } else {
- if (m_debugLevel > 2) {
- std::cerr << "Soft peak: " << softPeak << std::endl;
- }
- if (!peaks.empty() &&
- peaks[peaks.size()-1].hard &&
- peaks[peaks.size()-1].chunk + 3 >= softPeak) {
- if (m_debugLevel > 2) {
- std::cerr << "(ignoring, as we just had a hard peak)"
- << std::endl;
- }
- ignore = true;
- }
- }
-
- if (haveSoftPeak && peak.chunk == softPeak) {
- softPeakCandidates.erase(softPeakCandidates.begin());
- }
-
- if (!ignore) {
- peaks.push_back(peak);
- }
- }
-
- return peaks;
-}
-
-std::vector<float>
-StretchCalculator::smoothDF(const std::vector<float> &df)
-{
- std::vector<float> smoothedDF;
-
- for (size_t i = 0; i < df.size(); ++i) {
- // three-value moving mean window for simple smoothing
- float total = 0.f, count = 0;
- if (i > 0) { total += df[i-1]; ++count; }
- total += df[i]; ++count;
- if (i+1 < df.size()) { total += df[i+1]; ++count; }
- float mean = total / count;
- smoothedDF.push_back(mean);
- }
-
- return smoothedDF;
-}
-
-std::vector<int>
-StretchCalculator::distributeRegion(const std::vector<float> &dfIn,
- size_t duration, float ratio, bool phaseReset)
-{
- std::vector<float> df(dfIn);
- std::vector<int> increments;
-
- // The peak for the stretch detection function may appear after
- // the peak that we're using to calculate the start of the region.
- // We don't want that. If we find a peak in the first half of
- // the region, we should set all the values up to that point to
- // the same value as the peak.
-
- // (This might not be subtle enough, especially if the region is
- // long -- we want a bound that corresponds to acoustic perception
- // of the audible bounce.)
-
- for (size_t i = 1; i < df.size()/2; ++i) {
- if (df[i] < df[i-1]) {
- if (m_debugLevel > 1) {
- std::cerr << "stretch peak offset: " << i-1 << " (peak " << df[i-1] << ")" << std::endl;
- }
- for (size_t j = 0; j < i-1; ++j) {
- df[j] = df[i-1];
- }
- break;
- }
- }
-
- float maxDf = 0;
-
- for (size_t i = 0; i < df.size(); ++i) {
- if (i == 0 || df[i] > maxDf) maxDf = df[i];
- }
-
- // We want to try to ensure the last 100ms or so (if possible) are
- // tending back towards the maximum df, so that the stretchiness
- // reduces at the end of the stretched region.
-
- int reducedRegion = lrint((0.1 * m_sampleRate) / m_increment);
- if (reducedRegion > int(df.size()/5)) reducedRegion = df.size()/5;
-
- for (int i = 0; i < reducedRegion; ++i) {
- size_t index = df.size() - reducedRegion + i;
- df[index] = df[index] + ((maxDf - df[index]) * i) / reducedRegion;
- }
-
- long toAllot = long(duration) - long(m_increment * df.size());
-
- if (m_debugLevel > 1) {
- std::cerr << "region of " << df.size() << " chunks, output duration " << duration << ", toAllot " << toAllot << std::endl;
- }
-
- size_t totalIncrement = 0;
-
- // We place limits on the amount of displacement per chunk. if
- // ratio < 0, no increment should be larger than increment*ratio
- // or smaller than increment*ratio/2; if ratio > 0, none should be
- // smaller than increment*ratio or larger than increment*ratio*2.
- // We need to enforce this in the assignment of displacements to
- // allotments, not by trying to respond if something turns out
- // wrong.
-
- // Note that the ratio is only provided to this function for the
- // purposes of establishing this bound to the displacement.
-
- // so if
- // maxDisplacement / totalDisplacement > increment * ratio*2 - increment
- // (for ratio > 1)
- // or
- // maxDisplacement / totalDisplacement < increment * ratio/2
- // (for ratio < 1)
-
- // then we need to adjust and accommodate
-
- bool acceptableSquashRange = false;
-
- double totalDisplacement = 0;
- double maxDisplacement = 0; // min displacement will be 0 by definition
-
- maxDf = 0;
- float adj = 0;
-
- while (!acceptableSquashRange) {
-
- acceptableSquashRange = true;
- calculateDisplacements(df, maxDf, totalDisplacement, maxDisplacement,
- adj);
-
- if (m_debugLevel > 1) {
- std::cerr << "totalDisplacement " << totalDisplacement << ", max " << maxDisplacement << " (maxDf " << maxDf << ", df count " << df.size() << ")" << std::endl;
- }
-
- if (totalDisplacement == 0) {
-// Not usually a problem, in fact
-// std::cerr << "WARNING: totalDisplacement == 0 (duration " << duration << ", " << df.size() << " values in df)" << std::endl;
- if (!df.empty() && adj == 0) {
- acceptableSquashRange = false;
- adj = 1;
- }
- continue;
- }
-
- int extremeIncrement = m_increment + lrint((toAllot * maxDisplacement) / totalDisplacement);
- if (ratio < 1.0) {
- if (extremeIncrement > lrint(ceil(m_increment * ratio))) {
- std::cerr << "ERROR: extreme increment " << extremeIncrement << " > " << m_increment * ratio << " (this should not happen)" << std::endl;
- } else if (extremeIncrement < (m_increment * ratio) / 2) {
- if (m_debugLevel > 0) {
- std::cerr << "WARNING: extreme increment " << extremeIncrement << " < " << (m_increment * ratio) / 2 << std::endl;
- }
- acceptableSquashRange = false;
- }
- } else {
- if (extremeIncrement > m_increment * ratio * 2) {
- if (m_debugLevel > 0) {
- std::cerr << "WARNING: extreme increment " << extremeIncrement << " > " << m_increment * ratio * 2 << std::endl;
- }
- acceptableSquashRange = false;
- } else if (extremeIncrement < lrint(floor(m_increment * ratio))) {
- std::cerr << "ERROR: extreme increment " << extremeIncrement << " < " << m_increment * ratio << " (I thought this couldn't happen?)" << std::endl;
- }
- }
-
- if (!acceptableSquashRange) {
- // Need to make maxDisplacement smaller as a proportion of
- // the total displacement, yet ensure that the
- // displacements still sum to the total.
- adj += maxDf/10;
- }
- }
-
- for (size_t i = 0; i < df.size(); ++i) {
-
- double displacement = maxDf - df[i];
- if (displacement < 0) displacement -= adj;
- else displacement += adj;
-
- if (i == 0 && phaseReset) {
- if (df.size() == 1) {
- increments.push_back(duration);
- totalIncrement += duration;
- } else {
- increments.push_back(m_increment);
- totalIncrement += m_increment;
- }
- totalDisplacement -= displacement;
- continue;
- }
-
- double theoreticalAllotment = 0;
-
- if (totalDisplacement != 0) {
- theoreticalAllotment = (toAllot * displacement) / totalDisplacement;
- }
- int allotment = lrint(theoreticalAllotment);
- if (i + 1 == df.size()) allotment = toAllot;
-
- int increment = m_increment + allotment;
-
- if (increment <= 0) {
- // this is a serious problem, the allocation is quite
- // wrong if it allows increment to diverge so far from the
- // input increment
- std::cerr << "*** WARNING: increment " << increment << " <= 0, rounding to zero" << std::endl;
- increment = 0;
- allotment = increment - m_increment;
- }
-
- increments.push_back(increment);
- totalIncrement += increment;
-
- toAllot -= allotment;
- totalDisplacement -= displacement;
-
- if (m_debugLevel > 2) {
- std::cerr << "df " << df[i] << ", smoothed " << df[i] << ", disp " << displacement << ", allot " << theoreticalAllotment << ", incr " << increment << ", remain " << toAllot << std::endl;
- }
- }
-
- if (m_debugLevel > 2) {
- std::cerr << "total increment: " << totalIncrement << ", left over: " << toAllot << " to allot, displacement " << totalDisplacement << std::endl;
- }
-
- if (totalIncrement != duration) {
- std::cerr << "*** WARNING: calculated output duration " << totalIncrement << " != expected " << duration << std::endl;
- }
-
- return increments;
-}
-
-void
-StretchCalculator::calculateDisplacements(const std::vector<float> &df,
- float &maxDf,
- double &totalDisplacement,
- double &maxDisplacement,
- float adj) const
-{
- totalDisplacement = maxDisplacement = 0;
-
- maxDf = 0;
-
- for (size_t i = 0; i < df.size(); ++i) {
- if (i == 0 || df[i] > maxDf) maxDf = df[i];
- }
-
- for (size_t i = 0; i < df.size(); ++i) {
- double displacement = maxDf - df[i];
- if (displacement < 0) displacement -= adj;
- else displacement += adj;
- totalDisplacement += displacement;
- if (i == 0 || displacement > maxDisplacement) {
- maxDisplacement = displacement;
- }
- }
-}
-
-}
-
diff --git a/libs/rubberband/src/StretchCalculator.h b/libs/rubberband/src/StretchCalculator.h
deleted file mode 100644
index e79c8e3c1e..0000000000
--- a/libs/rubberband/src/StretchCalculator.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_STRETCH_CALCULATOR_H_
-#define _RUBBERBAND_STRETCH_CALCULATOR_H_
-
-#include <sys/types.h>
-
-#include <vector>
-
-namespace RubberBand
-{
-
-class StretchCalculator
-{
-public:
- StretchCalculator(size_t sampleRate, size_t inputIncrement, bool useHardPeaks);
- virtual ~StretchCalculator();
-
- /**
- * Calculate phase increments for a region of audio, given the
- * overall target stretch ratio, input duration in audio samples,
- * and the audio curves to use for identifying phase lock points
- * (lockAudioCurve) and for allocating stretches to relatively
- * less prominent points (stretchAudioCurve).
- */
- virtual std::vector<int> calculate(double ratio, size_t inputDuration,
- const std::vector<float> &lockAudioCurve,
- const std::vector<float> &stretchAudioCurve);
-
- /**
- * Calculate the phase increment for a single audio block, given
- * the overall target stretch ratio and the block's value on the
- * phase-lock audio curve. State is retained between calls in the
- * StretchCalculator object; call reset() to reset it. This uses
- * a less sophisticated method than the offline calculate().
- *
- * If increment is non-zero, use it for the input increment for
- * this block in preference to m_increment.
- */
- virtual int calculateSingle(double ratio, float curveValue,
- size_t increment = 0);
-
- void setUseHardPeaks(bool use) { m_useHardPeaks = use; }
-
- void reset();
-
- void setDebugLevel(int level) { m_debugLevel = level; }
-
- struct Peak {
- size_t chunk;
- bool hard;
- };
- std::vector<Peak> getLastCalculatedPeaks() const { return m_lastPeaks; }
-
- std::vector<float> smoothDF(const std::vector<float> &df);
-
-protected:
- std::vector<Peak> findPeaks(const std::vector<float> &audioCurve);
-
- std::vector<int> distributeRegion(const std::vector<float> &regionCurve,
- size_t outputDuration, float ratio,
- bool phaseReset);
-
- void calculateDisplacements(const std::vector<float> &df,
- float &maxDf,
- double &totalDisplacement,
- double &maxDisplacement,
- float adj) const;
-
- size_t m_sampleRate;
- size_t m_blockSize;
- size_t m_increment;
- float m_prevDf;
- double m_divergence;
- float m_recovery;
- float m_prevRatio;
- int m_transientAmnesty; // only in RT mode; handled differently offline
- int m_debugLevel;
- bool m_useHardPeaks;
-
- std::vector<Peak> m_lastPeaks;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/StretcherChannelData.cpp b/libs/rubberband/src/StretcherChannelData.cpp
deleted file mode 100644
index 240df230d1..0000000000
--- a/libs/rubberband/src/StretcherChannelData.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "StretcherChannelData.h"
-
-#include "Resampler.h"
-
-
-namespace RubberBand
-{
-
-RubberBandStretcher::Impl::ChannelData::ChannelData(size_t windowSize,
- int overSample,
- size_t outbufSize) :
- oversample(overSample)
-{
- std::set<size_t> s;
- construct(s, windowSize, outbufSize);
-}
-
-RubberBandStretcher::Impl::ChannelData::ChannelData(const std::set<size_t> &windowSizes,
- int overSample,
- size_t initialWindowSize,
- size_t outbufSize) :
- oversample(overSample)
-{
- construct(windowSizes, initialWindowSize, outbufSize);
-}
-
-void
-RubberBandStretcher::Impl::ChannelData::construct(const std::set<size_t> &windowSizes,
- size_t initialWindowSize,
- size_t outbufSize)
-{
- size_t maxSize = initialWindowSize;
-
- if (!windowSizes.empty()) {
- // std::set is ordered by value
- std::set<size_t>::const_iterator i = windowSizes.end();
- maxSize = *--i;
- }
- if (windowSizes.find(initialWindowSize) == windowSizes.end()) {
- if (initialWindowSize > maxSize) maxSize = initialWindowSize;
- }
-
- // max size of the real "half" of freq data
- size_t realSize = (maxSize * oversample)/2 + 1;
-
-// std::cerr << "ChannelData::construct([" << windowSizes.size() << "], " << maxSize << ", " << outbufSize << ")" << std::endl;
-
- if (outbufSize < maxSize) outbufSize = maxSize;
-
- inbuf = new RingBuffer<float>(maxSize);
- outbuf = new RingBuffer<float>(outbufSize);
-
- mag = allocDouble(realSize);
- phase = allocDouble(realSize);
- prevPhase = allocDouble(realSize);
- prevError = allocDouble(realSize);
- unwrappedPhase = allocDouble(realSize);
- envelope = allocDouble(realSize);
-
- freqPeak = new size_t[realSize];
-
- fltbuf = allocFloat(maxSize);
-
- accumulator = allocFloat(maxSize);
- windowAccumulator = allocFloat(maxSize);
-
- for (std::set<size_t>::const_iterator i = windowSizes.begin();
- i != windowSizes.end(); ++i) {
- ffts[*i] = new FFT(*i * oversample);
- ffts[*i]->initDouble();
- }
- if (windowSizes.find(initialWindowSize) == windowSizes.end()) {
- ffts[initialWindowSize] = new FFT(initialWindowSize * oversample);
- ffts[initialWindowSize]->initDouble();
- }
- fft = ffts[initialWindowSize];
-
- dblbuf = fft->getDoubleTimeBuffer();
-
- resampler = 0;
- resamplebuf = 0;
- resamplebufSize = 0;
-
- reset();
-
- for (size_t i = 0; i < realSize; ++i) {
- freqPeak[i] = 0;
- }
-
- for (size_t i = 0; i < initialWindowSize * oversample; ++i) {
- dblbuf[i] = 0.0;
- }
-
- for (size_t i = 0; i < maxSize; ++i) {
- accumulator[i] = 0.f;
- windowAccumulator[i] = 0.f;
- }
-
- // Avoid dividing opening sample (which will be discarded anyway) by zero
- windowAccumulator[0] = 1.f;
-}
-
-void
-RubberBandStretcher::Impl::ChannelData::setWindowSize(size_t windowSize)
-{
- size_t oldSize = inbuf->getSize();
- size_t realSize = (windowSize * oversample) / 2 + 1;
-
-// std::cerr << "ChannelData::setWindowSize(" << windowSize << ") [from " << oldSize << "]" << std::endl;
-
- if (oldSize >= windowSize) {
-
- // no need to reallocate buffers, just reselect fft
-
- //!!! we can't actually do this without locking against the
- //process thread, can we? we need to zero the mag/phase
- //buffers without interference
-
- if (ffts.find(windowSize) == ffts.end()) {
- //!!! this also requires a lock, but it shouldn't occur in
- //RT mode with proper initialisation
- ffts[windowSize] = new FFT(windowSize * oversample);
- ffts[windowSize]->initDouble();
- }
-
- fft = ffts[windowSize];
-
- dblbuf = fft->getDoubleTimeBuffer();
-
- for (size_t i = 0; i < windowSize * oversample; ++i) {
- dblbuf[i] = 0.0;
- }
-
- for (size_t i = 0; i < realSize; ++i) {
- mag[i] = 0.0;
- phase[i] = 0.0;
- prevPhase[i] = 0.0;
- prevError[i] = 0.0;
- unwrappedPhase[i] = 0.0;
- freqPeak[i] = 0;
- }
-
- return;
- }
-
- //!!! at this point we need a lock in case a different client
- //thread is calling process() -- we need this lock even if we
- //aren't running in threaded mode ourselves -- if we're in RT
- //mode, then the process call should trylock and fail if the lock
- //is unavailable (since this should never normally be the case in
- //general use in RT mode)
-
- RingBuffer<float> *newbuf = inbuf->resized(windowSize);
- delete inbuf;
- inbuf = newbuf;
-
- // We don't want to preserve data in these arrays
-
- mag = allocDouble(mag, realSize);
- phase = allocDouble(phase, realSize);
- prevPhase = allocDouble(prevPhase, realSize);
- prevError = allocDouble(prevError, realSize);
- unwrappedPhase = allocDouble(unwrappedPhase, realSize);
- envelope = allocDouble(envelope, realSize);
-
- delete[] freqPeak;
- freqPeak = new size_t[realSize];
-
- fltbuf = allocFloat(fltbuf, windowSize);
-
- // But we do want to preserve data in these
-
- float *newAcc = allocFloat(windowSize);
-
- for (size_t i = 0; i < oldSize; ++i) newAcc[i] = accumulator[i];
-
- freeFloat(accumulator);
- accumulator = newAcc;
-
- newAcc = allocFloat(windowSize);
-
- for (size_t i = 0; i < oldSize; ++i) newAcc[i] = windowAccumulator[i];
-
- freeFloat(windowAccumulator);
- windowAccumulator = newAcc;
-
- //!!! and resampler?
-
- for (size_t i = 0; i < realSize; ++i) {
- freqPeak[i] = 0;
- }
-
- for (size_t i = 0; i < windowSize; ++i) {
- fltbuf[i] = 0.f;
- }
-
- if (ffts.find(windowSize) == ffts.end()) {
- ffts[windowSize] = new FFT(windowSize * oversample);
- ffts[windowSize]->initDouble();
- }
-
- fft = ffts[windowSize];
-
- dblbuf = fft->getDoubleTimeBuffer();
-
- for (size_t i = 0; i < windowSize * oversample; ++i) {
- dblbuf[i] = 0.0;
- }
-}
-
-void
-RubberBandStretcher::Impl::ChannelData::setOutbufSize(size_t outbufSize)
-{
- size_t oldSize = outbuf->getSize();
-
-// std::cerr << "ChannelData::setOutbufSize(" << outbufSize << ") [from " << oldSize << "]" << std::endl;
-
- if (oldSize < outbufSize) {
-
- //!!! at this point we need a lock in case a different client
- //thread is calling process()
-
- RingBuffer<float> *newbuf = outbuf->resized(outbufSize);
- delete outbuf;
- outbuf = newbuf;
- }
-}
-
-void
-RubberBandStretcher::Impl::ChannelData::setResampleBufSize(size_t sz)
-{
- resamplebuf = allocFloat(resamplebuf, sz);
- resamplebufSize = sz;
-}
-
-RubberBandStretcher::Impl::ChannelData::~ChannelData()
-{
- delete resampler;
-
- freeFloat(resamplebuf);
-
- delete inbuf;
- delete outbuf;
-
- freeDouble(mag);
- freeDouble(phase);
- freeDouble(prevPhase);
- freeDouble(prevError);
- freeDouble(unwrappedPhase);
- freeDouble(envelope);
- delete[] freqPeak;
- freeFloat(accumulator);
- freeFloat(windowAccumulator);
- freeFloat(fltbuf);
-
- for (std::map<size_t, FFT *>::iterator i = ffts.begin();
- i != ffts.end(); ++i) {
- delete i->second;
- }
-}
-
-void
-RubberBandStretcher::Impl::ChannelData::reset()
-{
- inbuf->reset();
- outbuf->reset();
-
- if (resampler) resampler->reset();
-
- size_t size = inbuf->getSize();
-
- for (size_t i = 0; i < size; ++i) {
- accumulator[i] = 0.f;
- windowAccumulator[i] = 0.f;
- }
-
- // Avoid dividing opening sample (which will be discarded anyway) by zero
- windowAccumulator[0] = 1.f;
-
- accumulatorFill = 0;
- prevIncrement = 0;
- chunkCount = 0;
- inCount = 0;
- inputSize = -1;
- outCount = 0;
- unchanged = true;
- draining = false;
- outputComplete = false;
-}
-
-}
diff --git a/libs/rubberband/src/StretcherChannelData.h b/libs/rubberband/src/StretcherChannelData.h
deleted file mode 100644
index b56a6e07dc..0000000000
--- a/libs/rubberband/src/StretcherChannelData.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_STRETCHERCHANNELDATA_H_
-#define _RUBBERBAND_STRETCHERCHANNELDATA_H_
-
-#include "StretcherImpl.h"
-
-#include <set>
-
-//#define EXPERIMENT 1
-
-namespace RubberBand
-{
-
-class Resampler;
-
-class RubberBandStretcher::Impl::ChannelData
-{
-public:
- /**
- * Construct a ChannelData structure.
- *
- * The window size passed in here is the size for the FFT
- * calculation, and most of the buffer sizes also depend on
- * it. In practice it is always a power of two and except for
- * very extreme stretches is always either 1024, 2048 or 4096.
- *
- * The outbuf size depends on other factors as well, including
- * the pitch scale factor and any maximum processing block
- * size specified by the user of the code.
- */
- ChannelData(size_t windowSize, int overSample, size_t outbufSize);
-
- /**
- * Construct a ChannelData structure that can process at
- * different FFT sizes without requiring reallocation when the
- * size changes. The size can subsequently be changed with a
- * call to setWindowSize. Reallocation will only be necessary
- * if setWindowSize is called with a value not equal to one of
- * those passed in to the constructor.
- *
- * The outbufSize should be the maximum possible outbufSize to
- * avoid reallocation, which will happen if setOutbufSize is
- * called subsequently.
- */
- ChannelData(const std::set<size_t> &windowSizes,
- int overSample, size_t initialWindowSize, size_t outbufSize);
- ~ChannelData();
-
- /**
- * Reset buffers
- */
- void reset();
-
- /**
- * Set the FFT and buffer sizes from the given processing
- * window size. If this ChannelData was constructed with a set
- * of window sizes and the given window size here was among
- * them, no reallocation will be required.
- */
- void setWindowSize(size_t windowSize);
-
- /**
- * Set the outbufSize for the channel data. Reallocation will
- * occur.
- */
- void setOutbufSize(size_t outbufSize);
-
- /**
- * Set the resampler buffer size. Default if not called is no
- * buffer allocated at all.
- */
- void setResampleBufSize(size_t resamplebufSize);
-
- RingBuffer<float> *inbuf;
- RingBuffer<float> *outbuf;
-
- double *mag;
- double *phase;
-
- double *prevPhase;
- double *prevError;
- double *unwrappedPhase;
-
-
- size_t *freqPeak;
-
- float *accumulator;
- size_t accumulatorFill;
- float *windowAccumulator;
-
- float *fltbuf;
- double *dblbuf; // owned by FFT object, only used for time domain FFT i/o
- double *envelope; // for cepstral formant shift
- bool unchanged;
-
- size_t prevIncrement; // only used in RT mode
-
- size_t chunkCount;
- size_t inCount;
- long inputSize; // set only after known (when data ended); -1 previously
- size_t outCount;
-
- bool draining;
- bool outputComplete;
-
- FFT *fft;
- std::map<size_t, FFT *> ffts;
-
- Resampler *resampler;
- float *resamplebuf;
- size_t resamplebufSize;
-
- int oversample;
-
-private:
- void construct(const std::set<size_t> &windowSizes,
- size_t initialWindowSize, size_t outbufSize);
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/StretcherImpl.cpp b/libs/rubberband/src/StretcherImpl.cpp
deleted file mode 100644
index d15a71d68e..0000000000
--- a/libs/rubberband/src/StretcherImpl.cpp
+++ /dev/null
@@ -1,1147 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifdef COMPILER_MSVC
-#include "bsd-3rdparty/float_cast/float_cast.h"
-#endif
-#include "StretcherImpl.h"
-#include "PercussiveAudioCurve.h"
-#include "HighFrequencyAudioCurve.h"
-#include "SpectralDifferenceAudioCurve.h"
-#include "SilentAudioCurve.h"
-#include "ConstantAudioCurve.h"
-#include "StretchCalculator.h"
-#include "StretcherChannelData.h"
-#include "Resampler.h"
-#include "Profiler.h"
-
-#include <cassert>
-#include <cmath>
-#include <set>
-#include <map>
-
-using std::cerr;
-using std::endl;
-using std::vector;
-using std::map;
-using std::set;
-using std::max;
-using std::min;
-
-
-namespace RubberBand {
-
-const size_t
-RubberBandStretcher::Impl::m_defaultIncrement = 256;
-
-const size_t
-RubberBandStretcher::Impl::m_defaultWindowSize = 2048;
-
-int
-RubberBandStretcher::Impl::m_defaultDebugLevel = 0;
-
-
-
-RubberBandStretcher::Impl::Impl(size_t sampleRate,
- size_t channels,
- Options options,
- double initialTimeRatio,
- double initialPitchScale) :
- m_sampleRate(sampleRate),
- m_channels(channels),
- m_timeRatio(initialTimeRatio),
- m_pitchScale(initialPitchScale),
- m_windowSize(m_defaultWindowSize),
- m_increment(m_defaultIncrement),
- m_outbufSize(m_defaultWindowSize * 2),
- m_maxProcessSize(m_defaultWindowSize),
- m_expectedInputDuration(0),
- m_threaded(false),
- m_realtime(false),
- m_options(options),
- m_debugLevel(m_defaultDebugLevel),
- m_mode(JustCreated),
- m_window(0),
- m_studyFFT(0),
- m_spaceAvailable("space"),
- m_inputDuration(0),
- m_silentHistory(0),
- m_lastProcessOutputIncrements(16),
- m_lastProcessPhaseResetDf(16),
- m_phaseResetAudioCurve(0),
- m_stretchAudioCurve(0),
- m_silentAudioCurve(0),
- m_stretchCalculator(0),
- m_freq0(600),
- m_freq1(1200),
- m_freq2(12000),
- m_baseWindowSize(m_defaultWindowSize)
-{
-
- if (m_debugLevel > 0) {
- cerr << "RubberBandStretcher::Impl::Impl: rate = " << m_sampleRate << ", options = " << options << endl;
- }
-
- // Window size will vary according to the audio sample rate, but
- // we don't let it drop below the 48k default
- m_rateMultiple = float(m_sampleRate) / 48000.f;
- if (m_rateMultiple < 1.f) m_rateMultiple = 1.f;
- m_baseWindowSize = roundUp(int(m_defaultWindowSize * m_rateMultiple));
-
- if ((options & OptionWindowShort) || (options & OptionWindowLong)) {
- if ((options & OptionWindowShort) && (options & OptionWindowLong)) {
- cerr << "RubberBandStretcher::Impl::Impl: Cannot specify OptionWindowLong and OptionWindowShort together; falling back to OptionWindowStandard" << endl;
- } else if (options & OptionWindowShort) {
- m_baseWindowSize = m_baseWindowSize / 2;
- if (m_debugLevel > 0) {
- cerr << "setting baseWindowSize to " << m_baseWindowSize << endl;
- }
- } else if (options & OptionWindowLong) {
- m_baseWindowSize = m_baseWindowSize * 2;
- if (m_debugLevel > 0) {
- cerr << "setting baseWindowSize to " << m_baseWindowSize << endl;
- }
- }
- m_windowSize = m_baseWindowSize;
- m_outbufSize = m_baseWindowSize * 2;
- m_maxProcessSize = m_baseWindowSize;
- }
-
- if (m_options & OptionProcessRealTime) {
-
- m_realtime = true;
-
- if (!(m_options & OptionStretchPrecise)) {
- m_options |= OptionStretchPrecise;
- }
- }
-
- if (m_channels > 1) {
-
- m_threaded = true;
-
- if (m_realtime) {
- m_threaded = false;
- } else if (m_options & OptionThreadingNever) {
- m_threaded = false;
- } else if (!(m_options & OptionThreadingAlways) &&
- !system_is_multiprocessor()) {
- m_threaded = false;
- }
-
- if (m_threaded && m_debugLevel > 0) {
- cerr << "Going multithreaded..." << endl;
- }
- }
-
- configure();
-}
-
-RubberBandStretcher::Impl::~Impl()
-{
- if (m_threaded) {
- MutexLocker locker(&m_threadSetMutex);
- for (set<ProcessThread *>::iterator i = m_threadSet.begin();
- i != m_threadSet.end(); ++i) {
- if (m_debugLevel > 0) {
- cerr << "RubberBandStretcher::~RubberBandStretcher: joining (channel " << *i << ")" << endl;
- }
- (*i)->abandon();
- (*i)->wait();
- delete *i;
- }
- }
-
- for (size_t c = 0; c < m_channels; ++c) {
- delete m_channelData[c];
- }
-
- delete m_phaseResetAudioCurve;
- delete m_stretchAudioCurve;
- delete m_silentAudioCurve;
- delete m_stretchCalculator;
- delete m_studyFFT;
-
- for (map<size_t, Window<float> *>::iterator i = m_windows.begin();
- i != m_windows.end(); ++i) {
- delete i->second;
- }
-}
-
-void
-RubberBandStretcher::Impl::reset()
-{
- if (m_threaded) {
- m_threadSetMutex.lock();
- for (set<ProcessThread *>::iterator i = m_threadSet.begin();
- i != m_threadSet.end(); ++i) {
- if (m_debugLevel > 0) {
- cerr << "RubberBandStretcher::~RubberBandStretcher: joining (channel " << *i << ")" << endl;
- }
- (*i)->abandon();
- (*i)->wait();
- delete *i;
- }
- m_threadSet.clear();
- }
-
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData[c]->reset();
- }
-
- m_mode = JustCreated;
- if (m_phaseResetAudioCurve) m_phaseResetAudioCurve->reset();
- if (m_stretchAudioCurve) m_stretchAudioCurve->reset();
- if (m_silentAudioCurve) m_silentAudioCurve->reset();
- m_inputDuration = 0;
- m_silentHistory = 0;
-
- if (m_threaded) m_threadSetMutex.unlock();
-
- reconfigure();
-}
-
-void
-RubberBandStretcher::Impl::setTimeRatio(double ratio)
-{
- if (!m_realtime) {
- if (m_mode == Studying || m_mode == Processing) {
- cerr << "RubberBandStretcher::Impl::setTimeRatio: Cannot set ratio while studying or processing in non-RT mode" << endl;
- return;
- }
- }
-
- if (ratio == m_timeRatio) return;
- m_timeRatio = ratio;
-
- reconfigure();
-}
-
-void
-RubberBandStretcher::Impl::setPitchScale(double fs)
-{
- if (!m_realtime) {
- if (m_mode == Studying || m_mode == Processing) {
- cerr << "RubberBandStretcher::Impl::setPitchScale: Cannot set ratio while studying or processing in non-RT mode" << endl;
- return;
- }
- }
-
- if (fs == m_pitchScale) return;
-
- bool was1 = (m_pitchScale == 1.f);
- bool rbs = resampleBeforeStretching();
-
- m_pitchScale = fs;
-
- reconfigure();
-
- if (!(m_options & OptionPitchHighConsistency) &&
- (was1 || resampleBeforeStretching() != rbs) &&
- m_pitchScale != 1.f) {
-
- // resampling mode has changed
- for (int c = 0; c < int(m_channels); ++c) {
- if (m_channelData[c]->resampler) {
- m_channelData[c]->resampler->reset();
- }
- }
- }
-}
-
-double
-RubberBandStretcher::Impl::getTimeRatio() const
-{
- return m_timeRatio;
-}
-
-double
-RubberBandStretcher::Impl::getPitchScale() const
-{
- return m_pitchScale;
-}
-
-void
-RubberBandStretcher::Impl::setExpectedInputDuration(size_t samples)
-{
- if (samples == m_expectedInputDuration) return;
- m_expectedInputDuration = samples;
-
- reconfigure();
-}
-
-void
-RubberBandStretcher::Impl::setMaxProcessSize(size_t samples)
-{
- if (samples <= m_maxProcessSize) return;
- m_maxProcessSize = samples;
-
- reconfigure();
-}
-
-float
-RubberBandStretcher::Impl::getFrequencyCutoff(int n) const
-{
- switch (n) {
- case 0: return m_freq0;
- case 1: return m_freq1;
- case 2: return m_freq2;
- }
- return 0.f;
-}
-
-void
-RubberBandStretcher::Impl::setFrequencyCutoff(int n, float f)
-{
- switch (n) {
- case 0: m_freq0 = f; break;
- case 1: m_freq1 = f; break;
- case 2: m_freq2 = f; break;
- }
-}
-
-double
-RubberBandStretcher::Impl::getEffectiveRatio() const
-{
- // Returns the ratio that the internal time stretcher needs to
- // achieve, not the resulting duration ratio of the output (which
- // is simply m_timeRatio).
-
- // A frequency shift is achieved using an additional time shift,
- // followed by resampling back to the original time shift to
- // change the pitch. Note that the resulting frequency change is
- // fixed, as it is effected by the resampler -- in contrast to
- // time shifting, which is variable aiming to place the majority
- // of the stretch or squash in low-interest regions of audio.
-
- return m_timeRatio * m_pitchScale;
-}
-
-size_t
-RubberBandStretcher::Impl::roundUp(size_t value)
-{
- if (!(value & (value - 1))) return value;
- int bits = 0;
- while (value) { ++bits; value >>= 1; }
- value = 1 << bits;
- return value;
-}
-
-void
-RubberBandStretcher::Impl::calculateSizes()
-{
- size_t inputIncrement = m_defaultIncrement;
- size_t windowSize = m_baseWindowSize;
- size_t outputIncrement;
-
- if (m_pitchScale <= 0.0) {
- // This special case is likelier than one might hope, because
- // of naive initialisations in programs that set it from a
- // variable
- std::cerr << "RubberBandStretcher: WARNING: Pitch scale must be greater than zero!\nResetting it from " << m_pitchScale << " to the default of 1.0: no pitch change will occur" << std::endl;
- m_pitchScale = 1.0;
- }
- if (m_timeRatio <= 0.0) {
- // Likewise
- std::cerr << "RubberBandStretcher: WARNING: Time ratio must be greater than zero!\nResetting it from " << m_timeRatio << " to the default of 1.0: no time stretch will occur" << std::endl;
- m_timeRatio = 1.0;
- }
-
- double r = getEffectiveRatio();
-
- if (m_realtime) {
-
- if (r < 1) {
-
- bool rsb = (m_pitchScale < 1.0 && !resampleBeforeStretching());
- float windowIncrRatio = 4.5;
- if (r == 1.0) windowIncrRatio = 4;
- else if (rsb) windowIncrRatio = 4.5;
- else windowIncrRatio = 6;
-
- inputIncrement = int(windowSize / windowIncrRatio);
- outputIncrement = int(floor(inputIncrement * r));
-
- // Very long stretch or very low pitch shift
- if (outputIncrement < m_defaultIncrement / 4) {
- if (outputIncrement < 1) outputIncrement = 1;
- while (outputIncrement < m_defaultIncrement / 4 &&
- windowSize < m_baseWindowSize * 4) {
- outputIncrement *= 2;
- inputIncrement = lrint(ceil(outputIncrement / r));
- windowSize = roundUp(lrint(ceil(inputIncrement * windowIncrRatio)));
- }
- }
-
- } else {
-
- bool rsb = (m_pitchScale > 1.0 && resampleBeforeStretching());
- float windowIncrRatio = 4.5;
- if (r == 1.0) windowIncrRatio = 4;
- else if (rsb) windowIncrRatio = 4.5;
- else windowIncrRatio = 6;
-
- outputIncrement = int(windowSize / windowIncrRatio);
- inputIncrement = int(outputIncrement / r);
- while (outputIncrement > 1024 * m_rateMultiple &&
- inputIncrement > 1) {
- outputIncrement /= 2;
- inputIncrement = int(outputIncrement / r);
- }
- size_t minwin = roundUp(lrint(outputIncrement * windowIncrRatio));
- if (windowSize < minwin) windowSize = minwin;
-
- if (rsb) {
-// cerr << "adjusting window size from " << windowSize;
- size_t newWindowSize = roundUp(lrint(windowSize / m_pitchScale));
- if (newWindowSize < 512) newWindowSize = 512;
- size_t div = windowSize / newWindowSize;
- if (inputIncrement > div && outputIncrement > div) {
- inputIncrement /= div;
- outputIncrement /= div;
- windowSize /= div;
- }
-// cerr << " to " << windowSize << " (inputIncrement = " << inputIncrement << ", outputIncrement = " << outputIncrement << ")" << endl;
- }
- }
-
- } else {
-
- if (r < 1) {
- inputIncrement = windowSize / 4;
- while (inputIncrement >= 512) inputIncrement /= 2;
- outputIncrement = int(floor(inputIncrement * r));
- if (outputIncrement < 1) {
- outputIncrement = 1;
- inputIncrement = roundUp(lrint(ceil(outputIncrement / r)));
- windowSize = inputIncrement * 4;
- }
- } else {
- outputIncrement = windowSize / 6;
- inputIncrement = int(outputIncrement / r);
- while (outputIncrement > 1024 && inputIncrement > 1) {
- outputIncrement /= 2;
- inputIncrement = int(outputIncrement / r);
- }
- windowSize = std::max(windowSize, roundUp(outputIncrement * 6));
- if (r > 5) while (windowSize < 8192) windowSize *= 2;
- }
- }
-
- if (m_expectedInputDuration > 0) {
- while (inputIncrement * 4 > m_expectedInputDuration &&
- inputIncrement > 1) {
- inputIncrement /= 2;
- }
- }
-
- // windowSize can be almost anything, but it can't be greater than
- // 4 * m_baseWindowSize unless ratio is less than 1/1024.
-
- m_windowSize = windowSize;
- m_increment = inputIncrement;
-
- // When squashing, the greatest theoretically possible output
- // increment is the input increment. When stretching adaptively
- // the sky's the limit in principle, but we expect
- // StretchCalculator to restrict itself to using no more than
- // twice the basic output increment (i.e. input increment times
- // ratio) for any chunk.
-
- if (m_debugLevel > 0) {
- cerr << "configure: effective ratio = " << getEffectiveRatio() << endl;
- cerr << "configure: window size = " << m_windowSize << ", increment = " << m_increment << " (approx output increment = " << int(lrint(m_increment * getEffectiveRatio())) << ")" << endl;
- }
-
- if (m_windowSize > m_maxProcessSize) {
- m_maxProcessSize = m_windowSize;
- }
-
- m_outbufSize =
- size_t
- (ceil(max
- (m_maxProcessSize / m_pitchScale,
- m_windowSize * 2 * (m_timeRatio > 1.f ? m_timeRatio : 1.f))));
-
- if (m_realtime) {
- // This headroom is so as to try to avoid reallocation when
- // the pitch scale changes
- m_outbufSize = m_outbufSize * 16;
- } else {
- if (m_threaded) {
- // This headroom is to permit the processing threads to
- // run ahead of the buffer output drainage; the exact
- // amount of headroom is a question of tuning rather than
- // results
- m_outbufSize = m_outbufSize * 16;
- }
- }
-
- if (m_debugLevel > 0) {
- cerr << "configure: outbuf size = " << m_outbufSize << endl;
- }
-}
-
-void
-RubberBandStretcher::Impl::configure()
-{
-// std::cerr << "configure[" << this << "]: realtime = " << m_realtime << ", pitch scale = "
-// << m_pitchScale << ", channels = " << m_channels << std::endl;
-
- size_t prevWindowSize = m_windowSize;
- size_t prevOutbufSize = m_outbufSize;
- if (m_windows.empty()) {
- prevWindowSize = 0;
- prevOutbufSize = 0;
- }
-
- calculateSizes();
-
- bool windowSizeChanged = (prevWindowSize != m_windowSize);
- bool outbufSizeChanged = (prevOutbufSize != m_outbufSize);
-
- // This function may be called at any time in non-RT mode, after a
- // parameter has changed. It shouldn't be legal to call it after
- // processing has already begun.
-
- // This function is only called once (on construction) in RT
- // mode. After that reconfigure() does the work in a hopefully
- // RT-safe way.
-
- set<size_t> windowSizes;
- if (m_realtime) {
- windowSizes.insert(m_baseWindowSize);
- windowSizes.insert(m_baseWindowSize / 2);
- windowSizes.insert(m_baseWindowSize * 2);
-// windowSizes.insert(m_baseWindowSize * 4);
- }
- windowSizes.insert(m_windowSize);
-
- if (windowSizeChanged) {
-
- for (set<size_t>::const_iterator i = windowSizes.begin();
- i != windowSizes.end(); ++i) {
- if (m_windows.find(*i) == m_windows.end()) {
- m_windows[*i] = new Window<float>(HanningWindow, *i);
- }
- }
- m_window = m_windows[m_windowSize];
-
- if (m_debugLevel > 0) {
- cerr << "Window area: " << m_window->getArea() << "; synthesis window area: " << m_window->getArea() << endl;
- }
- }
-
- if (windowSizeChanged || outbufSizeChanged) {
-
- for (size_t c = 0; c < m_channelData.size(); ++c) {
- delete m_channelData[c];
- }
- m_channelData.clear();
-
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData.push_back
- (new ChannelData(windowSizes, 1, m_windowSize, m_outbufSize));
- }
- }
-
- if (!m_realtime && windowSizeChanged) {
- delete m_studyFFT;
- m_studyFFT = new FFT(m_windowSize, m_debugLevel);
- m_studyFFT->initFloat();
- }
-
- if (m_pitchScale != 1.0 ||
- (m_options & OptionPitchHighConsistency) ||
- m_realtime) {
-
- for (size_t c = 0; c < m_channels; ++c) {
-
- if (m_channelData[c]->resampler) continue;
-
- m_channelData[c]->resampler =
- new Resampler(Resampler::FastestTolerable, 1, 4096 * 16,
- m_debugLevel);
-
- // rbs is the amount of buffer space we think we'll need
- // for resampling; but allocate a sensible amount in case
- // the pitch scale changes during use
- size_t rbs =
- lrintf(ceil((m_increment * m_timeRatio * 2) / m_pitchScale));
- if (rbs < m_increment * 16) rbs = m_increment * 16;
- m_channelData[c]->setResampleBufSize(rbs);
- }
- }
-
- // stretchAudioCurve is unused in RT mode; phaseResetAudioCurve,
- // silentAudioCurve and stretchCalculator however are used in all
- // modes
-
- delete m_phaseResetAudioCurve;
- m_phaseResetAudioCurve = new PercussiveAudioCurve
- (m_sampleRate, m_windowSize);
-
- delete m_silentAudioCurve;
- m_silentAudioCurve = new SilentAudioCurve
- (m_sampleRate, m_windowSize);
-
- if (!m_realtime) {
- delete m_stretchAudioCurve;
- if (!(m_options & OptionStretchPrecise)) {
- m_stretchAudioCurve = new SpectralDifferenceAudioCurve
- (m_sampleRate, m_windowSize);
- } else {
- m_stretchAudioCurve = new ConstantAudioCurve
- (m_sampleRate, m_windowSize);
- }
- }
-
- delete m_stretchCalculator;
- m_stretchCalculator = new StretchCalculator
- (m_sampleRate, m_increment,
- !(m_options & OptionTransientsSmooth));
-
- m_stretchCalculator->setDebugLevel(m_debugLevel);
- m_inputDuration = 0;
-
- // Prepare the inbufs with half a chunk of emptiness. The centre
- // point of the first processing chunk for the onset detector
- // should be the first sample of the audio, and we continue until
- // we can no longer centre a chunk within the input audio. The
- // number of onset detector chunks will be the number of audio
- // samples input, divided by the input increment, plus one.
-
- // In real-time mode, we don't do this prefill -- it's better to
- // start with a swoosh than introduce more latency, and we don't
- // want gaps when the ratio changes.
-
- if (!m_realtime) {
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData[c]->reset();
- m_channelData[c]->inbuf->zero(m_windowSize/2);
- }
- }
-}
-
-
-void
-RubberBandStretcher::Impl::reconfigure()
-{
- if (!m_realtime) {
- if (m_mode == Studying) {
- // stop and calculate the stretch curve so far, then reset
- // the df vectors
- calculateStretch();
- m_phaseResetDf.clear();
- m_stretchDf.clear();
- m_silence.clear();
- m_inputDuration = 0;
- }
- configure();
- }
-
- size_t prevWindowSize = m_windowSize;
- size_t prevOutbufSize = m_outbufSize;
-
- calculateSizes();
-
- // There are various allocations in this function, but they should
- // never happen in normal use -- they just recover from the case
- // where not all of the things we need were correctly created when
- // we first configured (for whatever reason). This is intended to
- // be "effectively" realtime safe. The same goes for
- // ChannelData::setOutbufSize and setWindowSize.
-
- if (m_windowSize != prevWindowSize) {
-
- if (m_windows.find(m_windowSize) == m_windows.end()) {
- std::cerr << "WARNING: reconfigure(): window allocation (size " << m_windowSize << ") required in RT mode" << std::endl;
- m_windows[m_windowSize] = new Window<float>(HanningWindow, m_windowSize);
- }
- m_window = m_windows[m_windowSize];
-
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData[c]->setWindowSize(m_windowSize);
- }
- }
-
- if (m_outbufSize != prevOutbufSize) {
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData[c]->setOutbufSize(m_outbufSize);
- }
- }
-
- if (m_pitchScale != 1.0) {
- for (size_t c = 0; c < m_channels; ++c) {
-
- if (m_channelData[c]->resampler) continue;
-
- std::cerr << "WARNING: reconfigure(): resampler construction required in RT mode" << std::endl;
-
- m_channelData[c]->resampler =
- new Resampler(Resampler::FastestTolerable, 1, m_windowSize,
- m_debugLevel);
-
- m_channelData[c]->setResampleBufSize
- (lrintf(ceil((m_increment * m_timeRatio * 2) / m_pitchScale)));
- }
- }
-
- if (m_windowSize != prevWindowSize) {
- m_phaseResetAudioCurve->setWindowSize(m_windowSize);
- }
-}
-
-size_t
-RubberBandStretcher::Impl::getLatency() const
-{
- if (!m_realtime) return 0;
- return int((m_windowSize/2) / m_pitchScale + 1);
-}
-
-void
-RubberBandStretcher::Impl::setTransientsOption(Options options)
-{
- if (!m_realtime) {
- cerr << "RubberBandStretcher::Impl::setTransientsOption: Not permissible in non-realtime mode" << endl;
- return;
- }
- int mask = (OptionTransientsMixed | OptionTransientsSmooth | OptionTransientsCrisp);
- m_options &= ~mask;
- options &= mask;
- m_options |= options;
-
- m_stretchCalculator->setUseHardPeaks
- (!(m_options & OptionTransientsSmooth));
-}
-
-void
-RubberBandStretcher::Impl::setPhaseOption(Options options)
-{
- int mask = (OptionPhaseLaminar | OptionPhaseIndependent);
- m_options &= ~mask;
- options &= mask;
- m_options |= options;
-}
-
-void
-RubberBandStretcher::Impl::setFormantOption(Options options)
-{
- int mask = (OptionFormantShifted | OptionFormantPreserved);
- m_options &= ~mask;
- options &= mask;
- m_options |= options;
-}
-
-void
-RubberBandStretcher::Impl::setPitchOption(Options options)
-{
- if (!m_realtime) {
- cerr << "RubberBandStretcher::Impl::setPitchOption: Pitch option is not used in non-RT mode" << endl;
- return;
- }
-
- Options prior = m_options;
-
- int mask = (OptionPitchHighQuality |
- OptionPitchHighSpeed |
- OptionPitchHighConsistency);
- m_options &= ~mask;
- options &= mask;
- m_options |= options;
-
- if (prior != m_options) reconfigure();
-}
-
-void
-RubberBandStretcher::Impl::study(const float *const *input, size_t samples, bool final)
-{
- Profiler profiler("RubberBandStretcher::Impl::study");
-
- if (m_realtime) {
- if (m_debugLevel > 1) {
- cerr << "RubberBandStretcher::Impl::study: Not meaningful in realtime mode" << endl;
- }
- return;
- }
-
- if (m_mode == Processing || m_mode == Finished) {
- cerr << "RubberBandStretcher::Impl::study: Cannot study after processing" << endl;
- return;
- }
- m_mode = Studying;
-
- size_t consumed = 0;
-
- ChannelData &cd = *m_channelData[0];
- RingBuffer<float> &inbuf = *cd.inbuf;
-
- const float *mixdown;
- float *mdalloc = 0;
-
- if (m_channels > 1 || final) {
- // mix down into a single channel for analysis
- mdalloc = new float[samples];
- for (size_t i = 0; i < samples; ++i) {
- if (i < samples) {
- mdalloc[i] = input[0][i];
- } else {
- mdalloc[i] = 0.f;
- }
- }
- for (size_t c = 1; c < m_channels; ++c) {
- for (size_t i = 0; i < samples; ++i) {
- mdalloc[i] += input[c][i];
- }
- }
- for (size_t i = 0; i < samples; ++i) {
- mdalloc[i] /= m_channels;
- }
- mixdown = mdalloc;
- } else {
- mixdown = input[0];
- }
-
- while (consumed < samples) {
-
- size_t writable = inbuf.getWriteSpace();
- writable = min(writable, samples - consumed);
-
- if (writable == 0) {
- // warn
- cerr << "WARNING: writable == 0 (consumed = " << consumed << ", samples = " << samples << ")" << endl;
- } else {
- inbuf.write(mixdown + consumed, writable);
- consumed += writable;
- }
-
- while ((inbuf.getReadSpace() >= int(m_windowSize)) ||
- (final && (inbuf.getReadSpace() >= int(m_windowSize/2)))) {
-
- // We know we have at least m_windowSize samples available
- // in m_inbuf. We need to peek m_windowSize of them for
- // processing, and then skip m_increment to advance the
- // read pointer.
-
- // cd.accumulator is not otherwise used during studying,
- // so we can use it as a temporary buffer here
-
-#ifdef NDEBUG
- inbuf.peek(cd.accumulator, m_windowSize);
-#else
- size_t got = inbuf.peek(cd.accumulator, m_windowSize);
-#endif
- assert(final || got == m_windowSize);
-
- m_window->cut(cd.accumulator);
-
- // We don't need the fftshift for studying, as we're only
- // interested in magnitude
-
- m_studyFFT->forwardMagnitude(cd.accumulator, cd.fltbuf);
-
- float df = m_phaseResetAudioCurve->process(cd.fltbuf, m_increment);
- m_phaseResetDf.push_back(df);
-
-// cout << m_phaseResetDf.size() << " [" << final << "] -> " << df << " \t: ";
-
- df = m_stretchAudioCurve->process(cd.fltbuf, m_increment);
- m_stretchDf.push_back(df);
-
- df = m_silentAudioCurve->process(cd.fltbuf, m_increment);
- bool silent = (df > 0.f);
- if (silent && m_debugLevel > 1) {
- cerr << "silence found at " << m_inputDuration << endl;
- }
- m_silence.push_back(silent);
-
-// cout << df << endl;
-
- // We have augmented the input by m_windowSize/2 so
- // that the first chunk is centred on the first audio
- // sample. We want to ensure that m_inputDuration
- // contains the exact input duration without including
- // this extra bit. We just add up all the increments
- // here, and deduct the extra afterwards.
-
- m_inputDuration += m_increment;
-// cerr << "incr input duration by increment: " << m_increment << " -> " << m_inputDuration << endl;
- inbuf.skip(m_increment);
- }
- }
-
- if (final) {
- int rs = inbuf.getReadSpace();
- m_inputDuration += rs;
-// cerr << "incr input duration by read space: " << rs << " -> " << m_inputDuration << endl;
-
- if (m_inputDuration > m_windowSize/2) { // deducting the extra
- m_inputDuration -= m_windowSize/2;
- }
- }
-
- if (m_channels > 1) delete[] mdalloc;
-}
-
-vector<int>
-RubberBandStretcher::Impl::getOutputIncrements() const
-{
- if (!m_realtime) {
- return m_outputIncrements;
- } else {
- vector<int> increments;
- while (m_lastProcessOutputIncrements.getReadSpace() > 0) {
- increments.push_back(m_lastProcessOutputIncrements.readOne());
- }
- return increments;
- }
-}
-
-vector<float>
-RubberBandStretcher::Impl::getPhaseResetCurve() const
-{
- if (!m_realtime) {
- return m_phaseResetDf;
- } else {
- vector<float> df;
- while (m_lastProcessPhaseResetDf.getReadSpace() > 0) {
- df.push_back(m_lastProcessPhaseResetDf.readOne());
- }
- return df;
- }
-}
-
-vector<int>
-RubberBandStretcher::Impl::getExactTimePoints() const
-{
- std::vector<int> points;
- if (!m_realtime) {
- std::vector<StretchCalculator::Peak> peaks =
- m_stretchCalculator->getLastCalculatedPeaks();
- for (size_t i = 0; i < peaks.size(); ++i) {
- points.push_back(peaks[i].chunk);
- }
- }
- return points;
-}
-
-void
-RubberBandStretcher::Impl::calculateStretch()
-{
- Profiler profiler("RubberBandStretcher::Impl::calculateStretch");
-
- size_t inputDuration = m_inputDuration;
-
- if (!m_realtime && m_expectedInputDuration > 0) {
- if (m_expectedInputDuration != inputDuration) {
- std::cerr << "RubberBandStretcher: WARNING: Actual study() duration differs from duration set by setExpectedInputDuration (" << m_inputDuration << " vs " << m_expectedInputDuration << ", diff = " << (m_expectedInputDuration - m_inputDuration) << "), using the latter for calculation" << std::endl;
- inputDuration = m_expectedInputDuration;
- }
- }
-
- std::vector<int> increments = m_stretchCalculator->calculate
- (getEffectiveRatio(),
- inputDuration,
- m_phaseResetDf,
- m_stretchDf);
-
- int history = 0;
- for (size_t i = 0; i < increments.size(); ++i) {
- if (i >= m_silence.size()) break;
- if (m_silence[i]) ++history;
- else history = 0;
- if (history >= int(m_windowSize / m_increment) && increments[i] >= 0) {
- increments[i] = -increments[i];
- if (m_debugLevel > 1) {
- std::cerr << "phase reset on silence (silent history == "
- << history << ")" << std::endl;
- }
- }
- }
-
- if (m_outputIncrements.empty()) m_outputIncrements = increments;
- else {
- for (size_t i = 0; i < increments.size(); ++i) {
- m_outputIncrements.push_back(increments[i]);
- }
- }
-
- return;
-}
-
-void
-RubberBandStretcher::Impl::setDebugLevel(int level)
-{
- m_debugLevel = level;
- if (m_stretchCalculator) m_stretchCalculator->setDebugLevel(level);
-}
-
-size_t
-RubberBandStretcher::Impl::getSamplesRequired() const
-{
- Profiler profiler("RubberBandStretcher::Impl::getSamplesRequired");
-
- size_t reqd = 0;
-
- for (size_t c = 0; c < m_channels; ++c) {
-
- size_t reqdHere = 0;
-
- ChannelData &cd = *m_channelData[c];
- RingBuffer<float> &inbuf = *cd.inbuf;
-
- size_t rs = inbuf.getReadSpace();
-
- // See notes in testInbufReadSpace
-
- if (rs < m_windowSize && !cd.draining) {
-
- if (cd.inputSize == -1) {
- reqdHere = m_windowSize - rs;
- if (reqdHere > reqd) reqd = reqdHere;
- continue;
- }
-
- if (rs == 0) {
- reqdHere = m_windowSize;
- if (reqdHere > reqd) reqd = reqdHere;
- continue;
- }
- }
- }
-
- return reqd;
-}
-
-void
-RubberBandStretcher::Impl::process(const float *const *input, size_t samples, bool final)
-{
- Profiler profiler("RubberBandStretcher::Impl::process");
-
- if (m_mode == Finished) {
- cerr << "RubberBandStretcher::Impl::process: Cannot process again after final chunk" << endl;
- return;
- }
-
- if (m_mode == JustCreated || m_mode == Studying) {
-
- if (m_mode == Studying) {
- calculateStretch();
- }
-
- for (size_t c = 0; c < m_channels; ++c) {
- m_channelData[c]->reset();
- m_channelData[c]->inbuf->zero(m_windowSize/2);
- }
-
- if (m_threaded) {
- MutexLocker locker(&m_threadSetMutex);
-
- for (size_t c = 0; c < m_channels; ++c) {
- ProcessThread *thread = new ProcessThread(this, c);
- m_threadSet.insert(thread);
- thread->start();
- }
-
- if (m_debugLevel > 0) {
- cerr << m_channels << " threads created" << endl;
- }
- }
-
- m_mode = Processing;
- }
-
- bool allConsumed = false;
-
- size_t *consumed = (size_t *)alloca(m_channels * sizeof(size_t));
- for (size_t c = 0; c < m_channels; ++c) {
- consumed[c] = 0;
- }
-
- while (!allConsumed) {
-
-//#ifndef NO_THREADING
-// if (m_threaded) {
-// pthread_mutex_lock(&m_inputProcessedMutex);
-// }
-//#endif
-
- // In a threaded mode, our "consumed" counters only indicate
- // the number of samples that have been taken into the input
- // ring buffers waiting to be processed by the process thread.
- // In non-threaded mode, "consumed" counts the number that
- // have actually been processed.
-
- allConsumed = true;
-
- for (size_t c = 0; c < m_channels; ++c) {
- consumed[c] += consumeChannel(c,
- input[c] + consumed[c],
- samples - consumed[c],
- final);
- if (consumed[c] < samples) {
- allConsumed = false;
-// cerr << "process: waiting on input consumption for channel " << c << endl;
- } else {
- if (final) {
- m_channelData[c]->inputSize = m_channelData[c]->inCount;
- }
-// cerr << "process: happy with channel " << c << endl;
- }
- if (!m_threaded && !m_realtime) {
- bool any = false, last = false;
- processChunks(c, any, last);
- }
- }
-
- if (m_realtime) {
- // When running in real time, we need to process both
- // channels in step because we will need to use the sum of
- // their frequency domain representations as the input to
- // the realtime onset detector
- processOneChunk();
- }
-
- if (m_threaded) {
- for (ThreadSet::iterator i = m_threadSet.begin();
- i != m_threadSet.end(); ++i) {
- (*i)->signalDataAvailable();
- }
- if (!allConsumed) {
- m_spaceAvailable.wait(500);
- }
-/*
- } else {
- if (!allConsumed) {
- cerr << "RubberBandStretcher::Impl::process: ERROR: Too much data provided to process() call -- either call setMaxProcessSize() beforehand, or provide only getSamplesRequired() frames at a time" << endl;
- for (size_t c = 0; c < m_channels; ++c) {
- cerr << "channel " << c << ": " << samples << " provided, " << consumed[c] << " consumed" << endl;
- }
-// break;
- }
-*/
- }
-
-// if (!allConsumed) cerr << "process looping" << endl;
-
- }
-
-// cerr << "process returning" << endl;
-
- if (final) m_mode = Finished;
-}
-
-
-}
-
diff --git a/libs/rubberband/src/StretcherImpl.h b/libs/rubberband/src/StretcherImpl.h
deleted file mode 100644
index 996c61b7ef..0000000000
--- a/libs/rubberband/src/StretcherImpl.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_STRETCHERIMPL_H_
-#define _RUBBERBAND_STRETCHERIMPL_H_
-
-#include "RubberBandStretcher.h"
-
-#include "Window.h"
-#include "Thread.h"
-#include "RingBuffer.h"
-#include "FFT.h"
-#include "sysutils.h"
-
-#include <set>
-
-namespace RubberBand
-{
-
-class AudioCurve;
-class StretchCalculator;
-
-class RubberBandStretcher::Impl
-{
-public:
- Impl(size_t sampleRate, size_t channels, Options options,
- double initialTimeRatio, double initialPitchScale);
- ~Impl();
-
- void reset();
- void setTimeRatio(double ratio);
- void setPitchScale(double scale);
-
- double getTimeRatio() const;
- double getPitchScale() const;
-
- size_t getLatency() const;
-
- void setTransientsOption(Options);
- void setPhaseOption(Options);
- void setFormantOption(Options);
- void setPitchOption(Options);
-
- void setExpectedInputDuration(size_t samples);
- void setMaxProcessSize(size_t samples);
-
- size_t getSamplesRequired() const;
-
- void study(const float *const *input, size_t samples, bool final);
- void process(const float *const *input, size_t samples, bool final);
-
- int available() const;
- size_t retrieve(float *const *output, size_t samples) const;
-
- float getFrequencyCutoff(int n) const;
- void setFrequencyCutoff(int n, float f);
-
- size_t getInputIncrement() const {
- return m_increment;
- }
-
- std::vector<int> getOutputIncrements() const;
- std::vector<float> getPhaseResetCurve() const;
- std::vector<int> getExactTimePoints() const;
-
- size_t getChannelCount() const {
- return m_channels;
- }
-
- void calculateStretch();
-
- void setDebugLevel(int level);
- static void setDefaultDebugLevel(int level) { m_defaultDebugLevel = level; }
-
-protected:
- size_t m_sampleRate;
- size_t m_channels;
-
- size_t consumeChannel(size_t channel, const float *input,
- size_t samples, bool final);
- void processChunks(size_t channel, bool &any, bool &last);
- bool processOneChunk(); // across all channels, for real time use
- bool processChunkForChannel(size_t channel, size_t phaseIncrement,
- size_t shiftIncrement, bool phaseReset);
- bool testInbufReadSpace(size_t channel);
- void calculateIncrements(size_t &phaseIncrement,
- size_t &shiftIncrement, bool &phaseReset);
- bool getIncrements(size_t channel, size_t &phaseIncrement,
- size_t &shiftIncrement, bool &phaseReset);
- void analyseChunk(size_t channel);
- void modifyChunk(size_t channel, size_t outputIncrement, bool phaseReset);
- void formantShiftChunk(size_t channel);
- void synthesiseChunk(size_t channel);
- void writeChunk(size_t channel, size_t shiftIncrement, bool last);
-
- void calculateSizes();
- void configure();
- void reconfigure();
-
- double getEffectiveRatio() const;
-
- size_t roundUp(size_t value); // to next power of two
-
- bool resampleBeforeStretching() const;
-
- double m_timeRatio;
- double m_pitchScale;
-
- size_t m_windowSize;
- size_t m_increment;
- size_t m_outbufSize;
-
- size_t m_maxProcessSize;
- size_t m_expectedInputDuration;
-
- bool m_threaded;
- bool m_realtime;
- Options m_options;
- int m_debugLevel;
-
- enum ProcessMode {
- JustCreated,
- Studying,
- Processing,
- Finished
- };
-
- ProcessMode m_mode;
-
- std::map<size_t, Window<float> *> m_windows;
- Window<float> *m_window;
- FFT *m_studyFFT;
-
- Condition m_spaceAvailable;
-
- class ProcessThread : public Thread
- {
- public:
- ProcessThread(Impl *s, size_t c);
- void run();
- void signalDataAvailable();
- void abandon();
- private:
- Impl *m_s;
- size_t m_channel;
- Condition m_dataAvailable;
- bool m_abandoning;
- };
-
- mutable Mutex m_threadSetMutex;
- typedef std::set<ProcessThread *> ThreadSet;
- ThreadSet m_threadSet;
-
-
- size_t m_inputDuration;
- std::vector<float> m_phaseResetDf;
- std::vector<float> m_stretchDf;
- std::vector<bool> m_silence;
- int m_silentHistory;
-
- class ChannelData;
- std::vector<ChannelData *> m_channelData;
-
- std::vector<int> m_outputIncrements;
-
- mutable RingBuffer<int> m_lastProcessOutputIncrements;
- mutable RingBuffer<float> m_lastProcessPhaseResetDf;
-
- AudioCurve *m_phaseResetAudioCurve;
- AudioCurve *m_stretchAudioCurve;
- AudioCurve *m_silentAudioCurve;
- StretchCalculator *m_stretchCalculator;
-
- float m_freq0;
- float m_freq1;
- float m_freq2;
-
- size_t m_baseWindowSize;
- float m_rateMultiple;
-
- void writeOutput(RingBuffer<float> &to, float *from,
- size_t qty, size_t &outCount, size_t theoreticalOut);
-
- static int m_defaultDebugLevel;
- static const size_t m_defaultIncrement;
- static const size_t m_defaultWindowSize;
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/StretcherProcess.cpp b/libs/rubberband/src/StretcherProcess.cpp
deleted file mode 100644
index 3b832e09e1..0000000000
--- a/libs/rubberband/src/StretcherProcess.cpp
+++ /dev/null
@@ -1,1177 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "StretcherImpl.h"
-#include "PercussiveAudioCurve.h"
-#include "HighFrequencyAudioCurve.h"
-#include "ConstantAudioCurve.h"
-#include "StretchCalculator.h"
-#include "StretcherChannelData.h"
-#include "Resampler.h"
-#include "Profiler.h"
-
-#include <cstring>
-#include <cassert>
-#include <cmath>
-#include <set>
-#include <map>
-#include <deque>
-
-
-using std::cerr;
-using std::endl;
-
-namespace RubberBand {
-
-RubberBandStretcher::Impl::ProcessThread::ProcessThread(Impl *s, size_t c) :
- m_s(s),
- m_channel(c),
- m_dataAvailable(std::string("data ") + char('A' + c)),
- m_abandoning(false)
-{ }
-
-void
-RubberBandStretcher::Impl::ProcessThread::run()
-{
- if (m_s->m_debugLevel > 1) {
- cerr << "thread " << m_channel << " getting going" << endl;
- }
-
- ChannelData &cd = *m_s->m_channelData[m_channel];
-
- while (cd.inputSize == -1 ||
- cd.inbuf->getReadSpace() > 0) {
-
-// if (cd.inputSize != -1) {
-// cerr << "inputSize == " << cd.inputSize
-// << ", readSpace == " << cd.inbuf->getReadSpace() << endl;
-// }
-
- bool any = false, last = false;
- m_s->processChunks(m_channel, any, last);
-
- if (last) break;
-
- if (any) m_s->m_spaceAvailable.signal();
-
- m_dataAvailable.lock();
- if (!m_s->testInbufReadSpace(m_channel) && !m_abandoning) {
- m_dataAvailable.wait(50000); // bounded in case of abandonment
- } else {
- m_dataAvailable.unlock();
- }
-
- if (m_abandoning) {
- if (m_s->m_debugLevel > 1) {
- cerr << "thread " << m_channel << " abandoning" << endl;
- }
- return;
- }
- }
-
- bool any = false, last = false;
- m_s->processChunks(m_channel, any, last);
- m_s->m_spaceAvailable.signal();
-
- if (m_s->m_debugLevel > 1) {
- cerr << "thread " << m_channel << " done" << endl;
- }
-}
-
-void
-RubberBandStretcher::Impl::ProcessThread::signalDataAvailable()
-{
- m_dataAvailable.signal();
-}
-
-void
-RubberBandStretcher::Impl::ProcessThread::abandon()
-{
- m_abandoning = true;
-}
-
-bool
-RubberBandStretcher::Impl::resampleBeforeStretching() const
-{
- // We can't resample before stretching in offline mode, because
- // the stretch calculation is based on doing it the other way
- // around. It would take more work (and testing) to enable this.
- if (!m_realtime) return false;
-
- if (m_options & OptionPitchHighQuality) {
- return (m_pitchScale < 1.0); // better sound
- } else if (m_options & OptionPitchHighConsistency) {
- return false;
- } else {
- return (m_pitchScale > 1.0); // better performance
- }
-}
-
-size_t
-RubberBandStretcher::Impl::consumeChannel(size_t c, const float *input,
- size_t samples, bool final)
-{
- Profiler profiler("RubberBandStretcher::Impl::consumeChannel");
-
- ChannelData &cd = *m_channelData[c];
- RingBuffer<float> &inbuf = *cd.inbuf;
-
- size_t toWrite = samples;
- size_t writable = inbuf.getWriteSpace();
-
- bool resampling = resampleBeforeStretching();
-
- if (resampling) {
-
- toWrite = int(ceil(samples / m_pitchScale));
- if (writable < toWrite) {
- samples = int(floor(writable * m_pitchScale));
- if (samples == 0) return 0;
- }
-
- size_t reqSize = int(ceil(samples / m_pitchScale));
- if (reqSize > cd.resamplebufSize) {
- cerr << "WARNING: RubberBandStretcher::Impl::consumeChannel: resizing resampler buffer from "
- << cd.resamplebufSize << " to " << reqSize << endl;
- cd.setResampleBufSize(reqSize);
- }
-
-
- toWrite = cd.resampler->resample(&input,
- &cd.resamplebuf,
- samples,
- 1.0 / m_pitchScale,
- final);
-
- }
-
- if (writable < toWrite) {
- if (resampling) {
- return 0;
- }
- toWrite = writable;
- }
-
- if (resampling) {
- inbuf.write(cd.resamplebuf, toWrite);
- cd.inCount += samples;
- return samples;
- } else {
- inbuf.write(input, toWrite);
- cd.inCount += toWrite;
- return toWrite;
- }
-}
-
-void
-RubberBandStretcher::Impl::processChunks(size_t c, bool &any, bool &last)
-{
- Profiler profiler("RubberBandStretcher::Impl::processChunks");
-
- // Process as many chunks as there are available on the input
- // buffer for channel c. This requires that the increments have
- // already been calculated.
-
- ChannelData &cd = *m_channelData[c];
-
- last = false;
- any = false;
-
- while (!last) {
-
- if (!testInbufReadSpace(c)) {
-// cerr << "not enough input" << endl;
- break;
- }
-
- any = true;
-
- if (!cd.draining) {
- size_t got = cd.inbuf->peek(cd.fltbuf, m_windowSize);
- assert(got == m_windowSize || cd.inputSize >= 0);
- got = 0;
- cd.inbuf->skip(m_increment);
- analyseChunk(c);
- }
-
- bool phaseReset = false;
- size_t phaseIncrement, shiftIncrement;
- getIncrements(c, phaseIncrement, shiftIncrement, phaseReset);
-
- last = processChunkForChannel(c, phaseIncrement, shiftIncrement, phaseReset);
- cd.chunkCount++;
- if (m_debugLevel > 2) {
- cerr << "channel " << c << ": last = " << last << ", chunkCount = " << cd.chunkCount << endl;
- }
- }
-}
-
-bool
-RubberBandStretcher::Impl::processOneChunk()
-{
- Profiler profiler("RubberBandStretcher::Impl::processOneChunk");
-
- // Process a single chunk for all channels, provided there is
- // enough data on each channel for at least one chunk. This is
- // able to calculate increments as it goes along.
-
- for (size_t c = 0; c < m_channels; ++c) {
- if (!testInbufReadSpace(c)) return false;
- ChannelData &cd = *m_channelData[c];
- if (!cd.draining) {
- size_t got = cd.inbuf->peek(cd.fltbuf, m_windowSize);
- got = 0;
- assert(got == m_windowSize || cd.inputSize >= 0);
- cd.inbuf->skip(m_increment);
- analyseChunk(c);
- }
- }
-
- bool phaseReset = false;
- size_t phaseIncrement, shiftIncrement;
- if (!getIncrements(0, phaseIncrement, shiftIncrement, phaseReset)) {
- calculateIncrements(phaseIncrement, shiftIncrement, phaseReset);
- }
-
- bool last = false;
- for (size_t c = 0; c < m_channels; ++c) {
- last = processChunkForChannel(c, phaseIncrement, shiftIncrement, phaseReset);
- m_channelData[c]->chunkCount++;
- }
-
- return last;
-}
-
-bool
-RubberBandStretcher::Impl::testInbufReadSpace(size_t c)
-{
- Profiler profiler("RubberBandStretcher::Impl::testInbufReadSpace");
-
- ChannelData &cd = *m_channelData[c];
- RingBuffer<float> &inbuf = *cd.inbuf;
-
- size_t rs = inbuf.getReadSpace();
-
- if (rs < m_windowSize && !cd.draining) {
-
- if (cd.inputSize == -1) {
-
- // Not all the input data has been written to the inbuf
- // (that's why the input size is not yet set). We can't
- // process, because we don't have a full chunk of data, so
- // our process chunk would contain some empty padding in
- // its input -- and that would give incorrect output, as
- // we know there is more input to come.
-
- if (!m_threaded) {
-// cerr << "WARNING: RubberBandStretcher: read space < chunk size ("
-// << inbuf.getReadSpace() << " < " << m_windowSize
-// << ") when not all input written, on processChunks for channel " << c << endl;
- }
- return false;
- }
-
- if (rs == 0) {
-
- if (m_debugLevel > 1) {
- cerr << "read space = 0, giving up" << endl;
- }
- return false;
-
- } else if (rs < m_windowSize/2) {
-
- if (m_debugLevel > 1) {
- cerr << "read space = " << rs << ", setting draining true" << endl;
- }
-
- cd.draining = true;
- }
- }
-
- return true;
-}
-
-bool
-RubberBandStretcher::Impl::processChunkForChannel(size_t c,
- size_t phaseIncrement,
- size_t shiftIncrement,
- bool phaseReset)
-{
- Profiler profiler("RubberBandStretcher::Impl::processChunkForChannel");
-
- // Process a single chunk on a single channel. This assumes
- // enough input data is available; caller must have tested this
- // using e.g. testInbufReadSpace first. Return true if this is
- // the last chunk on the channel.
-
- if (phaseReset && (m_debugLevel > 1)) {
- cerr << "processChunkForChannel: phase reset found, incrs "
- << phaseIncrement << ":" << shiftIncrement << endl;
- }
-
- ChannelData &cd = *m_channelData[c];
-
- if (!cd.draining) {
-
- // This is the normal processing case -- draining is only
- // set when all the input has been used and we only need
- // to write from the existing accumulator into the output.
-
- // We know we have enough samples available in m_inbuf --
- // this is usually m_windowSize, but we know that if fewer
- // are available, it's OK to use zeroes for the rest
- // (which the ring buffer will provide) because we've
- // reached the true end of the data.
-
- // We need to peek m_windowSize samples for processing, and
- // then skip m_increment to advance the read pointer.
-
- modifyChunk(c, phaseIncrement, phaseReset);
- synthesiseChunk(c); // reads from cd.mag, cd.phase
-
- if (m_debugLevel > 2) {
- if (phaseReset) {
- for (int i = 0; i < 10; ++i) {
- cd.accumulator[i] = 1.2f - (i % 3) * 1.2f;
- }
- }
- }
- }
-
- bool last = false;
-
- if (cd.draining) {
- if (m_debugLevel > 1) {
- cerr << "draining: accumulator fill = " << cd.accumulatorFill << " (shiftIncrement = " << shiftIncrement << ")" << endl;
- }
- if (shiftIncrement == 0) {
- cerr << "WARNING: draining: shiftIncrement == 0, can't handle that in this context: setting to " << m_increment << endl;
- shiftIncrement = m_increment;
- }
- if (cd.accumulatorFill <= shiftIncrement) {
- if (m_debugLevel > 1) {
- cerr << "reducing shift increment from " << shiftIncrement
- << " to " << cd.accumulatorFill
- << " and marking as last" << endl;
- }
- shiftIncrement = cd.accumulatorFill;
- last = true;
- }
- }
-
- if (m_threaded) {
-
- int required = shiftIncrement;
-
- if (m_pitchScale != 1.0) {
- required = int(required / m_pitchScale) + 1;
- }
-
- if (cd.outbuf->getWriteSpace() < required) {
- if (m_debugLevel > 0) {
- cerr << "Buffer overrun on output for channel " << c << endl;
- }
-
- //!!! The only correct thing we can do here is resize the
- // buffer. We can't wait for the client thread to read
- // some data out from the buffer so as to make more space,
- // because the client thread is probably stuck in a
- // process() call waiting for us to stow away enough input
- // increments to allow the process() call to complete.
-
- }
- }
-
- writeChunk(c, shiftIncrement, last);
- return last;
-}
-
-void
-RubberBandStretcher::Impl::calculateIncrements(size_t &phaseIncrementRtn,
- size_t &shiftIncrementRtn,
- bool &phaseReset)
-{
- Profiler profiler("RubberBandStretcher::Impl::calculateIncrements");
-
-// cerr << "calculateIncrements" << endl;
-
- // Calculate the next upcoming phase and shift increment, on the
- // basis that both channels are in sync. This is in contrast to
- // getIncrements, which requires that all the increments have been
- // calculated in advance but can then return increments
- // corresponding to different chunks in different channels.
-
- // Requires frequency domain representations of channel data in
- // the mag and phase buffers in the channel.
-
- // This function is only used in real-time mode.
-
- phaseIncrementRtn = m_increment;
- shiftIncrementRtn = m_increment;
- phaseReset = false;
-
- if (m_channels == 0) return;
-
- ChannelData &cd = *m_channelData[0];
-
- size_t bc = cd.chunkCount;
- for (size_t c = 1; c < m_channels; ++c) {
- if (m_channelData[c]->chunkCount != bc) {
- cerr << "ERROR: RubberBandStretcher::Impl::calculateIncrements: Channels are not in sync" << endl;
- return;
- }
- }
-
- const int hs = m_windowSize/2 + 1;
-
- // Normally we would mix down the time-domain signal and apply a
- // single FFT, or else mix down the Cartesian form of the
- // frequency-domain signal. Both of those would be inefficient
- // from this position. Fortunately, the onset detectors should
- // work reasonably well (maybe even better?) if we just sum the
- // magnitudes of the frequency-domain channel signals and forget
- // about phase entirely. Normally we don't expect the channel
- // phases to cancel each other, and broadband effects will still
- // be apparent.
-
- float df = 0.f;
- bool silent = false;
-
- if (m_channels == 1) {
-
- df = m_phaseResetAudioCurve->processDouble(cd.mag, m_increment);
- silent = (m_silentAudioCurve->processDouble(cd.mag, m_increment) > 0.f);
-
- } else {
-
- double *tmp = (double *)alloca(hs * sizeof(double));
-
- for (int i = 0; i < hs; ++i) {
- tmp[i] = 0.0;
- }
- for (size_t c = 0; c < m_channels; ++c) {
- for (int i = 0; i < hs; ++i) {
- tmp[i] += m_channelData[c]->mag[i];
- }
- }
-
- df = m_phaseResetAudioCurve->processDouble(tmp, m_increment);
- silent = (m_silentAudioCurve->processDouble(tmp, m_increment) > 0.f);
- }
-
- int incr = m_stretchCalculator->calculateSingle
- (getEffectiveRatio(), df, m_increment);
-
- m_lastProcessPhaseResetDf.write(&df, 1);
- m_lastProcessOutputIncrements.write(&incr, 1);
-
- if (incr < 0) {
- phaseReset = true;
- incr = -incr;
- }
-
- // The returned increment is the phase increment. The shift
- // increment for one chunk is the same as the phase increment for
- // the following chunk (see comment below). This means we don't
- // actually know the shift increment until we see the following
- // phase increment... which is a bit of a problem.
-
- // This implies we should use this increment for the shift
- // increment, and make the following phase increment the same as
- // it. This means in RT mode we'll be one chunk later with our
- // phase reset than we would be in non-RT mode. The sensitivity
- // of the broadband onset detector may mean that this isn't a
- // problem -- test it and see.
-
- shiftIncrementRtn = incr;
-
- if (cd.prevIncrement == 0) {
- phaseIncrementRtn = shiftIncrementRtn;
- } else {
- phaseIncrementRtn = cd.prevIncrement;
- }
-
- cd.prevIncrement = shiftIncrementRtn;
-
- if (silent) ++m_silentHistory;
- else m_silentHistory = 0;
-
- if (m_silentHistory >= int(m_windowSize / m_increment) && !phaseReset) {
- phaseReset = true;
- if (m_debugLevel > 1) {
- cerr << "calculateIncrements: phase reset on silence (silent history == "
- << m_silentHistory << ")" << endl;
- }
- }
-}
-
-bool
-RubberBandStretcher::Impl::getIncrements(size_t channel,
- size_t &phaseIncrementRtn,
- size_t &shiftIncrementRtn,
- bool &phaseReset)
-{
- Profiler profiler("RubberBandStretcher::Impl::getIncrements");
-
- if (channel >= m_channels) {
- phaseIncrementRtn = m_increment;
- shiftIncrementRtn = m_increment;
- phaseReset = false;
- return false;
- }
-
- // There are two relevant output increments here. The first is
- // the phase increment which we use when recalculating the phases
- // for the current chunk; the second is the shift increment used
- // to determine how far to shift the processing buffer after
- // writing the chunk. The shift increment for one chunk is the
- // same as the phase increment for the following chunk.
-
- // When an onset occurs for which we need to reset phases, the
- // increment given will be negative.
-
- // When we reset phases, the previous shift increment (and so
- // current phase increments) must have been m_increment to ensure
- // consistency.
-
- // m_outputIncrements stores phase increments.
-
- ChannelData &cd = *m_channelData[channel];
- bool gotData = true;
-
- if (cd.chunkCount >= m_outputIncrements.size()) {
-// cerr << "WARNING: RubberBandStretcher::Impl::getIncrements:"
-// << " chunk count " << cd.chunkCount << " >= "
-// << m_outputIncrements.size() << endl;
- if (m_outputIncrements.size() == 0) {
- phaseIncrementRtn = m_increment;
- shiftIncrementRtn = m_increment;
- phaseReset = false;
- return false;
- } else {
- cd.chunkCount = m_outputIncrements.size()-1;
- gotData = false;
- }
- }
-
- int phaseIncrement = m_outputIncrements[cd.chunkCount];
-
- int shiftIncrement = phaseIncrement;
- if (cd.chunkCount + 1 < m_outputIncrements.size()) {
- shiftIncrement = m_outputIncrements[cd.chunkCount + 1];
- }
-
- if (phaseIncrement < 0) {
- phaseIncrement = -phaseIncrement;
- phaseReset = true;
- }
-
- if (shiftIncrement < 0) {
- shiftIncrement = -shiftIncrement;
- }
-
- if (shiftIncrement >= int(m_windowSize)) {
- cerr << "*** ERROR: RubberBandStretcher::Impl::processChunks: shiftIncrement " << shiftIncrement << " >= windowSize " << m_windowSize << " at " << cd.chunkCount << " (of " << m_outputIncrements.size() << ")" << endl;
- shiftIncrement = m_windowSize;
- }
-
- phaseIncrementRtn = phaseIncrement;
- shiftIncrementRtn = shiftIncrement;
- if (cd.chunkCount == 0) phaseReset = true; // don't mess with the first chunk
- return gotData;
-}
-
-void
-RubberBandStretcher::Impl::analyseChunk(size_t channel)
-{
- Profiler profiler("RubberBandStretcher::Impl::analyseChunk");
-
- int i;
-
- ChannelData &cd = *m_channelData[channel];
-
- double *const R__ dblbuf = cd.dblbuf;
- float *const R__ fltbuf = cd.fltbuf;
-
- int sz = m_windowSize;
- int hs = m_windowSize/2;
-
- // cd.fltbuf is known to contain m_windowSize samples
-
- m_window->cut(fltbuf);
-
- if (cd.oversample > 1) {
-
- int bufsiz = sz * cd.oversample;
- int offset = (bufsiz - sz) / 2;
-
- // eek
-
- for (i = 0; i < offset; ++i) {
- dblbuf[i] = 0.0;
- }
- for (i = 0; i < offset; ++i) {
- dblbuf[bufsiz - i - 1] = 0.0;
- }
- for (i = 0; i < sz; ++i) {
- dblbuf[offset + i] = fltbuf[i];
- }
- for (i = 0; i < bufsiz / 2; ++i) {
- double tmp = dblbuf[i];
- dblbuf[i] = dblbuf[i + bufsiz/2];
- dblbuf[i + bufsiz/2] = tmp;
- }
- } else {
- for (i = 0; i < hs; ++i) {
- dblbuf[i] = fltbuf[i + hs];
- dblbuf[i + hs] = fltbuf[i];
- }
- }
-
- cd.fft->forwardPolar(dblbuf, cd.mag, cd.phase);
-}
-
-static inline double mod(double x, double y) { return x - (y * floor(x / y)); }
-static inline double princarg(double a) { return mod(a + M_PI, -2.0 * M_PI) + M_PI; }
-
-void
-RubberBandStretcher::Impl::modifyChunk(size_t channel,
- size_t outputIncrement,
- bool phaseReset)
-{
- Profiler profiler("RubberBandStretcher::Impl::modifyChunk");
-
- ChannelData &cd = *m_channelData[channel];
-
- if (phaseReset && m_debugLevel > 1) {
- cerr << "phase reset: leaving phases unmodified" << endl;
- }
-
- const double rate = m_sampleRate;
- const int sz = m_windowSize;
- const int count = (sz * cd.oversample) / 2;
-
- bool unchanged = cd.unchanged && (outputIncrement == m_increment);
- bool fullReset = phaseReset;
- bool laminar = !(m_options & OptionPhaseIndependent);
- bool bandlimited = (m_options & OptionTransientsMixed);
- int bandlow = lrint((150 * sz * cd.oversample) / rate);
- int bandhigh = lrint((1000 * sz * cd.oversample) / rate);
-
- float freq0 = m_freq0;
- float freq1 = m_freq1;
- float freq2 = m_freq2;
-
- if (laminar) {
- float r = getEffectiveRatio();
- if (r > 1) {
- float rf0 = 600 + (600 * ((r-1)*(r-1)*(r-1)*2));
- float f1ratio = freq1 / freq0;
- float f2ratio = freq2 / freq0;
- freq0 = std::max(freq0, rf0);
- freq1 = freq0 * f1ratio;
- freq2 = freq0 * f2ratio;
- }
- }
-
- int limit0 = lrint((freq0 * sz * cd.oversample) / rate);
- int limit1 = lrint((freq1 * sz * cd.oversample) / rate);
- int limit2 = lrint((freq2 * sz * cd.oversample) / rate);
-
- if (limit1 < limit0) limit1 = limit0;
- if (limit2 < limit1) limit2 = limit1;
-
- double prevInstability = 0.0;
- bool prevDirection = false;
-
- double distance = 0.0;
- const double maxdist = 8.0;
-
- const int lookback = 1;
-
- double distacc = 0.0;
-
- for (int i = count; i >= 0; i -= lookback) {
-
- bool resetThis = phaseReset;
-
- if (bandlimited) {
- if (resetThis) {
- if (i > bandlow && i < bandhigh) {
- resetThis = false;
- fullReset = false;
- }
- }
- }
-
- double p = cd.phase[i];
- double perr = 0.0;
- double outphase = p;
-
- double mi = maxdist;
- if (i <= limit0) mi = 0.0;
- else if (i <= limit1) mi = 1.0;
- else if (i <= limit2) mi = 3.0;
-
- if (!resetThis) {
-
- double omega = (2 * M_PI * m_increment * i) / (sz * cd.oversample);
-
- double pp = cd.prevPhase[i];
- double ep = pp + omega;
- perr = princarg(p - ep);
-
- double instability = fabs(perr - cd.prevError[i]);
- bool direction = (perr > cd.prevError[i]);
-
- bool inherit = false;
-
- if (laminar) {
- if (distance >= mi || i == count) {
- inherit = false;
- } else if (bandlimited && (i == bandhigh || i == bandlow)) {
- inherit = false;
- } else if (instability > prevInstability &&
- direction == prevDirection) {
- inherit = true;
- }
- }
-
- double advance = outputIncrement * ((omega + perr) / m_increment);
-
- if (inherit) {
- double inherited =
- cd.unwrappedPhase[i + lookback] - cd.prevPhase[i + lookback];
- advance = ((advance * distance) +
- (inherited * (maxdist - distance)))
- / maxdist;
- outphase = p + advance;
- distacc += distance;
- distance += 1.0;
- } else {
- outphase = cd.unwrappedPhase[i] + advance;
- distance = 0.0;
- }
-
- prevInstability = instability;
- prevDirection = direction;
-
- } else {
- distance = 0.0;
- }
-
- cd.prevError[i] = perr;
- cd.prevPhase[i] = p;
- cd.phase[i] = outphase;
- cd.unwrappedPhase[i] = outphase;
- }
-
- if (m_debugLevel > 1) {
- cerr << "mean inheritance distance = " << distacc / count << endl;
- }
-
- if (fullReset) unchanged = true;
- cd.unchanged = unchanged;
-
- if (unchanged && m_debugLevel > 1) {
- cerr << "frame unchanged on channel " << channel << endl;
- }
-}
-
-
-void
-RubberBandStretcher::Impl::formantShiftChunk(size_t channel)
-{
- Profiler profiler("RubberBandStretcher::Impl::formantShiftChunk");
-
- ChannelData &cd = *m_channelData[channel];
-
- double *const R__ mag = cd.mag;
- double *const R__ envelope = cd.envelope;
- double *const R__ dblbuf = cd.dblbuf;
-
- const int sz = m_windowSize;
- const int hs = m_windowSize/2;
- const double denom = sz;
-
-
- cd.fft->inverseCepstral(mag, dblbuf);
-
- for (int i = 0; i < sz; ++i) {
- dblbuf[i] /= denom;
- }
-
- const int cutoff = m_sampleRate / 700;
-
-// cerr <<"cutoff = "<< cutoff << ", m_sampleRate/cutoff = " << m_sampleRate/cutoff << endl;
-
- dblbuf[0] /= 2;
- dblbuf[cutoff-1] /= 2;
-
- for (int i = cutoff; i < sz; ++i) {
- dblbuf[i] = 0.0;
- }
-
- cd.fft->forward(dblbuf, envelope, 0);
-
-
- for (int i = 0; i <= hs; ++i) {
- envelope[i] = exp(envelope[i]);
- }
- for (int i = 0; i <= hs; ++i) {
- mag[i] /= envelope[i];
- }
-
- if (m_pitchScale > 1.0) {
- // scaling up, we want a new envelope that is lower by the pitch factor
- for (int target = 0; target <= hs; ++target) {
- int source = lrint(target * m_pitchScale);
- if (source > int(m_windowSize)) {
- envelope[target] = 0.0;
- } else {
- envelope[target] = envelope[source];
- }
- }
- } else {
- // scaling down, we want a new envelope that is higher by the pitch factor
- for (int target = hs; target > 0; ) {
- --target;
- int source = lrint(target * m_pitchScale);
- envelope[target] = envelope[source];
- }
- }
-
- for (int i = 0; i <= hs; ++i) {
- mag[i] *= envelope[i];
- }
-
- cd.unchanged = false;
-}
-
-void
-RubberBandStretcher::Impl::synthesiseChunk(size_t channel)
-{
- Profiler profiler("RubberBandStretcher::Impl::synthesiseChunk");
-
-
- if ((m_options & OptionFormantPreserved) &&
- (m_pitchScale != 1.0)) {
- formantShiftChunk(channel);
- }
-
- ChannelData &cd = *m_channelData[channel];
-
- double *const R__ dblbuf = cd.dblbuf;
- float *const R__ fltbuf = cd.fltbuf;
- float *const R__ accumulator = cd.accumulator;
- float *const R__ windowAccumulator = cd.windowAccumulator;
-
- int sz = m_windowSize;
- int hs = m_windowSize/2;
- int i;
-
-
- if (!cd.unchanged) {
-
- cd.fft->inversePolar(cd.mag, cd.phase, cd.dblbuf);
-
- if (cd.oversample > 1) {
-
- int bufsiz = sz * cd.oversample;
- int hbs = hs * cd.oversample;
- int offset = (bufsiz - sz) / 2;
-
- for (i = 0; i < hbs; ++i) {
- double tmp = dblbuf[i];
- dblbuf[i] = dblbuf[i + hbs];
- dblbuf[i + hbs] = tmp;
- }
- for (i = 0; i < sz; ++i) {
- fltbuf[i] = float(dblbuf[i + offset]);
- }
- } else {
- for (i = 0; i < hs; ++i) {
- fltbuf[i] = float(dblbuf[i + hs]);
- }
- for (i = 0; i < hs; ++i) {
- fltbuf[i + hs] = float(dblbuf[i]);
- }
- }
-
- float denom = float(sz * cd.oversample);
-
- // our ffts produced unscaled results
- for (i = 0; i < sz; ++i) {
- fltbuf[i] = fltbuf[i] / denom;
- }
- }
-
- m_window->cut(fltbuf);
-
- for (i = 0; i < sz; ++i) {
- accumulator[i] += fltbuf[i];
- }
-
- cd.accumulatorFill = m_windowSize;
-
- float fixed = m_window->getArea() * 1.5f;
-
- for (i = 0; i < sz; ++i) {
- float val = m_window->getValue(i);
- windowAccumulator[i] += val * fixed;
- }
-}
-
-void
-RubberBandStretcher::Impl::writeChunk(size_t channel, size_t shiftIncrement, bool last)
-{
- Profiler profiler("RubberBandStretcher::Impl::writeChunk");
-
- ChannelData &cd = *m_channelData[channel];
-
- float *const R__ accumulator = cd.accumulator;
- float *const R__ windowAccumulator = cd.windowAccumulator;
-
- const int sz = m_windowSize;
- const int si = shiftIncrement;
-
- int i;
-
- if (m_debugLevel > 2) {
- cerr << "writeChunk(" << channel << ", " << shiftIncrement << ", " << last << ")" << endl;
- }
-
- for (i = 0; i < si; ++i) {
- if (windowAccumulator[i] > 0.f) {
- accumulator[i] /= windowAccumulator[i];
- }
- }
-
- // for exact sample scaling (probably not meaningful if we
- // were running in RT mode)
- size_t theoreticalOut = 0;
- if (cd.inputSize >= 0) {
- theoreticalOut = lrint(cd.inputSize * m_timeRatio);
- }
-
- bool resampledAlready = resampleBeforeStretching();
-
- if (!resampledAlready &&
- (m_pitchScale != 1.0 || m_options & OptionPitchHighConsistency) &&
- cd.resampler) {
-
- size_t reqSize = int(ceil(si / m_pitchScale));
- if (reqSize > cd.resamplebufSize) {
- // This shouldn't normally happen -- the buffer is
- // supposed to be initialised with enough space in the
- // first place. But we retain this check in case the
- // pitch scale has changed since then, or the stretch
- // calculator has gone mad, or something.
- cerr << "WARNING: RubberBandStretcher::Impl::writeChunk: resizing resampler buffer from "
- << cd.resamplebufSize << " to " << reqSize << endl;
- cd.setResampleBufSize(reqSize);
- }
-
-
- size_t outframes = cd.resampler->resample(&cd.accumulator,
- &cd.resamplebuf,
- si,
- 1.0 / m_pitchScale,
- last);
-
-
- writeOutput(*cd.outbuf, cd.resamplebuf,
- outframes, cd.outCount, theoreticalOut);
-
- } else {
- writeOutput(*cd.outbuf, accumulator,
- si, cd.outCount, theoreticalOut);
- }
-
- for (i = 0; i < sz - si; ++i) {
- accumulator[i] = accumulator[i + si];
- }
-
- for (i = sz - si; i < sz; ++i) {
- accumulator[i] = 0.0f;
- }
-
- for (i = 0; i < sz - si; ++i) {
- windowAccumulator[i] = windowAccumulator[i + si];
- }
-
- for (i = sz - si; i < sz; ++i) {
- windowAccumulator[i] = 0.0f;
- }
-
- if (int(cd.accumulatorFill) > si) {
- cd.accumulatorFill -= si;
- } else {
- cd.accumulatorFill = 0;
- if (cd.draining) {
- if (m_debugLevel > 1) {
- cerr << "RubberBandStretcher::Impl::processChunks: setting outputComplete to true" << endl;
- }
- cd.outputComplete = true;
- }
- }
-}
-
-void
-RubberBandStretcher::Impl::writeOutput(RingBuffer<float> &to, float *from, size_t qty, size_t &outCount, size_t theoreticalOut)
-{
- Profiler profiler("RubberBandStretcher::Impl::writeOutput");
-
- // In non-RT mode, we don't want to write the first startSkip
- // samples, because the first chunk is centred on the start of the
- // output. In RT mode we didn't apply any pre-padding in
- // configure(), so we don't want to remove any here.
-
- size_t startSkip = 0;
- if (!m_realtime) {
- startSkip = lrintf((m_windowSize/2) / m_pitchScale);
- }
-
- if (outCount > startSkip) {
-
- // this is the normal case
-
- if (theoreticalOut > 0) {
- if (m_debugLevel > 1) {
- cerr << "theoreticalOut = " << theoreticalOut
- << ", outCount = " << outCount
- << ", startSkip = " << startSkip
- << ", qty = " << qty << endl;
- }
- if (outCount - startSkip <= theoreticalOut &&
- outCount - startSkip + qty > theoreticalOut) {
- qty = theoreticalOut - (outCount - startSkip);
- if (m_debugLevel > 1) {
- cerr << "reduce qty to " << qty << endl;
- }
- }
- }
-
- if (m_debugLevel > 2) {
- cerr << "writing " << qty << endl;
- }
-
- size_t written = to.write(from, qty);
-
- if (written < qty) {
- cerr << "WARNING: RubberBandStretcher::Impl::writeOutput: "
- << "Buffer overrun on output: wrote " << written
- << " of " << qty << " samples" << endl;
- }
-
- outCount += written;
- return;
- }
-
- // the rest of this is only used during the first startSkip samples
-
- if (outCount + qty <= startSkip) {
- if (m_debugLevel > 1) {
- cerr << "qty = " << qty << ", startSkip = "
- << startSkip << ", outCount = " << outCount
- << ", discarding" << endl;
- }
- outCount += qty;
- return;
- }
-
- size_t off = startSkip - outCount;
- if (m_debugLevel > 1) {
- cerr << "qty = " << qty << ", startSkip = "
- << startSkip << ", outCount = " << outCount
- << ", writing " << qty - off
- << " from start offset " << off << endl;
- }
- to.write(from + off, qty - off);
- outCount += qty;
-}
-
-int
-RubberBandStretcher::Impl::available() const
-{
- Profiler profiler("RubberBandStretcher::Impl::available");
-
- if (m_threaded) {
- MutexLocker locker(&m_threadSetMutex);
- if (m_channelData.empty()) return 0;
- } else {
- if (m_channelData.empty()) return 0;
- }
-
- if (!m_threaded) {
- for (size_t c = 0; c < m_channels; ++c) {
- if (m_channelData[c]->inputSize >= 0) {
-// cerr << "available: m_done true" << endl;
- if (m_channelData[c]->inbuf->getReadSpace() > 0) {
-// cerr << "calling processChunks(" << c << ") from available" << endl;
- //!!! do we ever actually do this? if so, this method should not be const
- // ^^^ yes, we do sometimes -- e.g. when fed a very short file
- bool any = false, last = false;
- ((RubberBandStretcher::Impl *)this)->processChunks(c, any, last);
- }
- }
- }
- }
-
- size_t min = 0;
- bool consumed = true;
- bool haveResamplers = false;
-
- for (size_t i = 0; i < m_channels; ++i) {
- size_t availIn = m_channelData[i]->inbuf->getReadSpace();
- size_t availOut = m_channelData[i]->outbuf->getReadSpace();
- if (m_debugLevel > 2) {
- cerr << "available on channel " << i << ": " << availOut << " (waiting: " << availIn << ")" << endl;
- }
- if (i == 0 || availOut < min) min = availOut;
- if (!m_channelData[i]->outputComplete) consumed = false;
- if (m_channelData[i]->resampler) haveResamplers = true;
- }
-
- if (min == 0 && consumed) return -1;
- if (m_pitchScale == 1.0) return min;
-
- if (haveResamplers) return min; // resampling has already happened
- return int(floor(min / m_pitchScale));
-}
-
-size_t
-RubberBandStretcher::Impl::retrieve(float *const *output, size_t samples) const
-{
- Profiler profiler("RubberBandStretcher::Impl::retrieve");
-
- size_t got = samples;
-
- for (size_t c = 0; c < m_channels; ++c) {
- size_t gotHere = m_channelData[c]->outbuf->read(output[c], got);
- if (gotHere < got) {
- if (c > 0) {
- if (m_debugLevel > 0) {
- cerr << "RubberBandStretcher::Impl::retrieve: WARNING: channel imbalance detected" << endl;
- }
- }
- got = gotHere;
- }
- }
-
- return got;
-}
-
-}
-
diff --git a/libs/rubberband/src/Thread.cpp b/libs/rubberband/src/Thread.cpp
deleted file mode 100644
index d5a7b2f6ff..0000000000
--- a/libs/rubberband/src/Thread.cpp
+++ /dev/null
@@ -1,583 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "Thread.h"
-
-#include <cstdlib>
-#include <iostream>
-
-#ifndef COMPILER_MSVC
-#include <sys/time.h>
-#include <time.h>
-#endif
-
-using std::cerr;
-using std::endl;
-using std::string;
-
-namespace RubberBand
-{
-
-#ifdef PLATFORM_WINDOWS
-
-Thread::Thread() :
- m_id(0),
- m_extant(false)
-{
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Created thread object " << this << endl;
-#endif
-}
-
-Thread::~Thread()
-{
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Destroying thread object " << this << ", id " << m_id << endl;
-#endif
- if (m_extant) {
- WaitForSingleObject(m_id, INFINITE);
- }
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Destroyed thread object " << this << endl;
-#endif
-}
-
-void
-Thread::start()
-{
- m_id = CreateThread(NULL, 0, staticRun, this, 0, 0);
- if (!m_id) {
- cerr << "ERROR: thread creation failed" << endl;
- exit(1);
- } else {
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Created thread " << m_id << " for thread object " << this << endl;
-#endif
- m_extant = true;
- }
-}
-
-void
-Thread::wait()
-{
- if (m_extant) {
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Waiting on thread " << m_id << " for thread object " << this << endl;
-#endif
- WaitForSingleObject(m_id, INFINITE);
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Waited on thread " << m_id << " for thread object " << this << endl;
-#endif
- m_extant = false;
- }
-}
-
-Thread::Id
-Thread::id()
-{
- return m_id;
-}
-
-bool
-Thread::threadingAvailable()
-{
- return true;
-}
-
-DWORD
-Thread::staticRun(LPVOID arg)
-{
- Thread *thread = static_cast<Thread *>(arg);
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: " << (void *)GetCurrentThreadId() << ": Running thread " << thread->m_id << " for thread object " << thread << endl;
-#endif
- thread->run();
- return 0;
-}
-
-Mutex::Mutex()
-#ifndef NO_THREAD_CHECKS
- :
- m_lockedBy(-1)
-#endif
-{
- m_mutex = CreateMutex(NULL, FALSE, NULL);
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)GetCurrentThreadId() << ": Initialised mutex " << &m_mutex << endl;
-#endif
-}
-
-Mutex::~Mutex()
-{
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)GetCurrentThreadId() << ": Destroying mutex " << &m_mutex << endl;
-#endif
- CloseHandle(m_mutex);
-}
-
-void
-Mutex::lock()
-{
-#ifndef NO_THREAD_CHECKS
- DWORD tid = GetCurrentThreadId();
- if (m_lockedBy == tid) {
- cerr << "ERROR: Deadlock on mutex " << &m_mutex << endl;
- }
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Want to lock mutex " << &m_mutex << endl;
-#endif
- WaitForSingleObject(m_mutex, INFINITE);
-#ifndef NO_THREAD_CHECKS
- m_lockedBy = tid;
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Locked mutex " << &m_mutex << endl;
-#endif
-}
-
-void
-Mutex::unlock()
-{
-#ifndef NO_THREAD_CHECKS
- DWORD tid = GetCurrentThreadId();
- if (m_lockedBy != tid) {
- cerr << "ERROR: Mutex " << &m_mutex << " not owned by unlocking thread" << endl;
- return;
- }
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Unlocking mutex " << &m_mutex << endl;
-#endif
-#ifndef NO_THREAD_CHECKS
- m_lockedBy = -1;
-#endif
- ReleaseMutex(m_mutex);
-}
-
-bool
-Mutex::trylock()
-{
-#ifndef NO_THREAD_CHECKS
- DWORD tid = GetCurrentThreadId();
-#endif
- DWORD result = WaitForSingleObject(m_mutex, 0);
- if (result == WAIT_TIMEOUT || result == WAIT_FAILED) {
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Mutex " << &m_mutex << " unavailable" << endl;
-#endif
- return false;
- } else {
-#ifndef NO_THREAD_CHECKS
- m_lockedBy = tid;
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Locked mutex " << &m_mutex << " (from trylock)" << endl;
-#endif
- return true;
- }
-}
-
-Condition::Condition(string name) :
- m_locked(false)
-#ifdef DEBUG_CONDITION
- , m_name(name)
-#endif
-{
- m_mutex = CreateMutex(NULL, FALSE, NULL);
- m_condition = CreateEvent(NULL, FALSE, FALSE, NULL);
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Initialised condition " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
-}
-
-Condition::~Condition()
-{
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Destroying condition " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- if (m_locked) ReleaseMutex(m_mutex);
- CloseHandle(m_condition);
- CloseHandle(m_mutex);
-}
-
-void
-Condition::lock()
-{
- if (m_locked) {
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Already locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- return;
- }
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Want to lock " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- WaitForSingleObject(m_mutex, INFINITE);
- m_locked = true;
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
-}
-
-void
-Condition::unlock()
-{
- if (!m_locked) {
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Not locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- return;
- }
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Unlocking " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- m_locked = false;
- ReleaseMutex(m_mutex);
-}
-
-void
-Condition::wait(int us)
-{
- if (!m_locked) lock();
-
- if (us == 0) {
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Waiting on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- SignalObjectAndWait(m_mutex, m_condition, INFINITE, FALSE);
- WaitForSingleObject(m_mutex, INFINITE);
-
- } else {
-
- DWORD ms = us / 1000;
- if (us > 0 && ms == 0) ms = 1;
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Timed waiting on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- SignalObjectAndWait(m_mutex, m_condition, ms, FALSE);
- WaitForSingleObject(m_mutex, INFINITE);
- }
-
- ReleaseMutex(m_mutex);
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Wait done on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- m_locked = false;
-}
-
-void
-Condition::signal()
-{
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)GetCurrentThreadId() << ": Signalling " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- SetEvent(m_condition);
-}
-
-#else /* !PLATFORM_WINDOWS */
-
-
-Thread::Thread() :
- m_id(0),
- m_extant(false)
-{
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Created thread object " << this << endl;
-#endif
-}
-
-Thread::~Thread()
-{
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Destroying thread object " << this << ", id " << m_id << endl;
-#endif
- if (m_extant) {
- pthread_join(m_id, 0);
- }
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Destroyed thread object " << this << endl;
-#endif
-}
-
-void
-Thread::start()
-{
- if (pthread_create(&m_id, 0, staticRun, this)) {
- cerr << "ERROR: thread creation failed" << endl;
- exit(1);
- } else {
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Created thread " << m_id << " for thread object " << this << endl;
-#endif
- m_extant = true;
- }
-}
-
-void
-Thread::wait()
-{
- if (m_extant) {
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Waiting on thread " << m_id << " for thread object " << this << endl;
-#endif
- pthread_join(m_id, 0);
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: Waited on thread " << m_id << " for thread object " << this << endl;
-#endif
- m_extant = false;
- }
-}
-
-Thread::Id
-Thread::id()
-{
- return m_id;
-}
-
-bool
-Thread::threadingAvailable()
-{
- return true;
-}
-
-void *
-Thread::staticRun(void *arg)
-{
- Thread *thread = static_cast<Thread *>(arg);
-#ifdef DEBUG_THREAD
- cerr << "THREAD DEBUG: " << (void *)pthread_self() << ": Running thread " << thread->m_id << " for thread object " << thread << endl;
-#endif
- thread->run();
- return 0;
-}
-
-Mutex::Mutex()
-#ifndef NO_THREAD_CHECKS
- :
- m_lockedBy(0),
- m_locked(false)
-#endif
-{
- pthread_mutex_init(&m_mutex, 0);
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)pthread_self() << ": Initialised mutex " << &m_mutex << endl;
-#endif
-}
-
-Mutex::~Mutex()
-{
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)pthread_self() << ": Destroying mutex " << &m_mutex << endl;
-#endif
- pthread_mutex_destroy(&m_mutex);
-}
-
-void
-Mutex::lock()
-{
-#ifndef NO_THREAD_CHECKS
- pthread_t tid = pthread_self();
- if (m_locked && m_lockedBy == tid) {
- cerr << "ERROR: Deadlock on mutex " << &m_mutex << endl;
- }
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Want to lock mutex " << &m_mutex << endl;
-#endif
- pthread_mutex_lock(&m_mutex);
-#ifndef NO_THREAD_CHECKS
- m_lockedBy = tid;
- m_locked = true;
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Locked mutex " << &m_mutex << endl;
-#endif
-}
-
-void
-Mutex::unlock()
-{
-#ifndef NO_THREAD_CHECKS
- pthread_t tid = pthread_self();
- if (!m_locked) {
- cerr << "ERROR: Mutex " << &m_mutex << " not locked in unlock" << endl;
- return;
- } else if (m_lockedBy != tid) {
- cerr << "ERROR: Mutex " << &m_mutex << " not owned by unlocking thread" << endl;
- return;
- }
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Unlocking mutex " << &m_mutex << endl;
-#endif
-#ifndef NO_THREAD_CHECKS
- m_locked = false;
-#endif
- pthread_mutex_unlock(&m_mutex);
-}
-
-bool
-Mutex::trylock()
-{
-#ifndef NO_THREAD_CHECKS
- pthread_t tid = pthread_self();
-#endif
- if (pthread_mutex_trylock(&m_mutex)) {
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Mutex " << &m_mutex << " unavailable" << endl;
-#endif
- return false;
- } else {
-#ifndef NO_THREAD_CHECKS
- m_lockedBy = tid;
- m_locked = true;
-#endif
-#ifdef DEBUG_MUTEX
- cerr << "MUTEX DEBUG: " << (void *)tid << ": Locked mutex " << &m_mutex << " (from trylock)" << endl;
-#endif
- return true;
- }
-}
-
-Condition::Condition(string /*name*/) :
- m_locked(false)
-#ifdef DEBUG_CONDITION
- , m_name(name)
-#endif
-{
- pthread_mutex_init(&m_mutex, 0);
- pthread_cond_init(&m_condition, 0);
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Initialised condition " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
-}
-
-Condition::~Condition()
-{
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Destroying condition " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- if (m_locked) pthread_mutex_unlock(&m_mutex);
- pthread_cond_destroy(&m_condition);
- pthread_mutex_destroy(&m_mutex);
-}
-
-void
-Condition::lock()
-{
- if (m_locked) {
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Already locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- return;
- }
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Want to lock " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- pthread_mutex_lock(&m_mutex);
- m_locked = true;
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
-}
-
-void
-Condition::unlock()
-{
- if (!m_locked) {
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Not locked " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- return;
- }
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Unlocking " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- m_locked = false;
- pthread_mutex_unlock(&m_mutex);
-}
-
-void
-Condition::wait(int us)
-{
- if (!m_locked) lock();
-
- if (us == 0) {
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Waiting on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- pthread_cond_wait(&m_condition, &m_mutex);
-
- } else {
-
- struct timeval now;
- gettimeofday(&now, 0);
-
- now.tv_usec += us;
- while (now.tv_usec > 1000000) {
- now.tv_usec -= 1000000;
- ++now.tv_sec;
- }
-
- struct timespec timeout;
- timeout.tv_sec = now.tv_sec;
- timeout.tv_nsec = now.tv_usec * 1000;
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Timed waiting on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- pthread_cond_timedwait(&m_condition, &m_mutex, &timeout);
- }
-
- pthread_mutex_unlock(&m_mutex);
-
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Wait done on " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- m_locked = false;
-}
-
-void
-Condition::signal()
-{
-#ifdef DEBUG_CONDITION
- cerr << "CONDITION DEBUG: " << (void *)pthread_self() << ": Signalling " << &m_condition << " \"" << m_name << "\"" << endl;
-#endif
- pthread_cond_signal(&m_condition);
-}
-
-#endif /* !PLATFORM_WINDOWS */
-
-MutexLocker::MutexLocker(Mutex *mutex) :
- m_mutex(mutex)
-{
- if (m_mutex) {
- m_mutex->lock();
- }
-}
-
-MutexLocker::~MutexLocker()
-{
- if (m_mutex) {
- m_mutex->unlock();
- }
-}
-
-}
-
diff --git a/libs/rubberband/src/Thread.h b/libs/rubberband/src/Thread.h
deleted file mode 100644
index 63a5a65b67..0000000000
--- a/libs/rubberband/src/Thread.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_THREAD_H_
-#define _RUBBERBAND_THREAD_H_
-
-#ifdef PLATFORM_WINDOWS
-#include <windows.h>
-#else /* !PLATFORM_WINDOWS */
-#include <pthread.h>
-#endif /* !PLATFORM_WINDOWS */
-
-#include <string>
-
-//#define DEBUG_THREAD 1
-//#define DEBUG_MUTEX 1
-//#define DEBUG_CONDITION 1
-
-namespace RubberBand
-{
-
-class Thread
-{
-public:
-#ifdef PLATFORM_WINDOWS
- typedef HANDLE Id;
-#else
- typedef pthread_t Id;
-#endif
-
- Thread();
- virtual ~Thread();
-
- Id id();
-
- void start();
- void wait();
-
- static bool threadingAvailable();
-
-protected:
- virtual void run() = 0;
-
-private:
-#ifdef PLATFORM_WINDOWS
- HANDLE m_id;
- bool m_extant;
- static DWORD WINAPI staticRun(LPVOID lpParam);
-#else
- pthread_t m_id;
- bool m_extant;
- static void *staticRun(void *);
-#endif
-};
-
-class Mutex
-{
-public:
- Mutex();
- ~Mutex();
-
- void lock();
- void unlock();
- bool trylock();
-
-private:
-#ifdef PLATFORM_WINDOWS
- HANDLE m_mutex;
-#ifndef NO_THREAD_CHECKS
- DWORD m_lockedBy;
-#endif
-#else
- pthread_mutex_t m_mutex;
-#ifndef NO_THREAD_CHECKS
- pthread_t m_lockedBy;
- bool m_locked;
-#endif
-#endif
-};
-
-class MutexLocker
-{
-public:
- MutexLocker(Mutex *);
- ~MutexLocker();
-
-private:
- Mutex *m_mutex;
-};
-
-class Condition
-{
-public:
- Condition(std::string name);
- ~Condition();
-
- // To wait on a condition, either simply call wait(), or call
- // lock() and then wait() (perhaps testing some state in between).
- // To signal a condition, call signal().
-
- // Although any thread may signal on a given condition, only one
- // thread should ever wait on any given condition object --
- // otherwise there will be a race conditions in the logic that
- // avoids the thread code having to track whether the condition's
- // mutex is locked or not. If that is your requirement, this
- // Condition wrapper is not for you.
- void lock();
- void unlock();
- void wait(int us = 0);
-
- void signal();
-
-private:
-
-#ifdef PLATFORM_WINDOWS
- HANDLE m_mutex;
- HANDLE m_condition;
- bool m_locked;
-#else
- pthread_mutex_t m_mutex;
- pthread_cond_t m_condition;
- bool m_locked;
-#endif
-#ifdef DEBUG_CONDITION
- std::string m_name;
-#endif
-};
-
-}
-
-#endif
diff --git a/libs/rubberband/src/Window.cpp b/libs/rubberband/src/Window.cpp
deleted file mode 100644
index 106faa7b62..0000000000
--- a/libs/rubberband/src/Window.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "Window.h"
-
-
diff --git a/libs/rubberband/src/Window.h b/libs/rubberband/src/Window.h
deleted file mode 100644
index 6916b6fb5f..0000000000
--- a/libs/rubberband/src/Window.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_WINDOW_H_
-#define _RUBBERBAND_WINDOW_H_
-
-#include <cstdlib>
-#include <cmath>
-#include <cstdlib>
-#include <iostream>
-#include <cstdlib>
-#include <map>
-
-#include "sysutils.h"
-
-namespace RubberBand {
-
-enum WindowType {
- RectangularWindow,
- BartlettWindow,
- HammingWindow,
- HanningWindow,
- BlackmanWindow,
- GaussianWindow,
- ParzenWindow,
- NuttallWindow,
- BlackmanHarrisWindow
-};
-
-template <typename T>
-class Window
-{
-public:
- /**
- * Construct a windower of the given type.
- */
- Window(WindowType type, int size) : m_type(type), m_size(size) { encache(); }
- Window(const Window &w) : m_type(w.m_type), m_size(w.m_size) { encache(); }
- Window &operator=(const Window &w) {
- if (&w == this) return *this;
- m_type = w.m_type;
- m_size = w.m_size;
- encache();
- return *this;
- }
- virtual ~Window() { delete[] m_cache; }
-
- void cut(T *R__ src) const
- {
- const int sz = m_size;
- for (int i = 0; i < sz; ++i) {
- src[i] *= m_cache[i];
- }
- }
-
- void cut(T *R__ src, T *dst) const {
- const int sz = m_size;
- for (int i = 0; i < sz; ++i) {
- dst[i] = src[i];
- }
- for (int i = 0; i < sz; ++i) {
- dst[i] *= m_cache[i];
- }
- }
-
- T getArea() { return m_area; }
- T getValue(int i) { return m_cache[i]; }
-
- WindowType getType() const { return m_type; }
- int getSize() const { return m_size; }
-
-protected:
- WindowType m_type;
- int m_size;
- T *R__ m_cache;
- T m_area;
-
- void encache();
- void cosinewin(T *, T, T, T, T);
-};
-
-template <typename T>
-void Window<T>::encache()
-{
- int n = int(m_size);
- T *mult = new T[n];
- int i;
- for (i = 0; i < n; ++i) mult[i] = 1.0;
-
- switch (m_type) {
-
- case RectangularWindow:
- for (i = 0; i < n; ++i) {
- mult[i] *= 0.5;
- }
- break;
-
- case BartlettWindow:
- for (i = 0; i < n/2; ++i) {
- mult[i] *= (i / T(n/2));
- mult[i + n/2] *= (1.0 - (i / T(n/2)));
- }
- break;
-
- case HammingWindow:
- cosinewin(mult, 0.54, 0.46, 0.0, 0.0);
- break;
-
- case HanningWindow:
- cosinewin(mult, 0.50, 0.50, 0.0, 0.0);
- break;
-
- case BlackmanWindow:
- cosinewin(mult, 0.42, 0.50, 0.08, 0.0);
- break;
-
- case GaussianWindow:
- for (i = 0; i < n; ++i) {
- mult[i] *= pow(2, - pow((i - (n-1)/2.0) / ((n-1)/2.0 / 3), 2));
- }
- break;
-
- case ParzenWindow:
- {
- int N = n-1;
- for (i = 0; i < N/4; ++i) {
- T m = 2 * pow(1.0 - (T(N)/2 - i) / (T(N)/2), 3);
- mult[i] *= m;
- mult[N-i] *= m;
- }
- for (i = N/4; i <= N/2; ++i) {
- int wn = i - N/2;
- T m = 1.0 - 6 * pow(wn / (T(N)/2), 2) * (1.0 - abs(wn) / (T(N)/2));
- mult[i] *= m;
- mult[N-i] *= m;
- }
- break;
- }
-
- case NuttallWindow:
- cosinewin(mult, 0.3635819, 0.4891775, 0.1365995, 0.0106411);
- break;
-
- case BlackmanHarrisWindow:
- cosinewin(mult, 0.35875, 0.48829, 0.14128, 0.01168);
- break;
- }
-
- m_cache = mult;
-
- m_area = 0;
- for (int i = 0; i < n; ++i) {
- m_area += m_cache[i];
- }
- m_area /= n;
-}
-
-template <typename T>
-void Window<T>::cosinewin(T *mult, T a0, T a1, T a2, T a3)
-{
- int n = int(m_size);
- for (int i = 0; i < n; ++i) {
- mult[i] *= (a0
- - a1 * cos(2 * M_PI * i / n)
- + a2 * cos(4 * M_PI * i / n)
- - a3 * cos(6 * M_PI * i / n));
- }
-}
-
-}
-
-#endif
diff --git a/libs/rubberband/src/bsd-3rdparty/float_cast/float_cast.h b/libs/rubberband/src/bsd-3rdparty/float_cast/float_cast.h
deleted file mode 100644
index 0e3d8a4040..0000000000
--- a/libs/rubberband/src/bsd-3rdparty/float_cast/float_cast.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-** Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-**
-** Permission to use, copy, modify, distribute, and sell this file for any
-** purpose is hereby granted without fee, provided that the above copyright
-** and this permission notice appear in all copies. No representations are
-** made about the suitability of this software for any purpose. It is
-** provided "as is" without express or implied warranty.
-*/
-
-/* Version 1.1 */
-
-
-/*============================================================================
-** On Intel Pentium processors (especially PIII and probably P4), converting
-** from float to int is very slow. To meet the C specs, the code produced by
-** most C compilers targeting Pentium needs to change the FPU rounding mode
-** before the float to int conversion is performed.
-**
-** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It
-** is this flushing of the pipeline which is so slow.
-**
-** Fortunately the ISO C99 specifications define the functions lrint, lrintf,
-** llrint and llrintf which fix this problem as a side effect.
-**
-** On Unix-like systems, the configure process should have detected the
-** presence of these functions. If they weren't found we have to replace them
-** here with a standard C cast.
-*/
-
-/*
-** The C99 prototypes for lrint and lrintf are as follows:
-**
-** long int lrintf (float x) ;
-** long int lrint (double x) ;
-*/
-
-#ifndef __FLOAT_CAST_H__ // Added by JE - 30-11-2009
-#define __FLOAT_CAST_H__
-
-#if (defined (WIN32) || defined (_WIN32))
-
- #include <math.h>
-
- /* Win32 doesn't seem to have these functions.
- ** Therefore implement inline versions of these functions here.
- */
-
- __inline long int
- lrint (double flt)
- { int intgr;
-
- _asm
- { fld flt
- fistp intgr
- } ;
-
- return intgr ;
- }
-
- __inline long int
- lrintf (float flt)
- { int intgr;
-
- _asm
- { fld flt
- fistp intgr
- } ;
-
- return intgr ;
- }
-
-#endif
-
-#endif // __FLOAT_CAST_H__
-
diff --git a/libs/rubberband/src/bsd-3rdparty/getopt/getopt.c b/libs/rubberband/src/bsd-3rdparty/getopt/getopt.c
deleted file mode 100644
index ce9abb3cce..0000000000
--- a/libs/rubberband/src/bsd-3rdparty/getopt/getopt.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int opterr = 1, /* if error message should be printed */
- optind = 1, /* index into parent argv vector */
- optopt, /* character checked for validity */
- optreset; /* reset getopt */
-char *optarg; /* argument associated with option */
-
-#define BADCH (int)'?'
-#define BADARG (int)':'
-#define EMSG ""
-
-/*
- * getopt --
- * Parse argc/argv argument vector.
- */
-int
-getopt(nargc, nargv, ostr)
- int nargc;
- char * const *nargv;
- const char *ostr;
-{
- static char *place = EMSG; /* option letter processing */
- char *oli; /* option letter list index */
-
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc || *(place = nargv[optind]) != '-') {
- place = EMSG;
- return (-1);
- }
- if (place[1] && *++place == '-') { /* found "--" */
- ++optind;
- place = EMSG;
- return (-1);
- }
- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- !(oli = strchr(ostr, optopt))) {
- /*
- * if the user didn't specify '-' as an option,
- * assume it means -1.
- */
- if (optopt == (int)'-')
- return (-1);
- if (!*place)
- ++optind;
- if (opterr && *ostr != ':' && optopt != BADCH)
- (void)fprintf(stderr, "%s: illegal option -- %c\n",
- "progname", optopt);
- return (BADCH);
- }
- if (*++oli != ':') { /* don't need argument */
- optarg = NULL;
- if (!*place)
- ++optind;
- }
- else { /* need an argument */
- if (*place) /* no white space */
- optarg = place;
- else if (nargc <= ++optind) { /* no arg */
- place = EMSG;
- if (*ostr == ':')
- return (BADARG);
- if (opterr)
- (void)fprintf(stderr,
- "%s: option requires an argument -- %c\n",
- "progname", optopt);
- return (BADCH);
- }
- else /* white space */
- optarg = nargv[optind];
- place = EMSG;
- ++optind;
- }
- return (optopt); /* dump back option letter */
-}
diff --git a/libs/rubberband/src/bsd-3rdparty/getopt/getopt.h b/libs/rubberband/src/bsd-3rdparty/getopt/getopt.h
deleted file mode 100644
index d95d6cf8f8..0000000000
--- a/libs/rubberband/src/bsd-3rdparty/getopt/getopt.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* $NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $ */
-/* $FreeBSD: src/include/getopt.h,v 1.1 2002/09/29 04:14:30 eric Exp $ */
-
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Dieter Baron and Thomas Klausner.
- *
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
- */
-
-#ifndef _GETOPT_H_
-#define _GETOPT_H_
-
-#ifdef _WIN32
-/* from <sys/cdefs.h> */
-# ifdef __cplusplus
-# define __BEGIN_DECLS extern "C" {
-# define __END_DECLS }
-# else
-# define __BEGIN_DECLS
-# define __END_DECLS
-# endif
-# define __P(args) args
-#endif
-
-/*#ifndef _WIN32
-#include <sys/cdefs.h>
-#include <unistd.h>
-#endif*/
-
-#ifdef _WIN32
-# if !defined(GETOPT_API)
-# define GETOPT_API __declspec(dllimport)
-# endif
-#endif
-
-/*
- * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions
- */
-#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-struct option {
- /* name of long option */
- const char *name;
- /*
- * one of no_argument, required_argument, and optional_argument:
- * whether option takes an argument
- */
- int has_arg;
- /* if not NULL, set *flag to val when option found */
- int *flag;
- /* if flag not NULL, value to set *flag to; else return value */
- int val;
-};
-
-__BEGIN_DECLS
-GETOPT_API int getopt_long __P((int, char * const *, const char *,
- const struct option *, int *));
-__END_DECLS
-#endif
-
-#ifdef _WIN32
-/* These are global getopt variables */
-__BEGIN_DECLS
-
-GETOPT_API extern int opterr, /* if error message should be printed */
- optind, /* index into parent argv vector */
- optopt, /* character checked for validity */
- optreset; /* reset getopt */
-GETOPT_API extern char* optarg; /* argument associated with option */
-
-/* Original getopt */
-GETOPT_API int getopt __P((int, char * const *, const char *));
-
-__END_DECLS
-#endif
-
-#endif /* !_GETOPT_H_ */
diff --git a/libs/rubberband/src/bsd-3rdparty/getopt/getopt_long.c b/libs/rubberband/src/bsd-3rdparty/getopt/getopt_long.c
deleted file mode 100644
index 1f92449a06..0000000000
--- a/libs/rubberband/src/bsd-3rdparty/getopt/getopt_long.c
+++ /dev/null
@@ -1,547 +0,0 @@
-/* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */
-/* $FreeBSD: src/lib/libc/stdlib/getopt_long.c,v 1.2 2002/10/16 22:18:42 alfred Exp $ */
-
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Dieter Baron and Thomas Klausner.
- *
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef _WIN32
-
-/* Windows needs warnx(). We change the definition though:
- * 1. (another) global is defined, opterrmsg, which holds the error message
- * 2. errors are always printed out on stderr w/o the program name
- * Note that opterrmsg always gets set no matter what opterr is set to. The
- * error message will not be printed if opterr is 0 as usual.
- */
-
-#include "getopt.h"
-#include <stdio.h>
-#include <stdarg.h>
-
-GETOPT_API extern char opterrmsg[128];
-char opterrmsg[128]; /* last error message is stored here */
-
-static void warnx(int print_error, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- if (fmt != NULL)
- _vsnprintf(opterrmsg, 128, fmt, ap);
- else
- opterrmsg[0]='\0';
- va_end(ap);
- if (print_error) {
- fprintf(stderr, opterrmsg);
- fprintf(stderr, "\n");
- }
-}
-
-#endif /*_WIN32*/
-
-/* not part of the original file */
-#ifndef _DIAGASSERT
-#define _DIAGASSERT(X)
-#endif
-
-#if HAVE_CONFIG_H && !HAVE_GETOPT_LONG && !HAVE_DECL_OPTIND
-#define REPLACE_GETOPT
-#endif
-
-#ifdef REPLACE_GETOPT
-#ifdef __weak_alias
-__weak_alias(getopt,_getopt)
-#endif
-int opterr = 1; /* if error message should be printed */
-int optind = 1; /* index into parent argv vector */
-int optopt = '?'; /* character checked for validity */
-int optreset; /* reset getopt */
-char *optarg; /* argument associated with option */
-#elif HAVE_CONFIG_H && !HAVE_DECL_OPTRESET
-static int optreset;
-#endif
-
-#ifdef __weak_alias
-__weak_alias(getopt_long,_getopt_long)
-#endif
-
-#if !HAVE_GETOPT_LONG
-#define IGNORE_FIRST (*options == '-' || *options == '+')
-#define PRINT_ERROR ((opterr) && ((*options != ':') \
- || (IGNORE_FIRST && options[1] != ':')))
-#define IS_POSIXLY_CORRECT (getenv("POSIXLY_CORRECT") != NULL)
-#define PERMUTE (!IS_POSIXLY_CORRECT && !IGNORE_FIRST)
-/* XXX: GNU ignores PC if *options == '-' */
-#define IN_ORDER (!IS_POSIXLY_CORRECT && *options == '-')
-
-/* return values */
-#define BADCH (int)'?'
-#define BADARG ((IGNORE_FIRST && options[1] == ':') \
- || (*options == ':') ? (int)':' : (int)'?')
-#define INORDER (int)1
-
-#define EMSG ""
-
-static int getopt_internal(int, char * const *, const char *);
-static int gcd(int, int);
-static void permute_args(int, int, int, char * const *);
-
-static char *place = EMSG; /* option letter processing */
-
-/* XXX: set optreset to 1 rather than these two */
-static int nonopt_start = -1; /* first non option argument (for permute) */
-static int nonopt_end = -1; /* first option after non options (for permute) */
-
-/* Error messages */
-static const char recargchar[] = "option requires an argument -- %c";
-static const char recargstring[] = "option requires an argument -- %s";
-static const char ambig[] = "ambiguous option -- %.*s";
-static const char noarg[] = "option doesn't take an argument -- %.*s";
-static const char illoptchar[] = "unknown option -- %c";
-static const char illoptstring[] = "unknown option -- %s";
-
-
-/*
- * Compute the greatest common divisor of a and b.
- */
-static int
-gcd(a, b)
- int a;
- int b;
-{
- int c;
-
- c = a % b;
- while (c != 0) {
- a = b;
- b = c;
- c = a % b;
- }
-
- return b;
-}
-
-/*
- * Exchange the block from nonopt_start to nonopt_end with the block
- * from nonopt_end to opt_end (keeping the same order of arguments
- * in each block).
- */
-static void
-permute_args(panonopt_start, panonopt_end, opt_end, nargv)
- int panonopt_start;
- int panonopt_end;
- int opt_end;
- char * const *nargv;
-{
- int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
- char *swap;
-
- _DIAGASSERT(nargv != NULL);
-
- /*
- * compute lengths of blocks and number and size of cycles
- */
- nnonopts = panonopt_end - panonopt_start;
- nopts = opt_end - panonopt_end;
- ncycle = gcd(nnonopts, nopts);
- cyclelen = (opt_end - panonopt_start) / ncycle;
-
- for (i = 0; i < ncycle; i++) {
- cstart = panonopt_end+i;
- pos = cstart;
- for (j = 0; j < cyclelen; j++) {
- if (pos >= panonopt_end)
- pos -= nnonopts;
- else
- pos += nopts;
- swap = nargv[pos];
- /* LINTED const cast */
- ((char **) nargv)[pos] = nargv[cstart];
- /* LINTED const cast */
- ((char **)nargv)[cstart] = swap;
- }
- }
-}
-
-/*
- * getopt_internal --
- * Parse argc/argv argument vector. Called by user level routines.
- * Returns -2 if -- is found (can be long option or end of options marker).
- */
-static int
-getopt_internal(nargc, nargv, options)
- int nargc;
- char * const *nargv;
- const char *options;
-{
- char *oli; /* option letter list index */
- int optchar;
-
- _DIAGASSERT(nargv != NULL);
- _DIAGASSERT(options != NULL);
-
- optarg = NULL;
-
- /*
- * XXX Some programs (like rsyncd) expect to be able to
- * XXX re-initialize optind to 0 and have getopt_long(3)
- * XXX properly function again. Work around this braindamage.
- */
- if (optind == 0)
- optind = 1;
-
- if (optreset)
- nonopt_start = nonopt_end = -1;
-start:
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc) { /* end of argument vector */
- place = EMSG;
- if (nonopt_end != -1) {
- /* do permutation, if we have to */
- permute_args(nonopt_start, nonopt_end,
- optind, nargv);
- optind -= nonopt_end - nonopt_start;
- }
- else if (nonopt_start != -1) {
- /*
- * If we skipped non-options, set optind
- * to the first of them.
- */
- optind = nonopt_start;
- }
- nonopt_start = nonopt_end = -1;
- return -1;
- }
- if ((*(place = nargv[optind]) != '-')
- || (place[1] == '\0')) { /* found non-option */
- place = EMSG;
- if (IN_ORDER) {
- /*
- * GNU extension:
- * return non-option as argument to option 1
- */
- optarg = nargv[optind++];
- return INORDER;
- }
- if (!PERMUTE) {
- /*
- * if no permutation wanted, stop parsing
- * at first non-option
- */
- return -1;
- }
- /* do permutation */
- if (nonopt_start == -1)
- nonopt_start = optind;
- else if (nonopt_end != -1) {
- permute_args(nonopt_start, nonopt_end,
- optind, nargv);
- nonopt_start = optind -
- (nonopt_end - nonopt_start);
- nonopt_end = -1;
- }
- optind++;
- /* process next argument */
- goto start;
- }
- if (nonopt_start != -1 && nonopt_end == -1)
- nonopt_end = optind;
- if (place[1] && *++place == '-') { /* found "--" */
- place++;
- return -2;
- }
- }
- if ((optchar = (int)*place++) == (int)':' ||
- (oli = strchr(options + (IGNORE_FIRST ? 1 : 0), optchar)) == NULL) {
- /* option letter unknown or ':' */
- if (!*place)
- ++optind;
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(illoptchar, optchar);
-#else
- warnx(PRINT_ERROR, illoptchar, optchar);
-#endif
- optopt = optchar;
- return BADCH;
- }
- if (optchar == 'W' && oli[1] == ';') { /* -W long-option */
- /* XXX: what if no long options provided (called by getopt)? */
- if (*place)
- return -2;
-
- if (++optind >= nargc) { /* no arg */
- place = EMSG;
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(recargchar, optchar);
-#else
- warnx(PRINT_ERROR, recargchar, optchar);
-#endif
- optopt = optchar;
- return BADARG;
- } else /* white space */
- place = nargv[optind];
- /*
- * Handle -W arg the same as --arg (which causes getopt to
- * stop parsing).
- */
- return -2;
- }
- if (*++oli != ':') { /* doesn't take argument */
- if (!*place)
- ++optind;
- } else { /* takes (optional) argument */
- optarg = NULL;
- if (*place) /* no white space */
- optarg = place;
- /* XXX: disable test for :: if PC? (GNU doesn't) */
- else if (oli[1] != ':') { /* arg not optional */
- if (++optind >= nargc) { /* no arg */
- place = EMSG;
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(recargchar, optchar);
-#else
- warnx(PRINT_ERROR, recargchar, optchar);
-#endif
- optopt = optchar;
- return BADARG;
- } else
- optarg = nargv[optind];
- }
- place = EMSG;
- ++optind;
- }
- /* dump back option letter */
- return optchar;
-}
-
-#ifdef REPLACE_GETOPT
-/*
- * getopt --
- * Parse argc/argv argument vector.
- *
- * [eventually this will replace the real getopt]
- */
-int
-getopt(nargc, nargv, options)
- int nargc;
- char * const *nargv;
- const char *options;
-{
- int retval;
-
- _DIAGASSERT(nargv != NULL);
- _DIAGASSERT(options != NULL);
-
- if ((retval = getopt_internal(nargc, nargv, options)) == -2) {
- ++optind;
- /*
- * We found an option (--), so if we skipped non-options,
- * we have to permute.
- */
- if (nonopt_end != -1) {
- permute_args(nonopt_start, nonopt_end, optind,
- nargv);
- optind -= nonopt_end - nonopt_start;
- }
- nonopt_start = nonopt_end = -1;
- retval = -1;
- }
- return retval;
-}
-#endif
-
-/*
- * getopt_long --
- * Parse argc/argv argument vector.
- */
-int
-getopt_long(nargc, nargv, options, long_options, idx)
- int nargc;
- char * const *nargv;
- const char *options;
- const struct option *long_options;
- int *idx;
-{
- int retval;
-
- _DIAGASSERT(nargv != NULL);
- _DIAGASSERT(options != NULL);
- _DIAGASSERT(long_options != NULL);
- /* idx may be NULL */
-
- if ((retval = getopt_internal(nargc, nargv, options)) == -2) {
- char *current_argv, *has_equal;
- size_t current_argv_len;
- int i, match;
-
- current_argv = place;
- match = -1;
-
- optind++;
- place = EMSG;
-
- if (*current_argv == '\0') { /* found "--" */
- /*
- * We found an option (--), so if we skipped
- * non-options, we have to permute.
- */
- if (nonopt_end != -1) {
- permute_args(nonopt_start, nonopt_end,
- optind, nargv);
- optind -= nonopt_end - nonopt_start;
- }
- nonopt_start = nonopt_end = -1;
- return -1;
- }
- if ((has_equal = strchr(current_argv, '=')) != NULL) {
- /* argument found (--option=arg) */
- current_argv_len = has_equal - current_argv;
- has_equal++;
- } else
- current_argv_len = strlen(current_argv);
-
- for (i = 0; long_options[i].name; i++) {
- /* find matching long option */
- if (strncmp(current_argv, long_options[i].name,
- current_argv_len))
- continue;
-
- if (strlen(long_options[i].name) ==
- (unsigned)current_argv_len) {
- /* exact match */
- match = i;
- break;
- }
- if (match == -1) /* partial match */
- match = i;
- else {
- /* ambiguous abbreviation */
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(ambig, (int)current_argv_len,
- current_argv);
-#else
- warnx(PRINT_ERROR, ambig, (int)current_argv_len,
- current_argv);
-#endif
- optopt = 0;
- return BADCH;
- }
- }
- if (match != -1) { /* option found */
- if (long_options[match].has_arg == no_argument
- && has_equal) {
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(noarg, (int)current_argv_len,
- current_argv);
-#else
- warnx(PRINT_ERROR, noarg, (int)current_argv_len,
- current_argv);
-#endif
- /*
- * XXX: GNU sets optopt to val regardless of
- * flag
- */
- if (long_options[match].flag == NULL)
- optopt = long_options[match].val;
- else
- optopt = 0;
- return BADARG;
- }
- if (long_options[match].has_arg == required_argument ||
- long_options[match].has_arg == optional_argument) {
- if (has_equal)
- optarg = has_equal;
- else if (long_options[match].has_arg ==
- required_argument) {
- /*
- * optional argument doesn't use
- * next nargv
- */
- optarg = nargv[optind++];
- }
- }
- if ((long_options[match].has_arg == required_argument)
- && (optarg == NULL)) {
- /*
- * Missing argument; leading ':'
- * indicates no error should be generated
- */
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(recargstring, current_argv);
-#else
- warnx(PRINT_ERROR, recargstring, current_argv);
-#endif
- /*
- * XXX: GNU sets optopt to val regardless
- * of flag
- */
- if (long_options[match].flag == NULL)
- optopt = long_options[match].val;
- else
- optopt = 0;
- --optind;
- return BADARG;
- }
- } else { /* unknown option */
-#ifndef _WIN32
- if (PRINT_ERROR)
- warnx(illoptstring, current_argv);
-#else
- warnx(PRINT_ERROR, illoptstring, current_argv);
-#endif
- optopt = 0;
- return BADCH;
- }
- if (long_options[match].flag) {
- *long_options[match].flag = long_options[match].val;
- retval = 0;
- } else
- retval = long_options[match].val;
- if (idx)
- *idx = match;
- }
- return retval;
-}
-#endif /* !GETOPT_LONG */
diff --git a/libs/rubberband/src/bsd-3rdparty/getopt/unistd.h b/libs/rubberband/src/bsd-3rdparty/getopt/unistd.h
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/rubberband/src/bsd-3rdparty/getopt/unistd.h
+++ /dev/null
diff --git a/libs/rubberband/src/ladspa/RubberBandPitchShifter.cpp b/libs/rubberband/src/ladspa/RubberBandPitchShifter.cpp
deleted file mode 100644
index 6839124921..0000000000
--- a/libs/rubberband/src/ladspa/RubberBandPitchShifter.cpp
+++ /dev/null
@@ -1,554 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "RubberBandPitchShifter.h"
-
-#include "RubberBandStretcher.h"
-
-#include <iostream>
-#include <cmath>
-
-using namespace RubberBand;
-
-using std::cout;
-using std::cerr;
-using std::endl;
-using std::min;
-
-const char *const
-RubberBandPitchShifter::portNamesMono[PortCountMono] =
-{
- "latency",
- "Cents",
- "Semitones",
- "Octaves",
- "Crispness",
- "Formant Preserving",
- "Faster",
- "Input",
- "Output"
-};
-
-const char *const
-RubberBandPitchShifter::portNamesStereo[PortCountStereo] =
-{
- "latency",
- "Cents",
- "Semitones",
- "Octaves",
- "Crispness",
- "Formant Preserving",
- "Faster",
- "Input L",
- "Output L",
- "Input R",
- "Output R"
-};
-
-const LADSPA_PortDescriptor
-RubberBandPitchShifter::portsMono[PortCountMono] =
-{
- LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO
-};
-
-const LADSPA_PortDescriptor
-RubberBandPitchShifter::portsStereo[PortCountStereo] =
-{
- LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO
-};
-
-const LADSPA_PortRangeHint
-RubberBandPitchShifter::hintsMono[PortCountMono] =
-{
- { 0, 0, 0 }, // latency
- { LADSPA_HINT_DEFAULT_0 | // cents
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE,
- -100.0, 100.0 },
- { LADSPA_HINT_DEFAULT_0 | // semitones
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- -12.0, 12.0 },
- { LADSPA_HINT_DEFAULT_0 | // octaves
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- -3.0, 3.0 },
- { LADSPA_HINT_DEFAULT_MAXIMUM | // crispness
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- 0.0, 3.0 },
- { LADSPA_HINT_DEFAULT_0 | // formant preserving
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_TOGGLED,
- 0.0, 1.0 },
- { LADSPA_HINT_DEFAULT_0 | // fast
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_TOGGLED,
- 0.0, 1.0 },
- { 0, 0, 0 },
- { 0, 0, 0 }
-};
-
-const LADSPA_PortRangeHint
-RubberBandPitchShifter::hintsStereo[PortCountStereo] =
-{
- { 0, 0, 0 }, // latency
- { LADSPA_HINT_DEFAULT_0 | // cents
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE,
- -100.0, 100.0 },
- { LADSPA_HINT_DEFAULT_0 | // semitones
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- -12.0, 12.0 },
- { LADSPA_HINT_DEFAULT_0 | // octaves
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- -3.0, 3.0 },
- { LADSPA_HINT_DEFAULT_MAXIMUM | // crispness
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_INTEGER,
- 0.0, 3.0 },
- { LADSPA_HINT_DEFAULT_0 | // formant preserving
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_TOGGLED,
- 0.0, 1.0 },
- { LADSPA_HINT_DEFAULT_0 | // fast
- LADSPA_HINT_BOUNDED_BELOW |
- LADSPA_HINT_BOUNDED_ABOVE |
- LADSPA_HINT_TOGGLED,
- 0.0, 1.0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 }
-};
-
-const LADSPA_Properties
-RubberBandPitchShifter::properties = LADSPA_PROPERTY_HARD_RT_CAPABLE;
-
-const LADSPA_Descriptor
-RubberBandPitchShifter::ladspaDescriptorMono =
-{
- 2979, // "Unique" ID
- "rubberband-pitchshifter-mono", // Label
- properties,
- "Rubber Band Mono Pitch Shifter", // Name
- "Breakfast Quay",
- "GPL",
- PortCountMono,
- portsMono,
- portNamesMono,
- hintsMono,
- 0, // Implementation data
- instantiate,
- connectPort,
- activate,
- run,
- 0, // Run adding
- 0, // Set run adding gain
- deactivate,
- cleanup
-};
-
-const LADSPA_Descriptor
-RubberBandPitchShifter::ladspaDescriptorStereo =
-{
- 9792, // "Unique" ID
- "rubberband-pitchshifter-stereo", // Label
- properties,
- "Rubber Band Stereo Pitch Shifter", // Name
- "Breakfast Quay",
- "GPL",
- PortCountStereo,
- portsStereo,
- portNamesStereo,
- hintsStereo,
- 0, // Implementation data
- instantiate,
- connectPort,
- activate,
- run,
- 0, // Run adding
- 0, // Set run adding gain
- deactivate,
- cleanup
-};
-
-const LADSPA_Descriptor *
-RubberBandPitchShifter::getDescriptor(unsigned long index)
-{
- if (index == 0) return &ladspaDescriptorMono;
- if (index == 1) return &ladspaDescriptorStereo;
- else return 0;
-}
-
-RubberBandPitchShifter::RubberBandPitchShifter(int sampleRate, size_t channels) :
- m_latency(0),
- m_cents(0),
- m_semitones(0),
- m_octaves(0),
- m_crispness(0),
- m_formant(0),
- m_fast(0),
- m_ratio(1.0),
- m_prevRatio(1.0),
- m_currentCrispness(-1),
- m_currentFormant(false),
- m_currentFast(false),
- m_blockSize(1024),
- m_reserve(1024),
- m_minfill(0),
- m_stretcher(new RubberBandStretcher
- (sampleRate, channels,
- RubberBandStretcher::OptionProcessRealTime |
- RubberBandStretcher::OptionPitchHighConsistency)),
- m_sampleRate(sampleRate),
- m_channels(channels)
-{
- for (size_t c = 0; c < m_channels; ++c) {
-
- m_input[c] = 0;
- m_output[c] = 0;
-
- int bufsize = m_blockSize + m_reserve + 8192;
-
- m_outputBuffer[c] = new RingBuffer<float>(bufsize);
-
- m_scratch[c] = new float[bufsize];
- for (int i = 0; i < bufsize; ++i) m_scratch[c][i] = 0.f;
- }
-
- activateImpl();
-}
-
-RubberBandPitchShifter::~RubberBandPitchShifter()
-{
- delete m_stretcher;
- for (size_t c = 0; c < m_channels; ++c) {
- delete m_outputBuffer[c];
- delete[] m_scratch[c];
- }
-}
-
-LADSPA_Handle
-RubberBandPitchShifter::instantiate(const LADSPA_Descriptor *desc, unsigned long rate)
-{
- if (desc->PortCount == ladspaDescriptorMono.PortCount) {
- return new RubberBandPitchShifter(rate, 1);
- } else if (desc->PortCount == ladspaDescriptorStereo.PortCount) {
- return new RubberBandPitchShifter(rate, 2);
- }
- return 0;
-}
-
-void
-RubberBandPitchShifter::connectPort(LADSPA_Handle handle,
- unsigned long port, LADSPA_Data *location)
-{
- RubberBandPitchShifter *shifter = (RubberBandPitchShifter *)handle;
-
- float **ports[PortCountStereo] = {
- &shifter->m_latency,
- &shifter->m_cents,
- &shifter->m_semitones,
- &shifter->m_octaves,
- &shifter->m_crispness,
- &shifter->m_formant,
- &shifter->m_fast,
- &shifter->m_input[0],
- &shifter->m_output[0],
- &shifter->m_input[1],
- &shifter->m_output[1]
- };
-
- if (shifter->m_channels == 1) {
- if (port >= PortCountMono) return;
- } else {
- if (port >= PortCountStereo) return;
- }
-
- *ports[port] = (float *)location;
-
- if (shifter->m_latency) {
- *(shifter->m_latency) =
- float(shifter->m_stretcher->getLatency() + shifter->m_reserve);
- }
-}
-
-void
-RubberBandPitchShifter::activate(LADSPA_Handle handle)
-{
- RubberBandPitchShifter *shifter = (RubberBandPitchShifter *)handle;
- shifter->activateImpl();
-}
-
-void
-RubberBandPitchShifter::activateImpl()
-{
- updateRatio();
- m_prevRatio = m_ratio;
- m_stretcher->reset();
- m_stretcher->setPitchScale(m_ratio);
-
- for (size_t c = 0; c < m_channels; ++c) {
- m_outputBuffer[c]->reset();
- m_outputBuffer[c]->zero(m_reserve);
- }
-
- m_minfill = 0;
-
- // prime stretcher
-// for (int i = 0; i < 8; ++i) {
-// int reqd = m_stretcher->getSamplesRequired();
-// m_stretcher->process(m_scratch, reqd, false);
-// int avail = m_stretcher->available();
-// if (avail > 0) {
-// m_stretcher->retrieve(m_scratch, avail);
-// }
-// }
-}
-
-void
-RubberBandPitchShifter::run(LADSPA_Handle handle, unsigned long samples)
-{
- RubberBandPitchShifter *shifter = (RubberBandPitchShifter *)handle;
- shifter->runImpl(samples);
-}
-
-void
-RubberBandPitchShifter::updateRatio()
-{
- double oct = (m_octaves ? *m_octaves : 0.0);
- oct += (m_semitones ? *m_semitones : 0.0) / 12;
- oct += (m_cents ? *m_cents : 0.0) / 1200;
- m_ratio = pow(2.0, oct);
-}
-
-void
-RubberBandPitchShifter::updateCrispness()
-{
- if (!m_crispness) return;
-
- int c = lrintf(*m_crispness);
- if (c == m_currentCrispness) return;
- if (c < 0 || c > 3) return;
- RubberBandStretcher *s = m_stretcher;
-
- switch (c) {
- case 0:
- s->setPhaseOption(RubberBandStretcher::OptionPhaseIndependent);
- s->setTransientsOption(RubberBandStretcher::OptionTransientsSmooth);
- break;
- case 1:
- s->setPhaseOption(RubberBandStretcher::OptionPhaseLaminar);
- s->setTransientsOption(RubberBandStretcher::OptionTransientsSmooth);
- break;
- case 2:
- s->setPhaseOption(RubberBandStretcher::OptionPhaseLaminar);
- s->setTransientsOption(RubberBandStretcher::OptionTransientsMixed);
- break;
- case 3:
- s->setPhaseOption(RubberBandStretcher::OptionPhaseLaminar);
- s->setTransientsOption(RubberBandStretcher::OptionTransientsCrisp);
- break;
- }
-
- m_currentCrispness = c;
-}
-
-void
-RubberBandPitchShifter::updateFormant()
-{
- if (!m_formant) return;
-
- bool f = (*m_formant > 0.5f);
- if (f == m_currentFormant) return;
-
- RubberBandStretcher *s = m_stretcher;
-
- s->setFormantOption(f ?
- RubberBandStretcher::OptionFormantPreserved :
- RubberBandStretcher::OptionFormantShifted);
-
- m_currentFormant = f;
-}
-
-void
-RubberBandPitchShifter::updateFast()
-{
- if (!m_fast) return;
-
- bool f = (*m_fast > 0.5f);
- if (f == m_currentFast) return;
-
- RubberBandStretcher *s = m_stretcher;
-
- s->setPitchOption(f ?
- RubberBandStretcher::OptionPitchHighSpeed :
- RubberBandStretcher::OptionPitchHighConsistency);
-
- m_currentFast = f;
-}
-
-void
-RubberBandPitchShifter::runImpl(unsigned long insamples)
-{
- unsigned long offset = 0;
-
- // We have to break up the input into chunks like this because
- // insamples could be arbitrarily large and our output buffer is
- // of limited size
-
- while (offset < insamples) {
-
- unsigned long block = (unsigned long)m_blockSize;
- if (block + offset > insamples) block = insamples - offset;
-
- runImpl(block, offset);
-
- offset += block;
- }
-}
-
-void
-RubberBandPitchShifter::runImpl(unsigned long insamples, unsigned long offset)
-{
-// cerr << "RubberBandPitchShifter::runImpl(" << insamples << ")" << endl;
-
-// static int incount = 0, outcount = 0;
-
- updateRatio();
- if (m_ratio != m_prevRatio) {
- m_stretcher->setPitchScale(m_ratio);
- m_prevRatio = m_ratio;
- }
-
- if (m_latency) {
- *m_latency = float(m_stretcher->getLatency() + m_reserve);
-// cerr << "latency = " << *m_latency << endl;
- }
-
- updateCrispness();
- updateFormant();
- updateFast();
-
- const int samples = insamples;
- int processed = 0;
- size_t outTotal = 0;
-
- float *ptrs[2];
-
- int rs = m_outputBuffer[0]->getReadSpace();
- if (rs < int(m_minfill)) {
-// cerr << "temporary expansion (have " << rs << ", want " << m_reserve << ")" << endl;
- m_stretcher->setTimeRatio(1.1); // fill up temporarily
- } else if (rs > 8192) {
-// cerr << "temporary reduction (have " << rs << ", want " << m_reserve << ")" << endl;
- m_stretcher->setTimeRatio(0.9); // reduce temporarily
- } else {
- m_stretcher->setTimeRatio(1.0);
- }
-
- while (processed < samples) {
-
- // never feed more than the minimum necessary number of
- // samples at a time; ensures nothing will overflow internally
- // and we don't need to call setMaxProcessSize
-
- int toCauseProcessing = m_stretcher->getSamplesRequired();
- int inchunk = min(samples - processed, toCauseProcessing);
- for (size_t c = 0; c < m_channels; ++c) {
- ptrs[c] = &(m_input[c][offset + processed]);
- }
- m_stretcher->process(ptrs, inchunk, false);
- processed += inchunk;
-
- int avail = m_stretcher->available();
- int writable = m_outputBuffer[0]->getWriteSpace();
- int outchunk = min(avail, writable);
- size_t actual = m_stretcher->retrieve(m_scratch, outchunk);
- outTotal += actual;
-
-// incount += inchunk;
-// outcount += actual;
-
-// cout << "avail: " << avail << ", outchunk = " << outchunk;
-// if (actual != outchunk) cout << " (" << actual << ")";
-// cout << endl;
-
- outchunk = actual;
-
- for (size_t c = 0; c < m_channels; ++c) {
- if (int(m_outputBuffer[c]->getWriteSpace()) < outchunk) {
- cerr << "RubberBandPitchShifter::runImpl: buffer overrun: chunk = " << outchunk << ", space = " << m_outputBuffer[c]->getWriteSpace() << endl;
- }
- m_outputBuffer[c]->write(m_scratch[c], outchunk);
- }
- }
-
- for (size_t c = 0; c < m_channels; ++c) {
- int toRead = m_outputBuffer[c]->getReadSpace();
- if (toRead < samples && c == 0) {
- cerr << "RubberBandPitchShifter::runImpl: buffer underrun: required = " << samples << ", available = " << toRead << endl;
- }
- int chunk = min(toRead, samples);
- m_outputBuffer[c]->read(&(m_output[c][offset]), chunk);
- }
-
- if (m_minfill == 0) {
- m_minfill = m_outputBuffer[0]->getReadSpace();
-// cerr << "minfill = " << m_minfill << endl;
- }
-}
-
-void
-RubberBandPitchShifter::deactivate(LADSPA_Handle handle)
-{
- activate(handle); // both functions just reset the plugin
-}
-
-void
-RubberBandPitchShifter::cleanup(LADSPA_Handle handle)
-{
- delete (RubberBandPitchShifter *)handle;
-}
-
diff --git a/libs/rubberband/src/ladspa/RubberBandPitchShifter.h b/libs/rubberband/src/ladspa/RubberBandPitchShifter.h
deleted file mode 100644
index f2f351bff6..0000000000
--- a/libs/rubberband/src/ladspa/RubberBandPitchShifter.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_PITCH_SHIFTER_H_
-#define _RUBBERBAND_PITCH_SHIFTER_H_
-
-#include <ladspa.h>
-
-#include "RingBuffer.h"
-
-namespace RubberBand {
-class RubberBandStretcher;
-}
-
-class RubberBandPitchShifter
-{
-public:
- static const LADSPA_Descriptor *getDescriptor(unsigned long index);
-
-protected:
- RubberBandPitchShifter(int sampleRate, size_t channels);
- ~RubberBandPitchShifter();
-
- enum {
- LatencyPort = 0,
- OctavesPort = 1,
- SemitonesPort = 2,
- CentsPort = 3,
- CrispnessPort = 4,
- FormantPort = 5,
- FastPort = 6,
- InputPort1 = 7,
- OutputPort1 = 8,
- PortCountMono = OutputPort1 + 1,
- InputPort2 = 9,
- OutputPort2 = 10,
- PortCountStereo = OutputPort2 + 1
- };
-
- static const char *const portNamesMono[PortCountMono];
- static const LADSPA_PortDescriptor portsMono[PortCountMono];
- static const LADSPA_PortRangeHint hintsMono[PortCountMono];
-
- static const char *const portNamesStereo[PortCountStereo];
- static const LADSPA_PortDescriptor portsStereo[PortCountStereo];
- static const LADSPA_PortRangeHint hintsStereo[PortCountStereo];
-
- static const LADSPA_Properties properties;
-
- static const LADSPA_Descriptor ladspaDescriptorMono;
- static const LADSPA_Descriptor ladspaDescriptorStereo;
-
- static LADSPA_Handle instantiate(const LADSPA_Descriptor *, unsigned long);
- static void connectPort(LADSPA_Handle, unsigned long, LADSPA_Data *);
- static void activate(LADSPA_Handle);
- static void run(LADSPA_Handle, unsigned long);
- static void deactivate(LADSPA_Handle);
- static void cleanup(LADSPA_Handle);
-
- void activateImpl();
- void runImpl(unsigned long);
- void runImpl(unsigned long, unsigned long offset);
- void updateRatio();
- void updateCrispness();
- void updateFormant();
- void updateFast();
-
- float *m_input[2];
- float *m_output[2];
- float *m_latency;
- float *m_cents;
- float *m_semitones;
- float *m_octaves;
- float *m_crispness;
- float *m_formant;
- float *m_fast;
- double m_ratio;
- double m_prevRatio;
- int m_currentCrispness;
- bool m_currentFormant;
- bool m_currentFast;
-
- size_t m_blockSize;
- size_t m_reserve;
- size_t m_minfill;
-
- RubberBand::RubberBandStretcher *m_stretcher;
- RubberBand::RingBuffer<float> *m_outputBuffer[2];
- float *m_scratch[2];
-
- int m_sampleRate;
- size_t m_channels;
-};
-
-
-#endif
diff --git a/libs/rubberband/src/ladspa/ladspa-rubberband.cat b/libs/rubberband/src/ladspa/ladspa-rubberband.cat
deleted file mode 100644
index 438e9a3909..0000000000
--- a/libs/rubberband/src/ladspa/ladspa-rubberband.cat
+++ /dev/null
@@ -1,2 +0,0 @@
-ladspa:ladspa-rubberband:rubberband-pitchshifter-mono::Frequency > Pitch shifters
-ladspa:ladspa-rubberband:rubberband-pitchshifter-stereo::Frequency > Pitch shifters
diff --git a/libs/rubberband/src/ladspa/libmain.cpp b/libs/rubberband/src/ladspa/libmain.cpp
deleted file mode 100644
index d949e81898..0000000000
--- a/libs/rubberband/src/ladspa/libmain.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "RubberBandPitchShifter.h"
-
-#include <stdio.h>
-
-extern "C" {
-
-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index)
-{
- return RubberBandPitchShifter::getDescriptor(index);
-}
-
-}
diff --git a/libs/rubberband/src/main.cpp b/libs/rubberband/src/main.cpp
deleted file mode 100644
index cdc62e8afa..0000000000
--- a/libs/rubberband/src/main.cpp
+++ /dev/null
@@ -1,535 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "RubberBandStretcher.h"
-
-#include <cstring>
-#include <iostream>
-#include <sndfile.h>
-#include <cmath>
-#include <time.h>
-#include <cstdlib>
-#include <cstring>
-#include "sysutils.h"
-
-#ifdef COMPILER_MSVC
-#include "bsd-3rdparty/getopt/getopt.h"
-#else
-#include <getopt.h>
-#include <sys/time.h>
-#include <unistd.h>
-#endif
-
-#include "Profiler.h"
-
-using namespace std;
-using namespace RubberBand;
-
-#ifdef PLATFORM_WINDOWS
-using RubberBand::gettimeofday;
-using RubberBand::usleep;
-#endif
-
-double tempo_convert(const char *str)
-{
- const char *d = strchr(str, ':');
-
- if (!d || !*d) {
- double m = atof(str);
- if (m != 0.0) return 1.0 / m;
- else return 1.0;
- }
-
- char *a = strdup(str);
- char *b = strdup(d+1);
- a[d-str] = '\0';
- double m = atof(a);
- double n = atof(b);
- free(a);
- free(b);
- if (n != 0.0 && m != 0.0) return m / n;
- else return 1.0;
-}
-
-int main(int argc, char **argv)
-{
- int c;
-
- double ratio = 1.0;
- double duration = 0.0;
- double pitchshift = 0.0;
- double frequencyshift = 1.0;
- int debug = 0;
- bool realtime = false;
- bool precise = false;
- int threading = 0;
- bool lamination = true;
- bool longwin = false;
- bool shortwin = false;
- bool hqpitch = false;
- bool formant = false;
- bool crispchanged = false;
- int crispness = -1;
- bool help = false;
- bool version = false;
- bool quiet = false;
-
- bool haveRatio = false;
-
- enum {
- NoTransients,
- BandLimitedTransients,
- Transients
- } transients = Transients;
-
- while (1) {
- int optionIndex = 0;
-
- static struct option longOpts[] = {
- { "help", 0, 0, 'h' },
- { "version", 0, 0, 'V' },
- { "time", 1, 0, 't' },
- { "tempo", 1, 0, 'T' },
- { "duration", 1, 0, 'D' },
- { "pitch", 1, 0, 'p' },
- { "frequency", 1, 0, 'f' },
- { "crisp", 1, 0, 'c' },
- { "crispness", 1, 0, 'c' },
- { "debug", 1, 0, 'd' },
- { "realtime", 0, 0, 'R' },
- { "precise", 0, 0, 'P' },
- { "formant", 0, 0, 'F' },
- { "no-threads", 0, 0, '0' },
- { "no-transients", 0, 0, '1' },
- { "no-lamination", 0, 0, '2' },
- { "window-long", 0, 0, '3' },
- { "window-short", 0, 0, '4' },
- { "bl-transients", 0, 0, '8' },
- { "pitch-hq", 0, 0, '%' },
- { "threads", 0, 0, '@' },
- { "quiet", 0, 0, 'q' },
- { 0, 0, 0, '\0' }
- };
-
- c = getopt_long(argc, argv, "t:p:d:RPFc:f:T:D:qhV", longOpts, &optionIndex);
- if (c == -1) break;
-
- switch (c) {
- case 'h': help = true; break;
- case 'V': version = true; break;
- case 't': ratio *= atof(optarg); haveRatio = true; break;
- case 'T': ratio *= tempo_convert(optarg); haveRatio = true; break;
- case 'D': duration = atof(optarg); haveRatio = true; break;
- case 'p': pitchshift = atof(optarg); haveRatio = true; break;
- case 'f': frequencyshift = atof(optarg); haveRatio = true; break;
- case 'd': debug = atoi(optarg); break;
- case 'R': realtime = true; break;
- case 'P': precise = true; break;
- case 'F': formant = true; break;
- case '0': threading = 1; break;
- case '@': threading = 2; break;
- case '1': transients = NoTransients; crispchanged = true; break;
- case '2': lamination = false; crispchanged = true; break;
- case '3': longwin = true; crispchanged = true; break;
- case '4': shortwin = true; crispchanged = true; break;
- case '8': transients = BandLimitedTransients; crispchanged = true; break;
- case '%': hqpitch = true; break;
- case 'c': crispness = atoi(optarg); break;
- case 'q': quiet = true; break;
- default: help = true; break;
- }
- }
-
- if (version) {
- cerr << RUBBERBAND_VERSION << endl;
- return 0;
- }
-
- if (help || !haveRatio || optind + 2 != argc) {
- cerr << endl;
- cerr << "Rubber Band" << endl;
- cerr << "An audio time-stretching and pitch-shifting library and utility program." << endl;
- cerr << "Copyright 2008 Chris Cannam. Distributed under the GNU General Public License." << endl;
- cerr << endl;
- cerr << " Usage: " << argv[0] << " [options] <infile.wav> <outfile.wav>" << endl;
- cerr << endl;
- cerr << "You must specify at least one of the following time and pitch ratio options." << endl;
- cerr << endl;
- cerr << " -t<X>, --time <X> Stretch to X times original duration, or" << endl;
- cerr << " -T<X>, --tempo <X> Change tempo by multiple X (same as --time 1/X), or" << endl;
- cerr << " -T<X>, --tempo <X>:<Y> Change tempo from X to Y (same as --time X/Y), or" << endl;
- cerr << " -D<X>, --duration <X> Stretch or squash to make output file X seconds long" << endl;
- cerr << endl;
- cerr << " -p<X>, --pitch <X> Raise pitch by X semitones, or" << endl;
- cerr << " -f<X>, --frequency <X> Change frequency by multiple X" << endl;
- cerr << endl;
- cerr << "The following options provide a simple way to adjust the sound. See below" << endl;
- cerr << "for more details." << endl;
- cerr << endl;
- cerr << " -c<N>, --crisp <N> Crispness (N = 0,1,2,3,4,5); default 4 (see below)" << endl;
- cerr << " -F, --formant Enable formant preservation when pitch shifting" << endl;
- cerr << endl;
- cerr << "The remaining options fine-tune the processing mode and stretch algorithm." << endl;
- cerr << "These are mostly included for test purposes; the default settings and standard" << endl;
- cerr << "crispness parameter are intended to provide the best sounding set of options" << endl;
- cerr << "for most situations. The default is to use none of these options." << endl;
- cerr << endl;
- cerr << " -P, --precise Aim for minimal time distortion (implied by -R)" << endl;
- cerr << " -R, --realtime Select realtime mode (implies -P --no-threads)" << endl;
- cerr << " --no-threads No extra threads regardless of CPU and channel count" << endl;
- cerr << " --threads Assume multi-CPU even if only one CPU is identified" << endl;
- cerr << " --no-transients Disable phase resynchronisation at transients" << endl;
- cerr << " --bl-transients Band-limit phase resync to extreme frequencies" << endl;
- cerr << " --no-lamination Disable phase lamination" << endl;
- cerr << " --window-long Use longer processing window (actual size may vary)" << endl;
- cerr << " --window-short Use shorter processing window" << endl;
- cerr << " --pitch-hq In RT mode, use a slower, higher quality pitch shift" << endl;
- cerr << endl;
- cerr << " -d<N>, --debug <N> Select debug level (N = 0,1,2,3); default 0, full 3" << endl;
- cerr << " (N.B. debug level 3 includes audible ticks in output)" << endl;
- cerr << " -q, --quiet Suppress progress output" << endl;
- cerr << endl;
- cerr << " -V, --version Show version number and exit" << endl;
- cerr << " -h, --help Show this help" << endl;
- cerr << endl;
- cerr << "\"Crispness\" levels:" << endl;
- cerr << " -c 0 equivalent to --no-transients --no-lamination --window-long" << endl;
- cerr << " -c 1 equivalent to --no-transients --no-lamination" << endl;
- cerr << " -c 2 equivalent to --no-transients" << endl;
- cerr << " -c 3 equivalent to --bl-transients" << endl;
- cerr << " -c 4 default processing options" << endl;
- cerr << " -c 5 equivalent to --no-lamination --window-short (may be good for drums)" << endl;
- cerr << endl;
- return 2;
- }
-
- if (crispness >= 0 && crispchanged) {
- cerr << "WARNING: Both crispness option and transients, lamination or window options" << endl;
- cerr << " provided -- crispness will override these other options" << endl;
- }
-
- switch (crispness) {
- case -1: crispness = 4; break;
- case 0: transients = NoTransients; lamination = false; longwin = true; shortwin = false; break;
- case 1: transients = NoTransients; lamination = false; longwin = false; shortwin = false; break;
- case 2: transients = NoTransients; lamination = true; longwin = false; shortwin = false; break;
- case 3: transients = BandLimitedTransients; lamination = true; longwin = false; shortwin = false; break;
- case 4: transients = Transients; lamination = true; longwin = false; shortwin = false; break;
- case 5: transients = Transients; lamination = false; longwin = false; shortwin = true; break;
- };
-
- if (!quiet) {
- cerr << "Using crispness level: " << crispness << " (";
- switch (crispness) {
- case 0: cerr << "Mushy"; break;
- case 1: cerr << "Smooth"; break;
- case 2: cerr << "Balanced multitimbral mixture"; break;
- case 3: cerr << "Unpitched percussion with stable notes"; break;
- case 4: cerr << "Crisp monophonic instrumental"; break;
- case 5: cerr << "Unpitched solo percussion"; break;
- }
- cerr << ")" << endl;
- }
-
- char *fileName = strdup(argv[optind++]);
- char *fileNameOut = strdup(argv[optind++]);
-
- SNDFILE *sndfile;
- SNDFILE *sndfileOut;
- SF_INFO sfinfo;
- SF_INFO sfinfoOut;
- memset(&sfinfo, 0, sizeof(SF_INFO));
-
- sndfile = sf_open(fileName, SFM_READ, &sfinfo);
- if (!sndfile) {
- cerr << "ERROR: Failed to open input file \"" << fileName << "\": "
- << sf_strerror(sndfile) << endl;
- return 1;
- }
-
- if (duration != 0.0) {
- if (sfinfo.frames == 0 || sfinfo.samplerate == 0) {
- cerr << "ERROR: File lacks frame count or sample rate in header, cannot use --duration" << endl;
- return 1;
- }
- double induration = double(sfinfo.frames) / double(sfinfo.samplerate);
- if (induration != 0.0) ratio = duration / induration;
- }
-
- sfinfoOut.channels = sfinfo.channels;
- sfinfoOut.format = sfinfo.format;
- sfinfoOut.frames = int(sfinfo.frames * ratio + 0.1);
- sfinfoOut.samplerate = sfinfo.samplerate;
- sfinfoOut.sections = sfinfo.sections;
- sfinfoOut.seekable = sfinfo.seekable;
-
- sndfileOut = sf_open(fileNameOut, SFM_WRITE, &sfinfoOut) ;
- if (!sndfileOut) {
- cerr << "ERROR: Failed to open output file \"" << fileNameOut << "\" for writing: "
- << sf_strerror(sndfileOut) << endl;
- return 1;
- }
-
- int ibs = 1024;
- size_t channels = sfinfo.channels;
-
- RubberBandStretcher::Options options = 0;
- if (realtime) options |= RubberBandStretcher::OptionProcessRealTime;
- if (precise) options |= RubberBandStretcher::OptionStretchPrecise;
- if (!lamination) options |= RubberBandStretcher::OptionPhaseIndependent;
- if (longwin) options |= RubberBandStretcher::OptionWindowLong;
- if (shortwin) options |= RubberBandStretcher::OptionWindowShort;
- if (formant) options |= RubberBandStretcher::OptionFormantPreserved;
- if (hqpitch) options |= RubberBandStretcher::OptionPitchHighQuality;
-
- switch (threading) {
- case 0:
- options |= RubberBandStretcher::OptionThreadingAuto;
- break;
- case 1:
- options |= RubberBandStretcher::OptionThreadingNever;
- break;
- case 2:
- options |= RubberBandStretcher::OptionThreadingAlways;
- break;
- }
-
- switch (transients) {
- case NoTransients:
- options |= RubberBandStretcher::OptionTransientsSmooth;
- break;
- case BandLimitedTransients:
- options |= RubberBandStretcher::OptionTransientsMixed;
- break;
- case Transients:
- options |= RubberBandStretcher::OptionTransientsCrisp;
- break;
- }
-
- if (pitchshift != 0.0) {
- frequencyshift *= pow(2.0, pitchshift / 12);
- }
-
- cerr << "Using time ratio " << ratio;
- cerr << " and frequency ratio " << frequencyshift << endl;
-
-#ifdef PLATFORM_WINDOWS
- RubberBand::
-#endif
- timeval tv;
- (void)gettimeofday(&tv, 0);
-
- RubberBandStretcher::setDefaultDebugLevel(debug);
-
- RubberBandStretcher ts(sfinfo.samplerate, channels, options,
- ratio, frequencyshift);
-
- ts.setExpectedInputDuration(sfinfo.frames);
-
- float *fbuf = new float[channels * ibs];
- float **ibuf = new float *[channels];
- for (size_t i = 0; i < channels; ++i) ibuf[i] = new float[ibs];
-
- int frame = 0;
- int percent = 0;
-
- sf_seek(sndfile, 0, SEEK_SET);
-
- if (!realtime) {
-
- if (!quiet) {
- cerr << "Pass 1: Studying..." << endl;
- }
-
- while (frame < sfinfo.frames) {
-
- int count = -1;
-
- if ((count = sf_readf_float(sndfile, fbuf, ibs)) <= 0) break;
-
- for (size_t c = 0; c < channels; ++c) {
- for (int i = 0; i < count; ++i) {
- float value = fbuf[i * channels + c];
- ibuf[c][i] = value;
- }
- }
-
- bool final = (frame + ibs >= sfinfo.frames);
-
- ts.study(ibuf, count, final);
-
- int p = int((double(frame) * 100.0) / sfinfo.frames);
- if (p > percent || frame == 0) {
- percent = p;
- if (!quiet) {
- cerr << "\r" << percent << "% ";
- }
- }
-
- frame += ibs;
- }
-
- if (!quiet) {
- cerr << "\rCalculating profile..." << endl;
- }
-
- sf_seek(sndfile, 0, SEEK_SET);
- }
-
- frame = 0;
- percent = 0;
-
- size_t countIn = 0, countOut = 0;
-
- while (frame < sfinfo.frames) {
-
- int count = -1;
-
- if ((count = sf_readf_float(sndfile, fbuf, ibs)) < 0) break;
-
- countIn += count;
-
- for (size_t c = 0; c < channels; ++c) {
- for (int i = 0; i < count; ++i) {
- float value = fbuf[i * channels + c];
- ibuf[c][i] = value;
- }
- }
-
- bool final = (frame + ibs >= sfinfo.frames);
-
- ts.process(ibuf, count, final);
-
- int avail = ts.available();
- if (debug > 1) cerr << "available = " << avail << endl;
-
- if (avail > 0) {
- float **obf = new float *[channels];
- for (size_t i = 0; i < channels; ++i) {
- obf[i] = new float[avail];
- }
- ts.retrieve(obf, avail);
- countOut += avail;
- float *fobf = new float[channels * avail];
- for (size_t c = 0; c < channels; ++c) {
- for (int i = 0; i < avail; ++i) {
- float value = obf[c][i];
- if (value > 1.f) value = 1.f;
- if (value < -1.f) value = -1.f;
- fobf[i * channels + c] = value;
- }
- }
-// cout << "fobf mean: ";
-// double d = 0;
-// for (int i = 0; i < avail; ++i) {
-// d += fobf[i];
-// }
-// d /= avail;
-// cout << d << endl;
- sf_writef_float(sndfileOut, fobf, avail);
- delete[] fobf;
- for (size_t i = 0; i < channels; ++i) {
- delete[] obf[i];
- }
- delete[] obf;
- }
-
- if (frame == 0 && !realtime && !quiet) {
- cerr << "Pass 2: Processing..." << endl;
- }
-
- int p = int((double(frame) * 100.0) / sfinfo.frames);
- if (p > percent || frame == 0) {
- percent = p;
- if (!quiet) {
- cerr << "\r" << percent << "% ";
- }
- }
-
- frame += ibs;
- }
-
- if (!quiet) {
- cerr << "\r " << endl;
- }
- int avail;
-
- while ((avail = ts.available()) >= 0) {
-
- if (debug > 1) {
- cerr << "(completing) available = " << avail << endl;
- }
-
- if (avail > 0) {
- float **obf = new float *[channels];
- for (size_t i = 0; i < channels; ++i) {
- obf[i] = new float[avail];
- }
- ts.retrieve(obf, avail);
- countOut += avail;
- float *fobf = new float[channels * avail];
- for (size_t c = 0; c < channels; ++c) {
- for (int i = 0; i < avail; ++i) {
- float value = obf[c][i];
- if (value > 1.f) value = 1.f;
- if (value < -1.f) value = -1.f;
- fobf[i * channels + c] = value;
- }
- }
-
- sf_writef_float(sndfileOut, fobf, avail);
- delete[] fobf;
- for (size_t i = 0; i < channels; ++i) {
- delete[] obf[i];
- }
- delete[] obf;
- } else {
-#ifdef PLATFORM_WINDOWS
- RubberBand::usleep(10000);
-#else
- usleep(10000);
-#endif
- }
- }
-
- sf_close(sndfile);
- sf_close(sndfileOut);
-
- if (!quiet) {
-
- cerr << "in: " << countIn << ", out: " << countOut << ", ratio: " << float(countOut)/float(countIn) << ", ideal output: " << lrint(countIn * ratio) << ", error: " << abs(lrint(countIn * ratio) - int(countOut)) << endl;
-
-#ifdef PLATFORM_WINDOWS
- RubberBand::
-#endif
- timeval etv;
- (void)gettimeofday(&etv, 0);
-
- etv.tv_sec -= tv.tv_sec;
- if (etv.tv_usec < tv.tv_usec) {
- etv.tv_usec += 1000000;
- etv.tv_sec -= 1;
- }
- etv.tv_usec -= tv.tv_usec;
-
- double sec = double(etv.tv_sec) + (double(etv.tv_usec) / 1000000.0);
- cerr << "elapsed time: " << sec << " sec, in frames/sec: " << countIn/sec << ", out frames/sec: " << countOut/sec << endl;
- }
-
- Profiler::dump();
-
- return 0;
-}
-
-
diff --git a/libs/rubberband/src/rubberband-c.cpp b/libs/rubberband/src/rubberband-c.cpp
deleted file mode 100644
index 7bdd701ddf..0000000000
--- a/libs/rubberband/src/rubberband-c.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "rubberband-c.h"
-#include "RubberBandStretcher.h"
-
-struct RubberBandState_
-{
- RubberBand::RubberBandStretcher *m_s;
-};
-
-RubberBandState rubberband_new(unsigned int sampleRate,
- unsigned int channels,
- RubberBandOptions options,
- double initialTimeRatio,
- double initialPitchScale)
-{
- RubberBandState_ *state = new RubberBandState_();
- state->m_s = new RubberBand::RubberBandStretcher
- (sampleRate, channels, options,
- initialTimeRatio, initialPitchScale);
- return state;
-}
-
-void rubberband_delete(RubberBandState state)
-{
- delete state->m_s;
- delete state;
-}
-
-void rubberband_reset(RubberBandState state)
-{
- state->m_s->reset();
-}
-
-void rubberband_set_time_ratio(RubberBandState state, double ratio)
-{
- state->m_s->setTimeRatio(ratio);
-}
-
-void rubberband_set_pitch_scale(RubberBandState state, double scale)
-{
- state->m_s->setPitchScale(scale);
-}
-
-double rubberband_get_time_ratio(const RubberBandState state)
-{
- return state->m_s->getTimeRatio();
-}
-
-double rubberband_get_pitch_scale(const RubberBandState state)
-{
- return state->m_s->getPitchScale();
-}
-
-unsigned int rubberband_get_latency(const RubberBandState state)
-{
- return state->m_s->getLatency();
-}
-
-void rubberband_set_transients_option(RubberBandState state, RubberBandOptions options)
-{
- state->m_s->setTransientsOption(options);
-}
-
-void rubberband_set_phase_option(RubberBandState state, RubberBandOptions options)
-{
- state->m_s->setPhaseOption(options);
-}
-
-void rubberband_set_formant_option(RubberBandState state, RubberBandOptions options)
-{
- state->m_s->setFormantOption(options);
-}
-
-void rubberband_set_pitch_option(RubberBandState state, RubberBandOptions options)
-{
- state->m_s->setPitchOption(options);
-}
-
-void rubberband_set_expected_input_duration(RubberBandState state, unsigned int samples)
-{
- state->m_s->setExpectedInputDuration(samples);
-}
-
-unsigned int rubberband_get_samples_required(const RubberBandState state)
-{
- return state->m_s->getSamplesRequired();
-}
-
-void rubberband_set_max_process_size(RubberBandState state, unsigned int samples)
-{
- state->m_s->setMaxProcessSize(samples);
-}
-
-void rubberband_study(RubberBandState state, const float *const *input, unsigned int samples, int final)
-{
- state->m_s->study(input, samples, final != 0);
-}
-
-void rubberband_process(RubberBandState state, const float *const *input, unsigned int samples, int final)
-{
- state->m_s->process(input, samples, final != 0);
-}
-
-int rubberband_available(const RubberBandState state)
-{
- return state->m_s->available();
-}
-
-unsigned int rubberband_retrieve(const RubberBandState state, float *const *output, unsigned int samples)
-{
- return state->m_s->retrieve(output, samples);
-}
-
-unsigned int rubberband_get_channel_count(const RubberBandState state)
-{
- return state->m_s->getChannelCount();
-}
-
-void rubberband_calculate_stretch(RubberBandState state)
-{
- state->m_s->calculateStretch();
-}
-
-void rubberband_set_debug_level(RubberBandState state, int level)
-{
- state->m_s->setDebugLevel(level);
-}
-
-void rubberband_set_default_debug_level(int level)
-{
- RubberBand::RubberBandStretcher::setDefaultDebugLevel(level);
-}
-
diff --git a/libs/rubberband/src/sysutils.cpp b/libs/rubberband/src/sysutils.cpp
deleted file mode 100644
index 902b1267ab..0000000000
--- a/libs/rubberband/src/sysutils.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "sysutils.h"
-
-#ifdef _WIN32
-#include <windows.h>
-#else /* !_WIN32 */
-#ifdef __APPLE__
-#include <sys/sysctl.h>
-#else /* !__APPLE__, !_WIN32 */
-#include <cstdio>
-#include <cstring>
-#endif /* !__APPLE__, !_WIN32 */
-#endif /* !_WIN32 */
-
-#include <cstdlib>
-#include <iostream>
-
-namespace RubberBand {
-
-bool
-system_is_multiprocessor()
-{
- static bool tested = false, mp = false;
-
- if (tested) return mp;
- int count = 0;
-
-#ifdef _WIN32
-
- SYSTEM_INFO sysinfo;
- GetSystemInfo(&sysinfo);
- count = sysinfo.dwNumberOfProcessors;
-
-#else /* !_WIN32 */
-#ifdef __APPLE__
-
- size_t sz = sizeof(count);
- if (sysctlbyname("hw.ncpu", &count, &sz, NULL, 0)) {
- mp = false;
- } else {
- mp = (count > 1);
- }
-
-#else /* !__APPLE__, !_WIN32 */
-
- //...
-
- FILE *cpuinfo = fopen("/proc/cpuinfo", "r");
- if (!cpuinfo) return false;
-
- char buf[256];
- while (!feof(cpuinfo)) {
- fgets(buf, 256, cpuinfo);
- if (!strncmp(buf, "processor", 9)) {
- ++count;
- }
- if (count > 1) break;
- }
-
- fclose(cpuinfo);
-
-#endif /* !__APPLE__, !_WIN32 */
-#endif /* !_WIN32 */
-
- mp = (count > 1);
- tested = true;
- return mp;
-}
-
-#ifdef _WIN32
-
-int gettimeofday(struct timeval *tv, void *tz)
-{
- union {
- long long ns100;
- FILETIME ft;
- } now;
-
- ::GetSystemTimeAsFileTime(&now.ft);
- tv->tv_usec = (long)((now.ns100 / 10LL) % 1000000LL);
- tv->tv_sec = (long)((now.ns100 - 116444736000000000LL) / 10000000LL);
- return 0;
-}
-
-void usleep(unsigned long usec)
-{
- ::Sleep(usec == 0 ? 0 : usec < 1000 ? 1 : usec / 1000);
-}
-
-#endif
-
-
-float *allocFloat(float *ptr, int count)
-{
- if (ptr) free((void *)ptr);
- void *allocated;
-#ifndef _WIN32
-#ifndef __APPLE__
- if (posix_memalign(&allocated, 16, count * sizeof(float)))
-#endif
-#endif
- allocated = malloc(count * sizeof(float));
- for (int i = 0; i < count; ++i) ((float *)allocated)[i] = 0.f;
- return (float *)allocated;
-}
-
-float *allocFloat(int count)
-{
- return allocFloat(0, count);
-}
-
-void freeFloat(float *ptr)
-{
- if (ptr) free(ptr);
-}
-
-double *allocDouble(double *ptr, int count)
-{
- if (ptr) free((void *)ptr);
- void *allocated;
-#ifndef _WIN32
-#ifndef __APPLE__
- if (posix_memalign(&allocated, 16, count * sizeof(double)))
-#endif
-#endif
- allocated = malloc(count * sizeof(double));
- for (int i = 0; i < count; ++i) ((double *)allocated)[i] = 0.f;
- return (double *)allocated;
-}
-
-double *allocDouble(int count)
-{
- return allocDouble(0, count);
-}
-
-void freeDouble(double *ptr)
-{
- if (ptr) free(ptr);
-}
-
-
-}
-
-
-
diff --git a/libs/rubberband/src/sysutils.h b/libs/rubberband/src/sysutils.h
deleted file mode 100644
index 3883c59ff5..0000000000
--- a/libs/rubberband/src/sysutils.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_SYSINFO_H_
-#define _RUBBERBAND_SYSINFO_H_
-
-#ifdef COMPILER_MSVC
-#include "bsd-3rdparty/float_cast/float_cast.h"
-#define R__ __restrict
-#endif
-
-#ifdef __GNUC__
-#define R__ __restrict__
-#endif
-
-#ifndef R__
-#define R__
-#endif
-
-#ifdef COMPILER_MINGW
-#include <malloc.h>
-#endif
-
-#ifdef COMPILER_MSVC
-#define alloca _alloca
-#endif
-
-namespace RubberBand {
-
-extern bool system_is_multiprocessor();
-
-#ifdef _WIN32
-
-struct timeval { long tv_sec; long tv_usec; };
-int gettimeofday(struct timeval *p, void *tz);
-
-void usleep(unsigned long);
-
-#endif
-
-extern float *allocFloat(int);
-extern float *allocFloat(float *, int);
-extern void freeFloat(float *);
-
-extern double *allocDouble(int);
-extern double *allocDouble(double *, int);
-extern void freeDouble(double *);
-
-}
-
-#endif
diff --git a/libs/rubberband/src/vamp/RubberBandVampPlugin.cpp b/libs/rubberband/src/vamp/RubberBandVampPlugin.cpp
deleted file mode 100644
index feb5bfa6bb..0000000000
--- a/libs/rubberband/src/vamp/RubberBandVampPlugin.cpp
+++ /dev/null
@@ -1,648 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include "RubberBandVampPlugin.h"
-
-#include "StretchCalculator.h"
-#include "sysutils.h"
-
-#include <cmath>
-
-using std::string;
-using std::vector;
-using std::cerr;
-using std::endl;
-
-class RubberBandVampPlugin::Impl
-{
-public:
- size_t m_stepSize;
- size_t m_blockSize;
- size_t m_sampleRate;
-
- float m_timeRatio;
- float m_pitchRatio;
-
- bool m_realtime;
- bool m_elasticTiming;
- int m_transientMode;
- bool m_phaseIndependent;
- int m_windowLength;
-
- RubberBand::RubberBandStretcher *m_stretcher;
-
- int m_incrementsOutput;
- int m_aggregateIncrementsOutput;
- int m_divergenceOutput;
- int m_phaseResetDfOutput;
- int m_smoothedPhaseResetDfOutput;
- int m_phaseResetPointsOutput;
- int m_timeSyncPointsOutput;
-
- size_t m_counter;
- size_t m_accumulatedIncrement;
-
- float **m_outputDump;
-
- FeatureSet processOffline(const float *const *inputBuffers,
- Vamp::RealTime timestamp);
-
- FeatureSet getRemainingFeaturesOffline();
-
- FeatureSet processRealTime(const float *const *inputBuffers,
- Vamp::RealTime timestamp);
-
- FeatureSet getRemainingFeaturesRealTime();
-
- FeatureSet createFeatures(size_t inputIncrement,
- std::vector<int> &outputIncrements,
- std::vector<float> &phaseResetDf,
- std::vector<int> &exactPoints,
- std::vector<float> &smoothedDf,
- size_t baseCount,
- bool includeFinal);
-};
-
-
-RubberBandVampPlugin::RubberBandVampPlugin(float inputSampleRate) :
- Plugin(inputSampleRate)
-{
- m_d = new Impl();
- m_d->m_stepSize = 0;
- m_d->m_timeRatio = 1.f;
- m_d->m_pitchRatio = 1.f;
- m_d->m_realtime = false;
- m_d->m_elasticTiming = true;
- m_d->m_transientMode = 0;
- m_d->m_phaseIndependent = false;
- m_d->m_windowLength = 0;
- m_d->m_stretcher = 0;
- m_d->m_sampleRate = lrintf(m_inputSampleRate);
-}
-
-RubberBandVampPlugin::~RubberBandVampPlugin()
-{
- if (m_d->m_outputDump) {
- for (size_t i = 0; i < m_d->m_stretcher->getChannelCount(); ++i) {
- delete[] m_d->m_outputDump[i];
- }
- delete[] m_d->m_outputDump;
- }
- delete m_d->m_stretcher;
- delete m_d;
-}
-
-string
-RubberBandVampPlugin::getIdentifier() const
-{
- return "rubberband";
-}
-
-string
-RubberBandVampPlugin::getName() const
-{
- return "Rubber Band Timestretch Analysis";
-}
-
-string
-RubberBandVampPlugin::getDescription() const
-{
- return "Carry out analysis phases of time stretcher process";
-}
-
-string
-RubberBandVampPlugin::getMaker() const
-{
- return "Breakfast Quay";
-}
-
-int
-RubberBandVampPlugin::getPluginVersion() const
-{
- return 1;
-}
-
-string
-RubberBandVampPlugin::getCopyright() const
-{
- return "";//!!!
-}
-
-RubberBandVampPlugin::OutputList
-RubberBandVampPlugin::getOutputDescriptors() const
-{
- OutputList list;
-
- size_t rate = 0;
- if (m_d->m_stretcher) {
- rate = lrintf(m_inputSampleRate / m_d->m_stretcher->getInputIncrement());
- }
-
- OutputDescriptor d;
- d.identifier = "increments";
- d.name = "Output Increments";
- d.description = "Output time increment for each input step";
- d.unit = "samples";
- d.hasFixedBinCount = true;
- d.binCount = 1;
- d.hasKnownExtents = false;
- d.isQuantized = true;
- d.quantizeStep = 1.0;
- d.sampleType = OutputDescriptor::VariableSampleRate;
- d.sampleRate = float(rate);
- m_d->m_incrementsOutput = list.size();
- list.push_back(d);
-
- d.identifier = "aggregate_increments";
- d.name = "Accumulated Output Increments";
- d.description = "Accumulated output time increments";
- d.sampleRate = 0;
- m_d->m_aggregateIncrementsOutput = list.size();
- list.push_back(d);
-
- d.identifier = "divergence";
- d.name = "Divergence from Linear";
- d.description = "Difference between actual output time and the output time for a theoretical linear stretch";
- d.isQuantized = false;
- d.sampleRate = 0;
- m_d->m_divergenceOutput = list.size();
- list.push_back(d);
-
- d.identifier = "phaseresetdf";
- d.name = "Phase Reset Detection Function";
- d.description = "Curve whose peaks are used to identify transients for phase reset points";
- d.unit = "";
- d.sampleRate = float(rate);
- m_d->m_phaseResetDfOutput = list.size();
- list.push_back(d);
-
- d.identifier = "smoothedphaseresetdf";
- d.name = "Smoothed Phase Reset Detection Function";
- d.description = "Phase reset curve smoothed for peak picking";
- d.unit = "";
- m_d->m_smoothedPhaseResetDfOutput = list.size();
- list.push_back(d);
-
- d.identifier = "phaseresetpoints";
- d.name = "Phase Reset Points";
- d.description = "Points estimated as transients at which phase reset occurs";
- d.unit = "";
- d.hasFixedBinCount = true;
- d.binCount = 0;
- d.hasKnownExtents = false;
- d.isQuantized = false;
- d.sampleRate = 0;
- m_d->m_phaseResetPointsOutput = list.size();
- list.push_back(d);
-
- d.identifier = "timesyncpoints";
- d.name = "Time Sync Points";
- d.description = "Salient points which stretcher aims to place with strictly correct timing";
- d.unit = "";
- d.hasFixedBinCount = true;
- d.binCount = 0;
- d.hasKnownExtents = false;
- d.isQuantized = false;
- d.sampleRate = 0;
- m_d->m_timeSyncPointsOutput = list.size();
- list.push_back(d);
-
- return list;
-}
-
-RubberBandVampPlugin::ParameterList
-RubberBandVampPlugin::getParameterDescriptors() const
-{
- ParameterList list;
-
- ParameterDescriptor d;
- d.identifier = "timeratio";
- d.name = "Time Ratio";
- d.description = "Ratio to modify overall duration by";
- d.unit = "%";
- d.minValue = 1;
- d.maxValue = 500;
- d.defaultValue = 100;
- d.isQuantized = false;
- list.push_back(d);
-
- d.identifier = "pitchratio";
- d.name = "Pitch Scale Ratio";
- d.description = "Frequency ratio to modify pitch by";
- d.unit = "%";
- d.minValue = 1;
- d.maxValue = 500;
- d.defaultValue = 100;
- d.isQuantized = false;
- list.push_back(d);
-
- d.identifier = "mode";
- d.name = "Processing Mode";
- d.description = ""; //!!!
- d.unit = "";
- d.minValue = 0;
- d.maxValue = 1;
- d.defaultValue = 0;
- d.isQuantized = true;
- d.quantizeStep = 1;
- d.valueNames.clear();
- d.valueNames.push_back("Offline");
- d.valueNames.push_back("Real Time");
- list.push_back(d);
-
- d.identifier = "stretchtype";
- d.name = "Stretch Flexibility";
- d.description = ""; //!!!
- d.unit = "";
- d.minValue = 0;
- d.maxValue = 1;
- d.defaultValue = 0;
- d.isQuantized = true;
- d.quantizeStep = 1;
- d.valueNames.clear();
- d.valueNames.push_back("Elastic");
- d.valueNames.push_back("Precise");
- list.push_back(d);
-
- d.identifier = "transientmode";
- d.name = "Transient Handling";
- d.description = ""; //!!!
- d.unit = "";
- d.minValue = 0;
- d.maxValue = 2;
- d.defaultValue = 0;
- d.isQuantized = true;
- d.quantizeStep = 1;
- d.valueNames.clear();
- d.valueNames.push_back("Mixed");
- d.valueNames.push_back("Smooth");
- d.valueNames.push_back("Crisp");
- list.push_back(d);
-
- d.identifier = "phasemode";
- d.name = "Phase Handling";
- d.description = ""; //!!!
- d.unit = "";
- d.minValue = 0;
- d.maxValue = 1;
- d.defaultValue = 0;
- d.isQuantized = true;
- d.quantizeStep = 1;
- d.valueNames.clear();
- d.valueNames.push_back("Peak Locked");
- d.valueNames.push_back("Independent");
- list.push_back(d);
-
- d.identifier = "windowmode";
- d.name = "Window Length";
- d.description = ""; //!!!
- d.unit = "";
- d.minValue = 0;
- d.maxValue = 2;
- d.defaultValue = 0;
- d.isQuantized = true;
- d.quantizeStep = 1;
- d.valueNames.clear();
- d.valueNames.push_back("Standard");
- d.valueNames.push_back("Short");
- d.valueNames.push_back("Long");
- list.push_back(d);
-
- return list;
-}
-
-float
-RubberBandVampPlugin::getParameter(std::string id) const
-{
- if (id == "timeratio") return m_d->m_timeRatio * 100.f;
- if (id == "pitchratio") return m_d->m_pitchRatio * 100.f;
- if (id == "mode") return m_d->m_realtime ? 1.f : 0.f;
- if (id == "stretchtype") return m_d->m_elasticTiming ? 0.f : 1.f;
- if (id == "transientmode") return float(m_d->m_transientMode);
- if (id == "phasemode") return m_d->m_phaseIndependent ? 1.f : 0.f;
- if (id == "windowmode") return float(m_d->m_windowLength);
- return 0.f;
-}
-
-void
-RubberBandVampPlugin::setParameter(std::string id, float value)
-{
- if (id == "timeratio") {
- m_d->m_timeRatio = value / 100;
- } else if (id == "pitchratio") {
- m_d->m_pitchRatio = value / 100;
- } else {
- bool set = (value > 0.5);
- if (id == "mode") m_d->m_realtime = set;
- else if (id == "stretchtype") m_d->m_elasticTiming = !set;
- else if (id == "transientmode") m_d->m_transientMode = int(value + 0.5);
- else if (id == "phasemode") m_d->m_phaseIndependent = set;
- else if (id == "windowmode") m_d->m_windowLength = int(value + 0.5);
- }
-}
-
-bool
-RubberBandVampPlugin::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- if (channels < getMinChannelCount() ||
- channels > getMaxChannelCount()) return false;
-
- m_d->m_stepSize = std::min(stepSize, blockSize);
- m_d->m_blockSize = stepSize;
-
- RubberBand::RubberBandStretcher::Options options = 0;
-
- if (m_d->m_realtime)
- options |= RubberBand::RubberBandStretcher::OptionProcessRealTime;
- else options |= RubberBand::RubberBandStretcher::OptionProcessOffline;
-
- if (m_d->m_elasticTiming)
- options |= RubberBand::RubberBandStretcher::OptionStretchElastic;
- else options |= RubberBand::RubberBandStretcher::OptionStretchPrecise;
-
- if (m_d->m_transientMode == 0)
- options |= RubberBand::RubberBandStretcher::OptionTransientsMixed;
- else if (m_d->m_transientMode == 1)
- options |= RubberBand::RubberBandStretcher::OptionTransientsSmooth;
- else options |= RubberBand::RubberBandStretcher::OptionTransientsCrisp;
-
- if (m_d->m_phaseIndependent)
- options |= RubberBand::RubberBandStretcher::OptionPhaseIndependent;
- else options |= RubberBand::RubberBandStretcher::OptionPhaseLaminar;
-
- if (m_d->m_windowLength == 0)
- options |= RubberBand::RubberBandStretcher::OptionWindowStandard;
- else if (m_d->m_windowLength == 1)
- options |= RubberBand::RubberBandStretcher::OptionWindowShort;
- else options |= RubberBand::RubberBandStretcher::OptionWindowLong;
-
- delete m_d->m_stretcher;
- m_d->m_stretcher = new RubberBand::RubberBandStretcher
- (m_d->m_sampleRate, channels, options);
- m_d->m_stretcher->setDebugLevel(1);
- m_d->m_stretcher->setTimeRatio(m_d->m_timeRatio);
- m_d->m_stretcher->setPitchScale(m_d->m_pitchRatio);
-
- m_d->m_counter = 0;
- m_d->m_accumulatedIncrement = 0;
-
- m_d->m_outputDump = 0;
-
- return true;
-}
-
-void
-RubberBandVampPlugin::reset()
-{
-// delete m_stretcher; //!!! or just if (m_stretcher) m_stretcher->reset();
-// m_stretcher = new RubberBand::RubberBandStretcher(lrintf(m_inputSampleRate), channels);
- if (m_d->m_stretcher) m_d->m_stretcher->reset();
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::process(const float *const *inputBuffers,
- Vamp::RealTime timestamp)
-{
- if (m_d->m_realtime) {
- return m_d->processRealTime(inputBuffers, timestamp);
- } else {
- return m_d->processOffline(inputBuffers, timestamp);
- }
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::getRemainingFeatures()
-{
- if (m_d->m_realtime) {
- return m_d->getRemainingFeaturesRealTime();
- } else {
- return m_d->getRemainingFeaturesOffline();
- }
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::Impl::processOffline(const float *const *inputBuffers,
- Vamp::RealTime timestamp)
-{
- if (!m_stretcher) {
- cerr << "ERROR: RubberBandVampPlugin::processOffline: "
- << "RubberBandVampPlugin has not been initialised"
- << endl;
- return FeatureSet();
- }
-
- m_stretcher->study(inputBuffers, m_blockSize, false);
- return FeatureSet();
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::Impl::getRemainingFeaturesOffline()
-{
- m_stretcher->study(0, 0, true);
-
- m_stretcher->calculateStretch();
-
- int rate = m_sampleRate;
-
- RubberBand::StretchCalculator sc(rate,
- m_stretcher->getInputIncrement(),
- true);
-
- size_t inputIncrement = m_stretcher->getInputIncrement();
- std::vector<int> outputIncrements = m_stretcher->getOutputIncrements();
- std::vector<float> phaseResetDf = m_stretcher->getPhaseResetCurve();
- std::vector<int> peaks = m_stretcher->getExactTimePoints();
- std::vector<float> smoothedDf = sc.smoothDF(phaseResetDf);
-
- FeatureSet features = createFeatures
- (inputIncrement, outputIncrements, phaseResetDf, peaks, smoothedDf,
- 0, true);
-
- return features;
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::Impl::processRealTime(const float *const *inputBuffers,
- Vamp::RealTime timestamp)
-{
- // This function is not in any way a real-time function (i.e. it
- // has no requirement to be RT safe); it simply operates the
- // stretcher in RT mode.
-
- if (!m_stretcher) {
- cerr << "ERROR: RubberBandVampPlugin::processRealTime: "
- << "RubberBandVampPlugin has not been initialised"
- << endl;
- return FeatureSet();
- }
-
- m_stretcher->process(inputBuffers, m_blockSize, false);
-
- size_t inputIncrement = m_stretcher->getInputIncrement();
- std::vector<int> outputIncrements = m_stretcher->getOutputIncrements();
- std::vector<float> phaseResetDf = m_stretcher->getPhaseResetCurve();
- std::vector<float> smoothedDf; // not meaningful in RT mode
- std::vector<int> dummyPoints;
- FeatureSet features = createFeatures
- (inputIncrement, outputIncrements, phaseResetDf, dummyPoints, smoothedDf,
- m_counter, false);
- m_counter += outputIncrements.size();
-
- int available = 0;
- while ((available = m_stretcher->available()) > 0) {
- if (!m_outputDump) {
- m_outputDump = new float *[m_stretcher->getChannelCount()];
- for (size_t i = 0; i < m_stretcher->getChannelCount(); ++i) {
- m_outputDump[i] = new float[m_blockSize];
- }
- }
- m_stretcher->retrieve(m_outputDump,
- std::min(int(m_blockSize), available));
- }
-
- return features;
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::Impl::getRemainingFeaturesRealTime()
-{
- return FeatureSet();
-}
-
-RubberBandVampPlugin::FeatureSet
-RubberBandVampPlugin::Impl::createFeatures(size_t inputIncrement,
- std::vector<int> &outputIncrements,
- std::vector<float> &phaseResetDf,
- std::vector<int> &exactPoints,
- std::vector<float> &smoothedDf,
- size_t baseCount,
- bool includeFinal)
-{
- size_t actual = m_accumulatedIncrement;
-
- double overallRatio = m_timeRatio * m_pitchRatio;
-
- char label[200];
-
- FeatureSet features;
-
- int rate = m_sampleRate;
-
- size_t epi = 0;
-
- for (size_t i = 0; i < outputIncrements.size(); ++i) {
-
- size_t frame = (baseCount + i) * inputIncrement;
-
- int oi = outputIncrements[i];
- bool hard = false;
- bool soft = false;
-
- if (oi < 0) {
- oi = -oi;
- hard = true;
- }
-
- if (epi < exactPoints.size() && int(i) == exactPoints[epi]) {
- soft = true;
- ++epi;
- }
-
- double linear = (frame * overallRatio);
-
- Vamp::RealTime t = Vamp::RealTime::frame2RealTime(frame, rate);
-
- Feature feature;
- feature.hasTimestamp = true;
- feature.timestamp = t;
- feature.values.push_back(float(oi));
- feature.label = Vamp::RealTime::frame2RealTime(oi, rate).toText();
- features[m_incrementsOutput].push_back(feature);
-
- feature.values.clear();
- feature.values.push_back(float(actual));
- feature.label = Vamp::RealTime::frame2RealTime(actual, rate).toText();
- features[m_aggregateIncrementsOutput].push_back(feature);
-
- feature.values.clear();
- feature.values.push_back(actual - linear);
-
- sprintf(label, "expected %ld, actual %ld, difference %ld (%s ms)",
- long(linear), long(actual), long(actual - linear),
- // frame2RealTime expects an integer frame number,
- // hence our multiplication factor
- (Vamp::RealTime::frame2RealTime
- (lrintf((actual - linear) * 1000), rate) / 1000)
- .toText().c_str());
- feature.label = label;
-
- features[m_divergenceOutput].push_back(feature);
- actual += oi;
-
- char buf[30];
-
- if (i < phaseResetDf.size()) {
- feature.values.clear();
- feature.values.push_back(phaseResetDf[i]);
- sprintf(buf, "%d", int(baseCount + i));
- feature.label = buf;
- features[m_phaseResetDfOutput].push_back(feature);
- }
-
- if (i < smoothedDf.size()) {
- feature.values.clear();
- feature.values.push_back(smoothedDf[i]);
- features[m_smoothedPhaseResetDfOutput].push_back(feature);
- }
-
- if (hard) {
- feature.values.clear();
- feature.label = "Phase Reset";
- features[m_phaseResetPointsOutput].push_back(feature);
- }
-
- if (hard || soft) {
- feature.values.clear();
- feature.label = "Time Sync";
- features[m_timeSyncPointsOutput].push_back(feature);
- }
- }
-
- if (includeFinal) {
- Vamp::RealTime t = Vamp::RealTime::frame2RealTime
- (inputIncrement * (baseCount + outputIncrements.size()), rate);
- Feature feature;
- feature.hasTimestamp = true;
- feature.timestamp = t;
- feature.label = Vamp::RealTime::frame2RealTime(actual, rate).toText();
- feature.values.clear();
- feature.values.push_back(float(actual));
- features[m_aggregateIncrementsOutput].push_back(feature);
-
- float linear = ((baseCount + outputIncrements.size())
- * inputIncrement * overallRatio);
- feature.values.clear();
- feature.values.push_back(actual - linear);
- feature.label = // see earlier comment
- (Vamp::RealTime::frame2RealTime //!!! update this as earlier label
- (lrintf((actual - linear) * 1000), rate) / 1000)
- .toText();
- features[m_divergenceOutput].push_back(feature);
- }
-
- m_accumulatedIncrement = actual;
-
- return features;
-}
-
diff --git a/libs/rubberband/src/vamp/RubberBandVampPlugin.h b/libs/rubberband/src/vamp/RubberBandVampPlugin.h
deleted file mode 100644
index 67cf1dfba4..0000000000
--- a/libs/rubberband/src/vamp/RubberBandVampPlugin.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#ifndef _RUBBERBAND_VAMP_PLUGIN_H_
-#define _RUBBERBAND_VAMP_PLUGIN_H_
-
-#include "vamp-sdk/Plugin.h"
-
-#include "RubberBandStretcher.h"
-
-class RubberBandVampPlugin : public Vamp::Plugin
-{
-public:
- RubberBandVampPlugin(float inputSampleRate);
- virtual ~RubberBandVampPlugin();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- InputDomain getInputDomain() const { return TimeDomain; }
-
- std::string getIdentifier() const;
- std::string getName() const;
- std::string getDescription() const;
- std::string getMaker() const;
- int getPluginVersion() const;
- std::string getCopyright() const;
-
- ParameterList getParameterDescriptors() const;
- float getParameter(std::string id) const;
- void setParameter(std::string id, float value);
-
- OutputList getOutputDescriptors() const;
-
- FeatureSet process(const float *const *inputBuffers,
- Vamp::RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
-protected:
- class Impl;
- Impl *m_d;
-};
-
-#endif
diff --git a/libs/rubberband/src/vamp/libmain.cpp b/libs/rubberband/src/vamp/libmain.cpp
deleted file mode 100644
index 1b4185130d..0000000000
--- a/libs/rubberband/src/vamp/libmain.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Rubber Band
- An audio time-stretching and pitch-shifting library.
- Copyright 2007-2008 Chris Cannam.
-
- 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. See the file
- COPYING included with this distribution for more information.
-*/
-
-#include <vamp/vamp.h>
-#include <vamp-sdk/PluginAdapter.h>
-
-#include "RubberBandVampPlugin.h"
-
-static Vamp::PluginAdapter<RubberBandVampPlugin> rubberBandAdapter;
-
-const VampPluginDescriptor *vampGetPluginDescriptor(unsigned int version,
- unsigned int index)
-{
- if (version < 1) return 0;
-
- switch (index) {
- case 0: return rubberBandAdapter.getDescriptor();
- default: return 0;
- }
-}
-
diff --git a/libs/rubberband/src/vamp/vamp-rubberband.cat b/libs/rubberband/src/vamp/vamp-rubberband.cat
deleted file mode 100644
index d1ef2caba8..0000000000
--- a/libs/rubberband/src/vamp/vamp-rubberband.cat
+++ /dev/null
@@ -1 +0,0 @@
-vamp:vamp-rubberband:rubberband::Time > Timestretch Analysis
diff --git a/libs/rubberband/wscript b/libs/rubberband/wscript
deleted file mode 100644
index 7e9ca0250c..0000000000
--- a/libs/rubberband/wscript
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-from waflib.extras import autowaf as autowaf
-import os
-import glob
-
-# Version of this package (even if built as a child)
-LIBRUBBERBAND_VERSION = '0.0.0'
-
-# Library version (UNIX style major, minor, micro)
-# major increment <=> incompatible changes
-# minor increment <=> compatible changes (additions)
-# micro increment <=> no interface changes
-LIBRUBBERBAND_LIB_VERSION = '4.1.0'
-
-# Variables for 'waf dist'
-APPNAME = 'librubberband'
-VERSION = LIBRUBBERBAND_VERSION
-
-# Mandatory variables
-top = '.'
-out = 'build'
-
-def options(opt):
- autowaf.set_options(opt)
-
-def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
-
-def build(bld):
- # Library
- obj = bld(features = 'cxx cxxshlib')
- prefix = 'libs/rubberband/'
- sources = glob.glob(prefix + 'src/*.cpp')
- obj.source = [ ]
- for i in sources:
- obj.source += [ i.replace(prefix, '') ]
- obj.export_includes = ['.']
- obj.includes = ['.', 'rubberband']
- obj.name = 'librubberband'
- obj.target = 'rubberband'
- obj.uselib = 'FFTW3 FFTW3F SAMPLERATE SNDFILE'
- obj.use = 'libvamphost'
- obj.vnum = LIBRUBBERBAND_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
- obj.cxxflags = '-DPACKAGE="librubberband"'
-
-def shutdown():
- autowaf.shutdown()
diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc
index e0eb57fc87..cd379b10dc 100644
--- a/libs/surfaces/control_protocol/control_protocol.cc
+++ b/libs/surfaces/control_protocol/control_protocol.cc
@@ -53,6 +53,8 @@ PBD::Signal0<void> ControlProtocol::ClearRouteSelection;
PBD::Signal0<void> ControlProtocol::StepTracksDown;
PBD::Signal0<void> ControlProtocol::StepTracksUp;
+const std::string ControlProtocol::state_node_name ("Protocol");
+
ControlProtocol::ControlProtocol (Session& s, string str)
: BasicUI (s)
, _name (str)
@@ -64,6 +66,13 @@ ControlProtocol::~ControlProtocol ()
{
}
+int
+ControlProtocol::set_active (bool yn)
+{
+ _active = yn;
+ return 0;
+}
+
void
ControlProtocol::next_track (uint32_t initial_id)
{
@@ -356,5 +365,15 @@ ControlProtocol:: route_get_name (uint32_t table_index)
list<boost::shared_ptr<Bundle> >
ControlProtocol::bundles ()
{
- return list<boost::shared_ptr<Bundle> > ();
+ return list<boost::shared_ptr<Bundle> > ();
+}
+
+XMLNode&
+ControlProtocol::get_state ()
+{
+ XMLNode* node = new XMLNode (state_node_name);
+
+ node->add_property ("name", _name);
+
+ return *node;
}
diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
index 7dbda7d3eb..f5af008e4a 100644
--- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h
+++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
@@ -30,18 +30,10 @@
#include "pbd/stateful.h"
#include "pbd/signals.h"
-#include "ardour/visibility.h"
#include "control_protocol/visibility.h"
#include "control_protocol/basic_ui.h"
#include "control_protocol/types.h"
-#ifdef ARDOURSURFACE_DLL_EXPORTS // defined if we are building the ARDOUR surface DLLs (instead of using them)
- #define ARDOURSURFACE_API LIBARDOUR_HELPER_DLL_EXPORT
-#else
- #define ARDOURSURFACE_API LIBARDOUR_HELPER_DLL_IMPORT
-#endif
-#define ARDOURSURFACE_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
-
namespace ARDOUR {
class Route;
@@ -56,8 +48,8 @@ class LIBCONTROLCP_API ControlProtocol : public PBD::Stateful, public PBD::Scope
std::string name() const { return _name; }
- virtual int set_active (bool yn) = 0;
- bool get_active() const { return _active; }
+ virtual int set_active (bool yn);
+ bool active() const { return _active; }
virtual int set_feedback (bool /*yn*/) { return 0; }
virtual bool get_feedback () const { return false; }
@@ -142,16 +134,19 @@ class LIBCONTROLCP_API ControlProtocol : public PBD::Stateful, public PBD::Scope
virtual void* get_gui() const { return 0; }
virtual void tear_down_gui() { }
+ XMLNode& get_state ();
+ static const std::string state_node_name;
+
protected:
std::vector<boost::shared_ptr<ARDOUR::Route> > route_table;
std::string _name;
- bool _active;
void next_track (uint32_t initial_id);
void prev_track (uint32_t initial_id);
private:
- ARDOURSURFACE_LOCAL ControlProtocol (const ControlProtocol&); /* noncopyable */
+ LIBCONTROLCP_LOCAL ControlProtocol (const ControlProtocol&); /* noncopyable */
+ bool _active;
};
extern "C" {
diff --git a/libs/surfaces/control_protocol/control_protocol/visibility.h b/libs/surfaces/control_protocol/control_protocol/visibility.h
index 40c83b8580..88dcff0940 100644
--- a/libs/surfaces/control_protocol/control_protocol/visibility.h
+++ b/libs/surfaces/control_protocol/control_protocol/visibility.h
@@ -20,37 +20,26 @@
#ifndef __libcontrolcp_visibility_h__
#define __libcontrolcp_visibility_h__
-/* _WIN32 is defined by most compilers targetting Windows, but within the
- * controlcp source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending
- * on how a Windows build is built.
- */
-
-#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW)
+#if defined(COMPILER_MSVC)
#define LIBCONTROLCP_DLL_IMPORT __declspec(dllimport)
#define LIBCONTROLCP_DLL_EXPORT __declspec(dllexport)
#define LIBCONTROLCP_DLL_LOCAL
#else
- #if __GNUC__ >= 4
- #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden")))
- #else
- #define LIBCONTROLCP_DLL_IMPORT
- #define LIBCONTROLCP_DLL_EXPORT
- #define LIBCONTROLCP_DLL_LOCAL
- #endif
+ #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
-#ifdef LIBCONTROLCP_DLL // libcontrolcp is a DLL
-#ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it)
- #define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT
+#ifdef LIBCONTROLCP_STATIC // libcontrolcp is not a DLL
+ #define LIBCONTROLCP_API
+ #define LIBCONTROLCP_LOCAL
#else
+ #ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it)
+ #define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT
+ #else
#define LIBCONTROLCP_API LIBCONTROLCP_DLL_IMPORT
-#endif
-#define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL
-#else /* static lib, not DLL */
-#define LIBCONTROLCP_API
-#define LIBCONTROLCP_LOCAL
+ #endif
+ #define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL
#endif
#endif /* __libcontrolcp_visibility_h__ */
diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript
index 10ec7f6c95..f14cee042f 100644
--- a/libs/surfaces/control_protocol/wscript
+++ b/libs/surfaces/control_protocol/wscript
@@ -28,11 +28,7 @@ def build(bld):
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=controlcp_sources)
# defines for this library
- obj.defines = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ]
- # internal shared libs that we use
- obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1', 'LIBEVORAL_DLL=1' ]
- obj.cxxflags = [ '-fvisibility=hidden' ]
- obj.cflags = [ '-fvisibility=hidden' ]
+ obj.defines = [ 'LIBCONTROLCP_DLL_EXPORTS' ]
else:
obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=controlcp_sources)
obj.cxxflags = [ '-fPIC' ]
@@ -41,10 +37,9 @@ def build(bld):
obj.export_includes = ['.', './control_protocol' ]
obj.defines += [ 'PACKAGE="ardour_cp"' ]
obj.includes = ['.', './control_protocol']
- obj.defines = [ 'ARDOURCP_DLL_EXPORTS' ]
obj.name = 'libardour_cp'
obj.target = 'ardourcp'
- obj.use = 'libardour libtimecode'
+ obj.use = 'libardour'
obj.vnum = LIBARDOUR_CP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
diff --git a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc
index 550daef37b..f83e55c9d9 100644
--- a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc
+++ b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc
@@ -1921,9 +1921,7 @@ TranzportControlProtocol::print_noretry (int row, int col, const char *text)
XMLNode&
TranzportControlProtocol::get_state ()
{
- XMLNode* node = new XMLNode (X_("Protocol"));
- node->add_property (X_("name"), _name);
- return *node;
+ return ControlProtocol::get_state();
}
int
diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript
index aa7d119895..ac8341c64d 100644
--- a/libs/surfaces/frontier/wscript
+++ b/libs/surfaces/frontier/wscript
@@ -35,8 +35,6 @@ def build(bld):
'''
obj.export_includes = ['./generic_midi']
obj.defines = [ 'PACKAGE="ardour_frontier"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1' ]
obj.includes = ['.', './generic_midi']
obj.name = 'libgeneric_midi'
obj.target = 'generic_midi'
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
index e0b06a9369..bae6a48837 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
@@ -80,16 +80,14 @@ GenericMidiControlProtocol::GenericMidiControlProtocol (Session& s)
Controllable::CreateBinding.connect_same_thread (*this, boost::bind (&GenericMidiControlProtocol::create_binding, this, _1, _2, _3));
Controllable::DeleteBinding.connect_same_thread (*this, boost::bind (&GenericMidiControlProtocol::delete_binding, this, _1));
- Session::SendFeedback.connect (*this, MISSING_INVALIDATOR, boost::bind (&GenericMidiControlProtocol::send_feedback, this), midi_ui_context());;
-#if 0
- /* XXXX SOMETHING GOES WRONG HERE (april 2012) - STILL DEBUGGING */
/* this signal is emitted by the process() callback, and if
* send_feedback() is going to do anything, it should do it in the
* context of the process() callback itself.
*/
Session::SendFeedback.connect_same_thread (*this, boost::bind (&GenericMidiControlProtocol::send_feedback, this));
-#endif
+ //Session::SendFeedback.connect (*this, MISSING_INVALIDATOR, boost::bind (&GenericMidiControlProtocol::send_feedback, this), midi_ui_context());;
+
/* this one is cross-thread */
Route::RemoteControlIDChange.connect (*this, MISSING_INVALIDATOR, boost::bind (&GenericMidiControlProtocol::reset_controllables, this), midi_ui_context());
@@ -466,23 +464,22 @@ GenericMidiControlProtocol::create_binding (PBD::Controllable* control, int pos,
XMLNode&
GenericMidiControlProtocol::get_state ()
{
- XMLNode* node = new XMLNode ("Protocol");
+ XMLNode& node (ControlProtocol::get_state());
char buf[32];
- node->add_property (X_("name"), _name);
- node->add_property (X_("feedback"), do_feedback ? "1" : "0");
+ node.add_property (X_("feedback"), do_feedback ? "1" : "0");
snprintf (buf, sizeof (buf), "%" PRIu64, _feedback_interval);
- node->add_property (X_("feedback_interval"), buf);
+ node.add_property (X_("feedback_interval"), buf);
snprintf (buf, sizeof (buf), "%d", _threshold);
- node->add_property (X_("threshold"), buf);
+ node.add_property (X_("threshold"), buf);
if (!_current_binding.empty()) {
- node->add_property ("binding", _current_binding);
+ node.add_property ("binding", _current_binding);
}
XMLNode* children = new XMLNode (X_("Controls"));
- node->add_child_nocopy (*children);
+ node.add_child_nocopy (*children);
Glib::Threads::Mutex::Lock lm2 (controllables_lock);
for (MIDIControllables::iterator i = controllables.begin(); i != controllables.end(); ++i) {
@@ -497,7 +494,7 @@ GenericMidiControlProtocol::get_state ()
}
}
- return *node;
+ return node;
}
int
diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript
index f3868fadfc..e871aeeec1 100644
--- a/libs/surfaces/generic_midi/wscript
+++ b/libs/surfaces/generic_midi/wscript
@@ -31,8 +31,6 @@ def build(bld):
'''
obj.export_includes = ['.']
obj.defines = [ 'PACKAGE="ardour_genericmidi"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', './generic_midi']
obj.name = 'libardour_generic_midi'
obj.target = 'ardour_generic_midi'
diff --git a/libs/surfaces/mackie/gui.cc b/libs/surfaces/mackie/gui.cc
index ebb9fd584e..7425b38826 100644
--- a/libs/surfaces/mackie/gui.cc
+++ b/libs/surfaces/mackie/gui.cc
@@ -453,8 +453,6 @@ MackieControlProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib
return;
}
- cerr << "Changed to " << i->first << " aka " << i->second << endl;
-
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (i->second.c_str());
if (act) {
@@ -504,8 +502,6 @@ MackieControlProtocolGUI::surface_combo_changed ()
/* update ipMIDI field */
- cerr << "New device called " << _cp.device_info().name() << " with ipMIDI ? " << _cp.device_info().uses_ipmidi() << endl;
-
ipmidi_base_port_spinner.set_sensitive (_cp.device_info().uses_ipmidi());
}
@@ -522,7 +518,6 @@ MackieControlProtocolGUI::profile_combo_changed ()
void
MackieControlProtocolGUI::ipmidi_spinner_changed ()
{
- cerr << "Set IP MIDI base to " << ipmidi_base_port_spinner.get_value() << endl;
_cp.set_ipmidi_base ((int16_t) lrintf (ipmidi_base_port_spinner.get_value()));
}
diff --git a/libs/surfaces/mackie/interface.cc b/libs/surfaces/mackie/interface.cc
index abef84817d..35216da263 100644
--- a/libs/surfaces/mackie/interface.cc
+++ b/libs/surfaces/mackie/interface.cc
@@ -90,4 +90,4 @@ static ControlProtocolDescriptor mackie_descriptor = {
};
-extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
+extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index 5b772d9af5..c83ce819d9 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -95,8 +95,6 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
, AbstractUI<MackieControlUIRequest> ("mackie")
, _current_initial_bank (0)
, _timecode_type (ARDOUR::AnyTime::BBT)
- , _input_bundle (new ARDOUR::Bundle (_("Mackie Control In"), true))
- , _output_bundle (new ARDOUR::Bundle (_("Mackie Control Out"), false))
, _gui (0)
, _zoom_mode (false)
, _scrub_mode (false)
@@ -108,6 +106,8 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
, needs_ipmidi_restart (false)
, _metering_active (true)
, _initialized (false)
+ , _surfaces_state (0)
+ , _surfaces_version (0)
{
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::MackieControlProtocol\n");
@@ -131,7 +131,7 @@ MackieControlProtocol::~MackieControlProtocol()
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::~MackieControlProtocol tear_down_gui ()\n");
tear_down_gui ();
- _active = false;
+ delete _surfaces_state;
/* stop event loop */
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::~MackieControlProtocol BaseUI::quit ()\n");
@@ -382,7 +382,7 @@ MackieControlProtocol::set_active (bool yn)
{
DEBUG_TRACE (DEBUG::MackieControl, string_compose("MackieControlProtocol::set_active init with yn: '%1'\n", yn));
- if (yn == _active) {
+ if (yn == active()) {
return 0;
}
@@ -396,7 +396,6 @@ MackieControlProtocol::set_active (bool yn)
return -1;
}
connect_session_signals ();
- _active = true;
update_surfaces ();
/* set up periodic task for metering and automation
@@ -410,10 +409,11 @@ MackieControlProtocol::set_active (bool yn)
BaseUI::quit ();
close ();
- _active = false;
}
+ ControlProtocol::set_active (yn);
+
DEBUG_TRACE (DEBUG::MackieControl, string_compose("MackieControlProtocol::set_active done with yn: '%1'\n", yn));
return 0;
@@ -422,7 +422,7 @@ MackieControlProtocol::set_active (bool yn)
bool
MackieControlProtocol::periodic ()
{
- if (!_active) {
+ if (!active()) {
return false;
}
@@ -525,7 +525,7 @@ void
MackieControlProtocol::update_surfaces()
{
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::update_surfaces() init\n");
- if (!_active) {
+ if (!active()) {
return;
}
@@ -608,34 +608,36 @@ MackieControlProtocol::set_profile (const string& profile_name)
}
int
-MackieControlProtocol::set_device (const string& device_name, bool allow_activation)
+MackieControlProtocol::set_device_info (const string& device_name)
{
map<string,DeviceInfo>::iterator d = DeviceInfo::device_info.find (device_name);
- DEBUG_TRACE (DEBUG::MackieControl, string_compose ("new device chosen %1, activation allowed ? %2\n",
- device_name, allow_activation));
+ DEBUG_TRACE (DEBUG::MackieControl, string_compose ("new device chosen %1\n", device_name));
if (d == DeviceInfo::device_info.end()) {
return -1;
}
- if (_active) {
- clear_ports ();
- clear_surfaces ();
+ _device_info = d->second;
+
+ return 0;
+}
+
+int
+MackieControlProtocol::set_device (const string& device_name)
+{
+ if (set_device_info (device_name)) {
+ return -1;
}
- _device_info = d->second;
+ clear_surfaces ();
- if (allow_activation) {
- set_active (true);
- } else {
- if (_active) {
- if (create_surfaces ()) {
- return -1;
- }
- switch_banks (0, true);
- }
+ if (create_surfaces ()) {
+ return -1;
}
+
+ switch_banks (0, true);
+
return 0;
}
@@ -664,6 +666,10 @@ MackieControlProtocol::create_surfaces ()
return -1;
}
+ if (_surfaces_state) {
+ surface->set_state (*_surfaces_state, _surfaces_version);
+ }
+
{
Glib::Threads::Mutex::Lock lm (surfaces_lock);
surfaces.push_back (surface);
@@ -680,6 +686,10 @@ MackieControlProtocol::create_surfaces ()
stype = ext;
if (!_device_info.uses_ipmidi()) {
+
+ _input_bundle.reset (new ARDOUR::Bundle (_("Mackie Control In"), true));
+ _output_bundle.reset (new ARDOUR::Bundle (_("Mackie Control Out"), false));
+
_input_bundle->add_channel (
surface->port().input_port().name(),
ARDOUR::DataType::MIDI,
@@ -691,6 +701,16 @@ MackieControlProtocol::create_surfaces ()
ARDOUR::DataType::MIDI,
session->engine().make_port_name_non_relative (surface->port().output_port().name())
);
+
+ session->BundleAdded (_input_bundle);
+ session->BundleAdded (_output_bundle);
+
+ } else {
+ _input_bundle.reset ((ARDOUR::Bundle*) 0);
+ _output_bundle.reset ((ARDOUR::Bundle*) 0);
+
+ session->BundleRemoved (_input_bundle);
+ session->BundleRemoved (_output_bundle);
}
int fd;
@@ -715,9 +735,6 @@ MackieControlProtocol::create_surfaces ()
void
MackieControlProtocol::close()
{
- clear_ports ();
-
- port_connections.drop_connections ();
session_connections.drop_connections ();
route_connections.drop_connections ();
periodic_connection.disconnect ();
@@ -728,38 +745,42 @@ MackieControlProtocol::close()
XMLNode&
MackieControlProtocol::get_state()
{
+ XMLNode& node (ControlProtocol::get_state());
+
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::get_state init\n");
char buf[16];
- // add name of protocol
- XMLNode* node = new XMLNode (X_("Protocol"));
- node->add_property (X_("name"), ARDOUR::ControlProtocol::_name);
-
// add current bank
snprintf (buf, sizeof (buf), "%d", _current_initial_bank);
- node->add_property (X_("bank"), buf);
+ node.add_property (X_("bank"), buf);
// ipMIDI base port (possibly not used)
snprintf (buf, sizeof (buf), "%d", _ipmidi_base);
- node->add_property (X_("ipmidi-base"), buf);
+ node.add_property (X_("ipmidi-base"), buf);
+
+ node.add_property (X_("device-profile"), _device_profile.name());
+ node.add_property (X_("device-name"), _device_info.name());
+
+ XMLNode* snode = new XMLNode (X_("Surfaces"));
+ for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
+ snode->add_child_nocopy ((*s)->get_state());
+ }
- node->add_property (X_("device-profile"), _device_profile.name());
- node->add_property (X_("device-name"), _device_info.name());
+ node.add_child_nocopy (*snode);
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::get_state done\n");
- return *node;
+ return node;
}
int
-MackieControlProtocol::set_state (const XMLNode & node, int /*version*/)
+MackieControlProtocol::set_state (const XMLNode & node, int version)
{
- DEBUG_TRACE (DEBUG::MackieControl, string_compose ("MackieControlProtocol::set_state: active %1\n", _active));
+ DEBUG_TRACE (DEBUG::MackieControl, string_compose ("MackieControlProtocol::set_state: active %1\n", active()));
int retval = 0;
const XMLProperty* prop;
uint32_t bank = 0;
- bool active = _active;
if ((prop = node.property (X_("ipmidi-base"))) != 0) {
set_ipmidi_base (atoi (prop->value()));
@@ -770,24 +791,26 @@ MackieControlProtocol::set_state (const XMLNode & node, int /*version*/)
bank = atoi (prop->value());
}
- if ((prop = node.property (X_("active"))) != 0) {
- active = string_is_affirmative (prop->value());
- }
-
if ((prop = node.property (X_("device-name"))) != 0) {
- set_device (prop->value(), false);
+ set_device_info (prop->value());
}
if ((prop = node.property (X_("device-profile"))) != 0) {
set_profile (prop->value());
}
+
+ XMLNode* snode = node.child (X_("Surfaces"));
+
+ delete _surfaces_state;
+ _surfaces_state = 0;
- set_active (active);
-
- if (_active) {
- switch_banks (bank, true);
+ if (snode) {
+ _surfaces_state = new XMLNode (*snode);
+ _surfaces_version = version;
}
+ switch_banks (bank, true);
+
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::set_state done\n");
return retval;
@@ -1034,8 +1057,12 @@ list<boost::shared_ptr<ARDOUR::Bundle> >
MackieControlProtocol::bundles ()
{
list<boost::shared_ptr<ARDOUR::Bundle> > b;
- b.push_back (_input_bundle);
- b.push_back (_output_bundle);
+
+ if (_input_bundle) {
+ b.push_back (_input_bundle);
+ b.push_back (_output_bundle);
+ }
+
return b;
}
@@ -1260,8 +1287,10 @@ MackieControlProtocol::midi_input_handler (IOCondition ioc, MIDI::Port* port)
void
MackieControlProtocol::clear_ports ()
{
- _input_bundle->remove_channels ();
- _output_bundle->remove_channels ();
+ if (_input_bundle) {
+ _input_bundle->remove_channels ();
+ _output_bundle->remove_channels ();
+ }
for (PortSources::iterator i = port_sources.begin(); i != port_sources.end(); ++i) {
g_source_destroy (*i);
@@ -1582,7 +1611,7 @@ MackieControlProtocol::set_ipmidi_base (int16_t portnum)
to restart.
*/
- if (_active && _device_info.uses_ipmidi()) {
+ if (active() && _device_info.uses_ipmidi()) {
needs_ipmidi_restart = true;
}
}
@@ -1590,7 +1619,6 @@ MackieControlProtocol::set_ipmidi_base (int16_t portnum)
int
MackieControlProtocol::ipmidi_restart ()
{
- clear_ports ();
clear_surfaces ();
if (create_surfaces ()) {
return -1;
@@ -1603,6 +1631,7 @@ MackieControlProtocol::ipmidi_restart ()
void
MackieControlProtocol::clear_surfaces ()
{
+ clear_ports ();
Glib::Threads::Mutex::Lock lm (surfaces_lock);
surfaces.clear ();
}
diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h
index 81e1436938..4ff5d53f25 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.h
+++ b/libs/surfaces/mackie/mackie_control_protocol.h
@@ -121,7 +121,7 @@ class MackieControlProtocol
Mackie::DeviceProfile& device_profile() { return _device_profile; }
int set_active (bool yn);
- int set_device (const std::string&, bool allow_activation = true);
+ int set_device (const std::string&);
void set_profile (const std::string&);
FlipMode flip_mode () const { return _flip_mode; }
@@ -263,7 +263,6 @@ class MackieControlProtocol
uint32_t _current_initial_bank;
PBD::ScopedConnectionList audio_engine_connections;
PBD::ScopedConnectionList session_connections;
- PBD::ScopedConnectionList port_connections;
PBD::ScopedConnectionList route_connections;
PBD::ScopedConnectionList gui_connections;
// timer for two quick marker left presses
@@ -289,8 +288,9 @@ class MackieControlProtocol
bool needs_ipmidi_restart;
bool _metering_active;
bool _initialized;
-
ARDOUR::RouteNotificationList _last_selected_routes;
+ XMLNode* _surfaces_state;
+ int _surfaces_version;
int create_surfaces ();
bool periodic();
@@ -304,7 +304,8 @@ class MackieControlProtocol
void _gui_track_selection_changed (ARDOUR::RouteNotificationList*, bool save_list);
int ipmidi_restart ();
void initialize ();
-
+ int set_device_info (const std::string& device_name);
+
/* BUTTON HANDLING */
typedef std::set<uint32_t> DownButtonList;
diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc
index c736b3f7e6..ef4447d900 100644
--- a/libs/surfaces/mackie/strip.cc
+++ b/libs/surfaces/mackie/strip.cc
@@ -177,7 +177,7 @@ Strip::set_route (boost::shared_ptr<Route> r, bool /*with_messages*/)
boost::shared_ptr<Pannable> pannable = _route->pannable();
- if (pannable && pannable->panner()) {
+ if (pannable && _route->panner()) {
pannable->pan_azimuth_control->Changed.connect(route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_panner_azi_changed, this, false), ui_context());
pannable->pan_width_control->Changed.connect(route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_panner_width_changed, this, false), ui_context());
}
@@ -211,7 +211,7 @@ Strip::set_route (boost::shared_ptr<Route> r, bool /*with_messages*/)
possible_pot_parameters.clear();
if (pannable) {
- boost::shared_ptr<Panner> panner = pannable->panner();
+ boost::shared_ptr<Panner> panner = _route->panner();
if (panner) {
set<Evoral::Parameter> automatable = panner->what_can_be_automated ();
set<Evoral::Parameter>::iterator a;
@@ -352,7 +352,7 @@ Strip::notify_panner_azi_changed (bool force_update)
boost::shared_ptr<Pannable> pannable = _route->pannable();
- if (!pannable || !pannable->panner()) {
+ if (!pannable || !_route->panner()) {
_surface->write (_vpot->zero());
return;
}
@@ -391,7 +391,7 @@ Strip::notify_panner_width_changed (bool force_update)
boost::shared_ptr<Pannable> pannable = _route->pannable();
- if (!pannable || !pannable->panner()) {
+ if (!pannable || !_route->panner()) {
_surface->write (_vpot->zero());
return;
}
@@ -606,8 +606,8 @@ Strip::do_parameter_display (AutomationType type, float val)
case PanAzimuthAutomation:
if (_route) {
boost::shared_ptr<Pannable> p = _route->pannable();
- if (p && p->panner()) {
- string str = p->panner()->value_as_string (p->pan_azimuth_control);
+ if (p && _route->panner()) {
+ string str =_route->panner()->value_as_string (p->pan_azimuth_control);
_surface->write (display (1, str));
}
}
diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc
index 507491d84c..694c73b1bc 100644
--- a/libs/surfaces/mackie/surface.cc
+++ b/libs/surfaces/mackie/surface.cc
@@ -141,6 +141,39 @@ Surface::~Surface ()
DEBUG_TRACE (DEBUG::MackieControl, "Surface::~Surface done\n");
}
+XMLNode&
+Surface::get_state()
+{
+ char buf[64];
+ snprintf (buf, sizeof (buf), X_("surface-%u"), _number);
+ XMLNode* node = new XMLNode (buf);
+
+ node->add_child_nocopy (_port->get_state());
+
+ return *node;
+}
+
+int
+Surface::set_state (const XMLNode& node, int version)
+{
+ char buf[64];
+ snprintf (buf, sizeof (buf), X_("surface-%u"), _number);
+ XMLNode* mynode = node.child (buf);
+
+ if (!mynode) {
+ return 0;
+ }
+
+ XMLNode* portnode = mynode->child (X_("Port"));
+ if (portnode) {
+ if (_port->set_state (*portnode, version)) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
const MidiByteArray&
Surface::sysex_hdr() const
{
@@ -589,12 +622,6 @@ Surface::turn_it_on ()
}
void
-Surface::handle_port_inactive (SurfacePort*)
-{
- _active = false;
-}
-
-void
Surface::write_sysex (const MidiByteArray & mba)
{
if (mba.empty()) {
diff --git a/libs/surfaces/mackie/surface.h b/libs/surfaces/mackie/surface.h
index ecaa4171f7..1ed83aef1d 100644
--- a/libs/surfaces/mackie/surface.h
+++ b/libs/surfaces/mackie/surface.h
@@ -3,6 +3,7 @@
#include <stdint.h>
+#include "pbd/xml++.h"
#include "midi++/types.h"
#include "control_protocol/types.h"
@@ -92,9 +93,6 @@ public:
/// unless it's already connected
void connect_to_signals ();
- /// notification from a MackiePort that it's now inactive
- void handle_port_inactive(Mackie::SurfacePort *);
-
/// write a sysex message
void write_sysex (const MidiByteArray& mba);
void write_sysex (MIDI::byte msg);
@@ -149,6 +147,9 @@ public:
void notify_metering_state_changed();
void turn_it_on ();
+ XMLNode& get_state ();
+ int set_state (const XMLNode&, int version);
+
protected:
private:
diff --git a/libs/surfaces/mackie/surface_port.cc b/libs/surfaces/mackie/surface_port.cc
index 508f501f59..013a0019c7 100644
--- a/libs/surfaces/mackie/surface_port.cc
+++ b/libs/surfaces/mackie/surface_port.cc
@@ -51,11 +51,12 @@ using namespace ARDOUR;
SurfacePort::SurfacePort (Surface& s)
: _surface (&s)
{
-
if (_surface->mcp().device_info().uses_ipmidi()) {
_input_port = new MIDI::IPMIDIPort (_surface->mcp().ipmidi_base() +_surface->number());
_output_port = _input_port;
+
} else {
+
_async_in = AudioEngine::instance()->register_input_port (DataType::MIDI, string_compose (_("%1 in"), _surface->name()), true);
_async_out = AudioEngine::instance()->register_output_port (DataType::MIDI, string_compose (_("%1 out"), _surface->name()), true);
@@ -70,21 +71,71 @@ SurfacePort::SurfacePort (Surface& s)
SurfacePort::~SurfacePort()
{
- if (_surface->mcp().device_info().uses_ipmidi()) {
+ if (dynamic_cast<MIDI::IPMIDIPort*>(_input_port)) {
delete _input_port;
} else {
if (_async_in) {
AudioEngine::instance()->unregister_port (_async_in);
- _async_in.reset ();
+ _async_in.reset ((ARDOUR::Port*) 0);
}
if (_async_out) {
_output_port->drain (10000);
AudioEngine::instance()->unregister_port (_async_out);
- _async_out.reset ();
+ _async_out.reset ((ARDOUR::Port*) 0);
+ }
+ }
+}
+
+XMLNode&
+SurfacePort::get_state ()
+{
+ XMLNode* node = new XMLNode (X_("Port"));
+
+ if (dynamic_cast<MIDI::IPMIDIPort*>(_input_port)) {
+ /* no state required for IPMidi ports */
+ return *node;
+ }
+
+ XMLNode* child;
+
+ child = new XMLNode (X_("Input"));
+ child->add_child_nocopy (_async_in->get_state());
+ node->add_child_nocopy (*child);
+
+
+ child = new XMLNode (X_("Output"));
+ child->add_child_nocopy (_async_out->get_state());
+ node->add_child_nocopy (*child);
+
+ return *node;
+}
+
+int
+SurfacePort::set_state (const XMLNode& node, int version)
+{
+ if (dynamic_cast<MIDI::IPMIDIPort*>(_input_port)) {
+ return 0;
+ }
+
+ XMLNode* child;
+
+ if ((child = node.child (X_("Input"))) != 0) {
+ XMLNode* portnode = child->child (Port::state_node_name.c_str());
+ if (portnode) {
+ _async_in->set_state (*portnode, version);
}
}
+
+ if ((child = node.child (X_("Output"))) != 0) {
+ XMLNode* portnode = child->child (Port::state_node_name.c_str());
+ if (portnode) {
+ _async_out->set_state (*portnode, version);
+ }
+ }
+
+ return 0;
}
// wrapper for one day when strerror_r is working properly
diff --git a/libs/surfaces/mackie/surface_port.h b/libs/surfaces/mackie/surface_port.h
index 751ee848d7..b361294fa9 100644
--- a/libs/surfaces/mackie/surface_port.h
+++ b/libs/surfaces/mackie/surface_port.h
@@ -50,15 +50,18 @@ class Surface;
class SurfacePort
{
public:
- SurfacePort (Mackie::Surface&);
- virtual ~SurfacePort();
-
- /// an easier way to output bytes via midi
- int write (const MidiByteArray&);
+ SurfacePort (Mackie::Surface&);
+ virtual ~SurfacePort();
+
+ /// an easier way to output bytes via midi
+ int write (const MidiByteArray&);
MIDI::Port& input_port() const { return *_input_port; }
MIDI::Port& output_port() const { return *_output_port; }
+ XMLNode& get_state ();
+ int set_state (const XMLNode&, int version);
+
protected:
private:
diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript
index a7177bf0a6..2dc546a5d7 100644
--- a/libs/surfaces/mackie/wscript
+++ b/libs/surfaces/mackie/wscript
@@ -43,12 +43,11 @@ def build(bld):
'''
obj.export_includes = ['./mackie']
obj.defines = [ 'PACKAGE="ardour_mackie"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ]
# need ../libs because some GTK2 header files require stuff there
obj.includes = ['.', '../libs']
obj.name = 'libardour_mcp'
- obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
+ obj.defines = [ 'LIBCONTROLCP_EXPORTS' ]
+ obj.defines += [ 'PACKAGE="libardour_mcp"' ]
obj.target = 'ardour_mcp'
obj.uselib = 'GTKMM'
obj.use = 'libardour libardour_cp libgtkmm2ext'
diff --git a/libs/surfaces/osc/interface.cc b/libs/surfaces/osc/interface.cc
index f20d898418..7c09828f46 100644
--- a/libs/surfaces/osc/interface.cc
+++ b/libs/surfaces/osc/interface.cc
@@ -57,5 +57,5 @@ static ControlProtocolDescriptor osc_descriptor = {
destroy : delete_osc_protocol
};
-extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
+extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 8b57dc0c3e..e252d22e3d 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -31,6 +31,7 @@
#include <glib/gstdio.h>
#include <glibmm/miscutils.h>
+#include <pbd/convert.h>
#include <pbd/pthread_utils.h>
#include <pbd/file_utils.h>
#include <pbd/failed_constructor.h>
@@ -72,22 +73,20 @@ static void error_callback(int, const char *, const char *)
#endif
OSC::OSC (Session& s, uint32_t port)
- : ControlProtocol (s, "OSC")
+ : ControlProtocol (s, X_("Open Sound Control (OSC)"))
, AbstractUI<OSCUIRequest> ("osc")
+ , local_server (0)
+ , remote_server (0)
, _port(port)
+ , _ok (true)
+ , _shutdown (false)
+ , _osc_server (0)
+ , _osc_unix_server (0)
+ , _namespace_root ("/ardour")
+ , _send_route_changes (true)
{
_instance = this;
- _shutdown = false;
- _osc_server = 0;
- _osc_unix_server = 0;
- _namespace_root = "/ardour";
- _send_route_changes = true;
- /* glibmm hack */
- local_server = 0;
- remote_server = 0;
-
- // "Application Hooks"
session_loaded (s);
session->Exported.connect (*this, MISSING_INVALIDATOR, boost::bind (&OSC::session_exported, this, _1, _2), this);
}
@@ -114,11 +113,21 @@ OSC::do_request (OSCUIRequest* req)
int
OSC::set_active (bool yn)
{
- if (yn) {
- return start ();
- } else {
- return stop ();
+ if (yn != active()) {
+
+ if (yn) {
+ if (start ()) {
+ return -1;
+ }
+ } else {
+ if (stop ()) {
+ return -1;
+ }
+ }
+
}
+
+ return ControlProtocol::set_active (yn);
}
bool
@@ -1060,16 +1069,26 @@ OSC::route_plugin_parameter_print (int rid, int piid, int par)
XMLNode&
OSC::get_state ()
{
- XMLNode* node = new XMLNode ("Protocol");
-
- node->add_property (X_("name"), "Open Sound Control (OSC)");
- node->add_property (X_("feedback"), _send_route_changes ? "1" : "0");
+ XMLNode& node (ControlProtocol::get_state());
- return *node;
+ node.add_property (X_("feedback"), _send_route_changes ? "1" : "0");
+ return node;
}
int
-OSC::set_state (const XMLNode&, int /*version*/)
+OSC::set_state (const XMLNode& node, int /*version*/)
{
+ const XMLProperty* prop = node.property (X_("feedback"));
+
+ if (prop) {
+ if (PBD::string_is_affirmative (prop->value())) {
+ _send_route_changes = true;
+ } else {
+ _send_route_changes = false;
+ }
+ } else {
+ /* leave it alone */
+ }
+
return 0;
}
diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript
index 102b7426bd..a00663e977 100644
--- a/libs/surfaces/osc/wscript
+++ b/libs/surfaces/osc/wscript
@@ -28,8 +28,6 @@ def build(bld):
'''
obj.export_includes = ['.']
obj.defines = [ 'PACKAGE="ardour_osc"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', './osc']
obj.name = 'libardour_osc'
obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
diff --git a/libs/surfaces/tranzport/state.cc b/libs/surfaces/tranzport/state.cc
index 7995e1aa02..119e7953d2 100644
--- a/libs/surfaces/tranzport/state.cc
+++ b/libs/surfaces/tranzport/state.cc
@@ -50,9 +50,7 @@ using namespace PBD;
XMLNode&
TranzportControlProtocol::get_state ()
{
- XMLNode* node = new XMLNode (X_("Protocol"));
- node->add_property (X_("name"), _name);
- return *node;
+ return ControlProtocol::get_state();
}
int
diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript
index a73cec2832..05fd7cf5d6 100644
--- a/libs/surfaces/tranzport/wscript
+++ b/libs/surfaces/tranzport/wscript
@@ -40,8 +40,6 @@ def build(bld):
'''
obj.export_includes = ['./tranzport']
obj.defines = [ 'PACKAGE="ardour_tranzport"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ]
obj.includes = ['.', './tranzport']
obj.name = 'libardour_tranzport'
obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
diff --git a/libs/surfaces/wiimote/interface.cc b/libs/surfaces/wiimote/interface.cc
index 9a704e445e..8695facb8d 100644
--- a/libs/surfaces/wiimote/interface.cc
+++ b/libs/surfaces/wiimote/interface.cc
@@ -61,5 +61,5 @@ static ControlProtocolDescriptor wiimote_descriptor = {
destroy : delete_wiimote_protocol
};
-extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
+extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
diff --git a/libs/surfaces/wiimote/wiimote.cc b/libs/surfaces/wiimote/wiimote.cc
index 68f2125dcb..963bf90df7 100644
--- a/libs/surfaces/wiimote/wiimote.cc
+++ b/libs/surfaces/wiimote/wiimote.cc
@@ -65,7 +65,8 @@ WiimoteControlProtocol::set_active (bool yn)
DEBUG_TRACE (DEBUG::WiimoteControl, string_compose ("WiimoteControlProtocol::set_active init with yn: '%1'\n", yn));
/* do nothing if the active state is not changing */
- if (yn == _active) {
+
+ if (yn == active()) {
return 0;
}
@@ -77,8 +78,7 @@ WiimoteControlProtocol::set_active (bool yn)
result = stop ();
}
- /* remember new active state */
- _active = yn;
+ ControlProtocol::set_active (yn);
DEBUG_TRACE (DEBUG::WiimoteControl, "WiimoteControlProtocol::set_active done\n");
@@ -88,10 +88,9 @@ WiimoteControlProtocol::set_active (bool yn)
XMLNode&
WiimoteControlProtocol::get_state ()
{
- XMLNode *node = new XMLNode ("Protocol");
- node->add_property (X_("name"), ARDOUR::ControlProtocol::_name);
- node->add_property (X_("feedback"), "0");
- return *node;
+ XMLNode& node (ControlProtocol::get_state());
+ node.add_property (X_("feedback"), "0");
+ return node;
}
int
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
index 4dca1fcdb0..e63713c855 100644
--- a/libs/surfaces/wiimote/wscript
+++ b/libs/surfaces/wiimote/wscript
@@ -26,8 +26,6 @@ def build(bld):
'''
obj.export_includes = ['./wiimote']
obj.defines = [ 'PACKAGE="ardour_wiimote"' ]
- if bld.is_defined ('INTERNAL_SHARED_LIBS'):
- obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', '../libs']
obj.name = 'libardour_wiimote'
obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
diff --git a/libs/taglib/AUTHORS b/libs/taglib/AUTHORS
deleted file mode 100644
index 8872bd80e0..0000000000
--- a/libs/taglib/AUTHORS
+++ /dev/null
@@ -1,11 +0,0 @@
-Scott Wheeler <wheeler@kde.org>
- Author, maintainer
-Ismael Orenstein <orenstein@kde.org>
- Xing header implementation
-Allan Sandfeld Jensen <kde@carewolf.org>
- FLAC metadata implementation
-Teemu Tervo <teemu.tervo@gmx.net>
- Numerous bug reports and fixes
-
-Please send all patches and questions to taglib-devel@kde.org rather than to
-individual developers!
diff --git a/libs/taglib/CMakeLists.txt b/libs/taglib/CMakeLists.txt
deleted file mode 100644
index 436627e0a6..0000000000
--- a/libs/taglib/CMakeLists.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-project(taglib)
-
-OPTION(BUILD_TESTS "Build the test suite" OFF)
-OPTION(BUILD_EXAMPLES "Build the examples" OFF)
-
-OPTION(NO_ITUNES_HACKS "Disable workarounds for iTunes bugs" OFF)
-
-#add some KDE specific stuff
-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
-set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Base directory for executables and libraries" FORCE)
-#
-## the following are directories where stuff will be installed to
-set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The kde info install dir (default prefix/info)" FORCE)
-set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
-set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE)
-
-if (CMAKE_COMPILER_IS_GNUCXX)
- if (CMAKE_SYSTEM_NAME MATCHES Linux)
- set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
- set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-check-new -fno-common")
- endif (CMAKE_SYSTEM_NAME MATCHES Linux)
-endif (CMAKE_COMPILER_IS_GNUCXX)
-if(MSVC)
- add_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE )
-endif(MSVC)
-if (WIN32)
- set(CMAKE_DEBUG_POSTFIX "d")
-endif (WIN32)
-
-SET(TAGLIB_LIB_MAJOR_VERSION "1")
-SET(TAGLIB_LIB_MINOR_VERSION "5")
-SET(TAGLIB_LIB_PATCH_VERSION "0")
-
-SET(TAGLIB_LIB_VERSION_STRING "${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}")
-
-
-include(ConfigureChecks.cmake)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib-config )
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib.pc )
-
-configure_file(config-taglib.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h )
-
-ADD_SUBDIRECTORY( taglib )
-
-ADD_SUBDIRECTORY(tests)
-ADD_SUBDIRECTORY(examples)
-
-ADD_SUBDIRECTORY(bindings)
-if(NOT WIN32)
- INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/taglib.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
-endif(NOT WIN32)
-
-INSTALL( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/taglib-config DESTINATION ${BIN_INSTALL_DIR})
-
-
diff --git a/libs/taglib/COPYING.LGPL b/libs/taglib/COPYING.LGPL
deleted file mode 100644
index e38ffa8374..0000000000
--- a/libs/taglib/COPYING.LGPL
+++ /dev/null
@@ -1,481 +0,0 @@
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330
- Boston, MA 02111-1307, USA.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/libs/taglib/COPYING.MPL b/libs/taglib/COPYING.MPL
deleted file mode 100644
index 7714141d15..0000000000
--- a/libs/taglib/COPYING.MPL
+++ /dev/null
@@ -1,470 +0,0 @@
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ---------------
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 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.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 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.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 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 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" (or "Your") 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 more than fifty percent
- (50%) 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) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, 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
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-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 Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor 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 Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes 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 Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. 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) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. 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 or ownership rights 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, judicial order, 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.
- Netscape Communications Corporation ("Netscape") 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 Netscape. No one
- other than Netscape 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 "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape 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.
-
- 8.1. 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.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY 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
- THIS 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
- California 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 United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- 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.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- 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.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
diff --git a/libs/taglib/ConfigureChecks.cmake b/libs/taglib/ConfigureChecks.cmake
deleted file mode 100644
index 033dab1699..0000000000
--- a/libs/taglib/ConfigureChecks.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# NOTE: only add something here if it is really needed by all of kdelibs.
-# Otherwise please prefer adding to the relevant config-foo.h.cmake file,
-# and the CMakeLists.txt that generates it (or a separate ConfigureChecks.make file if you prefer)
-# to minimize recompilations and increase modularity.
-
-include(CheckIncludeFile)
-include(CheckIncludeFiles)
-include(CheckSymbolExists)
-include(CheckFunctionExists)
-include(CheckLibraryExists)
-include(CheckTypeSize)
-include(CheckCXXSourceCompiles)
-
-#check for libz using the cmake supplied FindZLIB.cmake
-FIND_PACKAGE(ZLIB)
-
-IF(ZLIB_FOUND)
- SET(HAVE_ZLIB 1)
-ELSE(ZLIB_FOUND)
- SET(HAVE_ZLIB 0)
-ENDIF(ZLIB_FOUND)
-
-SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
-FIND_PACKAGE(CppUnit)
-IF (NOT CPPUNIT_FOUND AND BUILD_TESTS)
- MESSAGE(STATUS "CppUnit not found, disabling tests.")
- SET(BUILD_TESTS OFF)
-ENDIF(NOT CPPUNIT_FOUND AND BUILD_TESTS)
diff --git a/libs/taglib/INSTALL b/libs/taglib/INSTALL
deleted file mode 100644
index 02a4a0740a..0000000000
--- a/libs/taglib/INSTALL
+++ /dev/null
@@ -1,167 +0,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- 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 at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' 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 a while. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Type `make install' to install the programs and any data files and
- documentation.
-
- 4. You can remove the program binaries and object files from the
- source code directory by typing `make clean'.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-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 supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- 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' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-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.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
diff --git a/libs/taglib/Makefile.am b/libs/taglib/Makefile.am
deleted file mode 100644
index f454f7ef0f..0000000000
--- a/libs/taglib/Makefile.am
+++ /dev/null
@@ -1,54 +0,0 @@
-SUBDIRS = taglib bindings tests
-
-AUTOMAKE_OPTIONS = foreign
-
-$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
- cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
-
-$(top_srcdir)/subdirs:
- cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
-
-$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
- @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
-
-MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
-
-bin_SCRIPTS = taglib-config
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = taglib.pc
-
-package-messages:
- $(MAKE) -f admin/Makefile.common package-messages
-
-dist-hook:
- cd $(top_distdir) && perl admin/am_edit -padmin
- cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
-
-examples: examples-all
-
-examples-all:
- cd examples ; \
- $(MAKE) all
-
-apidox:
- $(mkinstalldirs) doc/api; \
- if test ! -x doc/common; then \
- $(LN_S) $(kde_libs_htmldir)/en/common doc/common ; \
- fi; \
- cp $(top_srcdir)/admin/Doxyfile.global taglib.doxyfile; \
- echo "PROJECT_NAME = TagLib" >> taglib.doxyfile; \
- echo "PROJECT_NUMBER = \"Version 1.5\"" >> taglib.doxyfile; \
- echo "INPUT = $(srcdir)" >> taglib.doxyfile; \
- echo "OUTPUT_DIRECTORY = doc/api" >> taglib.doxyfile; \
- echo "HTML_OUTPUT = html" >> taglib.doxyfile; \
- echo "GENERATE_HTML = YES" >> taglib.doxyfile ; \
- echo "GENERATE_MAN = NO" >> taglib.doxyfile ; \
- echo "GENERATE_LATEX = NO" >> taglib.doxyfile ; \
- echo "HTML_HEADER = doc/common/header.html" >> taglib.doxyfile ; \
- echo "HTML_FOOTER = doc/common/footer.html" >> taglib.doxyfile ; \
- echo "HTML_STYLESHEET = doc/common/doxygen.css" >> taglib.doxyfile ; \
- echo "FILE_PATTERNS = *.h" >> taglib.doxyfile ; \
- echo "PREDEFINED = DO_NOT_DOCUMENT DOXYGEN" >> taglib.doxyfile ; \
- echo "EXTRACT_ALL = YES" >> taglib.doxyfile ; \
- doxygen taglib.doxyfile
diff --git a/libs/taglib/Makefile.cvs b/libs/taglib/Makefile.cvs
deleted file mode 100644
index ac8066e05f..0000000000
--- a/libs/taglib/Makefile.cvs
+++ /dev/null
@@ -1,14 +0,0 @@
-all:
- @echo "This Makefile is only for the CVS repository"
- @echo "This will be deleted before making the distribution"
- @echo ""
- @if test ! -d admin; then \
- echo "Please recheckout this module!" ;\
- echo "for cvs: use checkout once and after that update again" ;\
- echo "for cvsup: checkout kde-common from cvsup and" ;\
- echo " link kde-common/admin to ./admin" ;\
- exit 1 ;\
- fi
- $(MAKE) -f admin/Makefile.common cvs
-
-.SILENT:
diff --git a/libs/taglib/Makefile.in b/libs/taglib/Makefile.in
deleted file mode 100644
index f3547d2b6d..0000000000
--- a/libs/taglib/Makefile.in
+++ /dev/null
@@ -1,862 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = .
-DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(srcdir)/taglib-config.in $(srcdir)/taglib.pc.in \
- $(top_srcdir)/configure AUTHORS INSTALL admin/compile \
- admin/config.guess admin/config.sub admin/depcomp \
- admin/install-sh admin/ltmain.sh admin/missing \
- admin/mkinstalldirs admin/ylwrap
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = taglib-config taglib.pc
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-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|^.*/||'`;
-pkgconfigDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkgconfig_DATA)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = taglib bindings tests
-AUTOMAKE_OPTIONS = foreign
-MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
-bin_SCRIPTS = taglib-config
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = taglib.pc
-#>- all: config.h
-#>+ 1
-all: docs-am config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh:
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
-#>- cd $(srcdir) && $(AUTOMAKE) --foreign \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --foreign Makefile
-#>+ 14
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- ( \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- ) || exit 1; echo ' cd $(top_srcdir) && perl admin/am_edit '; cd $(top_srcdir) && perl admin/am_edit && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
- cd $(top_srcdir) && perl admin/am_edit Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
-#>- cd $(srcdir) && $(AUTOCONF)
-#>+ 2
- cd $(srcdir) && rm -f configure
- cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
- else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-taglib-config: $(top_builddir)/config.status $(srcdir)/taglib-config.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-taglib.pc: $(top_builddir)/config.status $(srcdir)/taglib.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-install-binSCRIPTS: $(bin_SCRIPTS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
-
-uninstall-binSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-install-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"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(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) config.h.in $(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) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) config.h.in $(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)
- test -d $(distdir) || mkdir $(distdir)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-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 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @cd $(distuninstallcheck_dir) \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(SCRIPTS) $(DATA) config.h
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(bindir)" "$(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."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-#>- clean: clean-recursive
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libtool mostlyclean-am
-#>+ 1
-clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-pkgconfigDATA
-
-install-dvi: install-dvi-recursive
-
-install-exec-am: install-binSCRIPTS
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am am--refresh check check-am clean clean-generic \
- clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
- dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \
- distclean distclean-generic distclean-hdr distclean-libtool \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-binSCRIPTS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgconfigDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am uninstall-binSCRIPTS \
- uninstall-pkgconfigDATA
-
-
-$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
- cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
-
-$(top_srcdir)/subdirs:
- cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
-
-$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
- @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
-
-package-messages:
- $(MAKE) -f admin/Makefile.common package-messages
-
-dist-hook:
- cd $(top_distdir) && perl admin/am_edit -padmin
- cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
-
-examples: examples-all
-
-examples-all:
- cd examples ; \
- $(MAKE) all
-
-apidox:
- $(mkinstalldirs) doc/api; \
- if test ! -x doc/common; then \
- $(LN_S) $(kde_libs_htmldir)/en/common doc/common ; \
- fi; \
- cp $(top_srcdir)/admin/Doxyfile.global taglib.doxyfile; \
- echo "PROJECT_NAME = TagLib" >> taglib.doxyfile; \
- echo "PROJECT_NUMBER = \"Version 1.5\"" >> taglib.doxyfile; \
- echo "INPUT = $(srcdir)" >> taglib.doxyfile; \
- echo "OUTPUT_DIRECTORY = doc/api" >> taglib.doxyfile; \
- echo "HTML_OUTPUT = html" >> taglib.doxyfile; \
- echo "GENERATE_HTML = YES" >> taglib.doxyfile ; \
- echo "GENERATE_MAN = NO" >> taglib.doxyfile ; \
- echo "GENERATE_LATEX = NO" >> taglib.doxyfile ; \
- echo "HTML_HEADER = doc/common/header.html" >> taglib.doxyfile ; \
- echo "HTML_FOOTER = doc/common/footer.html" >> taglib.doxyfile ; \
- echo "HTML_STYLESHEET = doc/common/doxygen.css" >> taglib.doxyfile ; \
- echo "FILE_PATTERNS = *.h" >> taglib.doxyfile ; \
- echo "PREDEFINED = DO_NOT_DOCUMENT DOXYGEN" >> taglib.doxyfile ; \
- echo "EXTRACT_ALL = YES" >> taglib.doxyfile ; \
- doxygen taglib.doxyfile
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=taglib-config.in COPYING.LGPL subdirs configure.in.bot Makefile.in config-taglib.h.cmake configure.files taglib-config.cmake config.h.in taglib.pc.in configure.in Makefile.cvs COPYING.MPL aclocal.m4 ConfigureChecks.cmake taglib.pc.cmake configure.in.in acinclude.m4 CMakeLists.txt configure Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 7
-force-reedit:
- \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
-
- cd $(top_srcdir) && perl admin/am_edit Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in ; do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 3
-final:
- $(MAKE) all-am
-
-#>+ 3
-final-install:
- $(MAKE) install-am
-
-#>+ 3
-no-final:
- $(MAKE) all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/acinclude.m4 b/libs/taglib/acinclude.m4
deleted file mode 100644
index 0f0ca180b3..0000000000
--- a/libs/taglib/acinclude.m4
+++ /dev/null
@@ -1,11888 +0,0 @@
-## -*- autoconf -*-
-
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
-dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-dnl Boston, MA 02110-1301, USA.
-
-dnl IMPORTANT NOTE:
-dnl Please do not modify this file unless you expect your modifications to be
-dnl carried into every other module in the repository.
-dnl
-dnl Single-module modifications are best placed in configure.in for kdelibs
-dnl and kdebase or configure.in.in if present.
-
-# KDE_PATH_X_DIRECT
-dnl Internal subroutine of AC_PATH_X.
-dnl Set ac_x_includes and/or ac_x_libraries.
-AC_DEFUN([KDE_PATH_X_DIRECT],
-[
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-AC_TRY_CPP([#include <$x_direct_test_include>],
-[# We can compile using X headers with no special include directory.
-ac_x_includes=],
-[# Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done])
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)],
-[LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=],
-[LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
- /usr/X11/lib${kdelibsuff} \
- /usr/X11R6/lib${kdelibsuff} \
- /usr/X11R5/lib${kdelibsuff} \
- /usr/X11R4/lib${kdelibsuff} \
- \
- /usr/lib${kdelibsuff}/X11 \
- /usr/lib${kdelibsuff}/X11R6 \
- /usr/lib${kdelibsuff}/X11R5 \
- /usr/lib${kdelibsuff}/X11R4 \
- \
- /usr/local/X11/lib${kdelibsuff} \
- /usr/local/X11R6/lib${kdelibsuff} \
- /usr/local/X11R5/lib${kdelibsuff} \
- /usr/local/X11R4/lib${kdelibsuff} \
- \
- /usr/local/lib${kdelibsuff}/X11 \
- /usr/local/lib${kdelibsuff}/X11R6 \
- /usr/local/lib${kdelibsuff}/X11R5 \
- /usr/local/lib${kdelibsuff}/X11R4 \
- \
- /usr/X386/lib${kdelibsuff} \
- /usr/x386/lib${kdelibsuff} \
- /usr/XFree86/lib${kdelibsuff}/X11 \
- \
- /usr/lib${kdelibsuff} \
- /usr/local/lib${kdelibsuff} \
- /usr/unsupported/lib${kdelibsuff} \
- /usr/athena/lib${kdelibsuff} \
- /usr/local/x11r5/lib${kdelibsuff} \
- /usr/lpp/Xamples/lib${kdelibsuff} \
- /lib/usr/lib${kdelibsuff}/X11 \
- \
- /usr/openwin/lib${kdelibsuff} \
- /usr/openwin/share/lib${kdelibsuff} \
- ; \
-do
-dnl Don't even attempt the hair of trying to link an X program!
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done])
-fi # $ac_x_libraries = NO
-])
-
-
-dnl ------------------------------------------------------------------------
-dnl Find a file (or one of more files in a list of dirs)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_FIND_FILE],
-[
-$3=NO
-for i in $2;
-do
- for j in $1;
- do
- echo "configure: __oline__: $i/$j" >&AC_FD_CC
- if test -r "$i/$j"; then
- echo "taking that" >&AC_FD_CC
- $3=$i
- break 2
- fi
- done
-done
-])
-
-dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs,
-dnl if-not-found, test-parameter, prepend-path)
-dnl
-dnl Look for program-name in list-of-dirs+$PATH.
-dnl If prepend-path is set, look in $PATH+list-of-dirs instead.
-dnl If found, $variable-name is set. If not, if-not-found is evaluated.
-dnl test-parameter: if set, the program is executed with this arg,
-dnl and only a successful exit code is required.
-AC_DEFUN([KDE_FIND_PATH],
-[
- AC_MSG_CHECKING([for $1])
- if test -n "$$2"; then
- kde_cv_path="$$2";
- else
- kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
-
- AC_CACHE_VAL(kde_cv_path_$kde_cache,
- [
- kde_cv_path="NONE"
- kde_save_IFS=$IFS
- IFS=':'
- dirs=""
- for dir in $PATH; do
- dirs="$dirs $dir"
- done
- if test -z "$6"; then dnl Append dirs in PATH (default)
- dirs="$3 $dirs"
- else dnl Prepend dirs in PATH (if 6th arg is set)
- dirs="$dirs $3"
- fi
- IFS=$kde_save_IFS
-
- for dir in $dirs; do
- if test -x "$dir/$1"; then
- if test -n "$5"
- then
- evalstr="$dir/$1 $5 2>&1 "
- if eval $evalstr; then
- kde_cv_path="$dir/$1"
- break
- fi
- else
- kde_cv_path="$dir/$1"
- break
- fi
- fi
- done
-
- eval "kde_cv_path_$kde_cache=$kde_cv_path"
-
- ])
-
- eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
-
- fi
-
- if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
- AC_MSG_RESULT(not found)
- $4
- else
- AC_MSG_RESULT($kde_cv_path)
- $2=$kde_cv_path
-
- fi
-])
-
-AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
-[
- AC_MSG_ERROR([No Qt meta object compiler (moc) found!
-Please check whether you installed Qt correctly.
-You need to have a running moc binary.
-configure tried to run $ac_cv_path_moc and the test didn't
-succeed. If configure shouldn't have tried this one, set
-the environment variable MOC to the right one before running
-configure.
-])
-])
-
-AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
-[
- AC_MSG_WARN([No Qt ui compiler (uic) found!
-Please check whether you installed Qt correctly.
-You need to have a running uic binary.
-configure tried to run $ac_cv_path_uic and the test didn't
-succeed. If configure shouldn't have tried this one, set
-the environment variable UIC to the right one before running
-configure.
-])
-])
-
-
-AC_DEFUN([KDE_CHECK_UIC_FLAG],
-[
- AC_MSG_CHECKING([whether uic supports -$1 ])
- kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
- AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
- [
- cat >conftest.ui <<EOT
- <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
-EOT
- ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
- if AC_TRY_EVAL(ac_uic_testrun); then
- eval "kde_cv_prog_uic_$kde_cache=yes"
- else
- eval "kde_cv_prog_uic_$kde_cache=no"
- fi
- rm -f conftest*
- ])
-
- if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT([yes])
- :
- $3
- else
- AC_MSG_RESULT([no])
- :
- $4
- fi
-])
-
-
-dnl ------------------------------------------------------------------------
-dnl Find the meta object compiler and the ui compiler in the PATH,
-dnl in $QTDIR/bin, and some more usual places
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_PATH_QT_MOC_UIC],
-[
- AC_REQUIRE([KDE_CHECK_PERL])
- qt_bindirs=""
- for dir in $kde_qt_dirs; do
- qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
- done
- qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
- if test ! "$ac_qt_bindir" = "NO"; then
- qt_bindirs="$ac_qt_bindir $qt_bindirs"
- fi
-
- KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
- if test -z "$UIC_NOT_NEEDED"; then
- KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
- if test -z "$UIC_PATH" ; then
- KDE_UIC_ERROR_MESSAGE
- exit 1
- else
- UIC=$UIC_PATH
-
- if test $kde_qtver = 3; then
- KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
- KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
-
- if test x$ac_uic_supports_libpath = xyes; then
- UIC="$UIC -L \$(kde_widgetdir)"
- fi
- if test x$ac_uic_supports_nounload = xyes; then
- UIC="$UIC -nounload"
- fi
- fi
- fi
- else
- UIC="echo uic not available: "
- fi
-
- AC_SUBST(MOC)
- AC_SUBST(UIC)
-
- UIC_TR="i18n"
- if test $kde_qtver = 3; then
- UIC_TR="tr2i18n"
- fi
-
- AC_SUBST(UIC_TR)
-])
-
-AC_DEFUN([KDE_1_CHECK_PATHS],
-[
- KDE_1_CHECK_PATH_HEADERS
-
- KDE_TEST_RPATH=
-
- if test -n "$USE_RPATH"; then
-
- if test -n "$kde_libraries"; then
- KDE_TEST_RPATH="-R $kde_libraries"
- fi
-
- if test -n "$qt_libraries"; then
- KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
- fi
-
- if test -n "$x_libraries"; then
- KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
- fi
-
- KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
- fi
-
-AC_MSG_CHECKING([for KDE libraries installed])
-ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_ERROR([your system fails at linking a small KDE application!
-Check, if your compiler is installed correctly and if you have used the
-same compiler to compile Qt and kdelibs as you did use now.
-For more details about this problem, look at the end of config.log.])
-fi
-
-if eval `KDEDIR= ./conftest 2>&5`; then
- kde_result=done
-else
- kde_result=problems
-fi
-
-KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
-kde_have_all_paths=yes
-
-KDE_SET_PATHS($kde_result)
-
-])
-
-AC_DEFUN([KDE_SET_PATHS],
-[
- kde_cv_all_paths="kde_have_all_paths=\"yes\" \
- kde_htmldir=\"$kde_htmldir\" \
- kde_appsdir=\"$kde_appsdir\" \
- kde_icondir=\"$kde_icondir\" \
- kde_sounddir=\"$kde_sounddir\" \
- kde_datadir=\"$kde_datadir\" \
- kde_locale=\"$kde_locale\" \
- kde_cgidir=\"$kde_cgidir\" \
- kde_confdir=\"$kde_confdir\" \
- kde_kcfgdir=\"$kde_kcfgdir\" \
- kde_mimedir=\"$kde_mimedir\" \
- kde_toolbardir=\"$kde_toolbardir\" \
- kde_wallpaperdir=\"$kde_wallpaperdir\" \
- kde_templatesdir=\"$kde_templatesdir\" \
- kde_bindir=\"$kde_bindir\" \
- kde_servicesdir=\"$kde_servicesdir\" \
- kde_servicetypesdir=\"$kde_servicetypesdir\" \
- kde_moduledir=\"$kde_moduledir\" \
- kde_styledir=\"$kde_styledir\" \
- kde_widgetdir=\"$kde_widgetdir\" \
- xdg_appsdir=\"$xdg_appsdir\" \
- xdg_menudir=\"$xdg_menudir\" \
- xdg_directorydir=\"$xdg_directorydir\" \
- kde_result=$1"
-])
-
-AC_DEFUN([KDE_SET_DEFAULT_PATHS],
-[
-if test "$1" = "default"; then
-
- if test -z "$kde_htmldir"; then
- kde_htmldir='\${datadir}/doc/HTML'
- fi
- if test -z "$kde_appsdir"; then
- kde_appsdir='\${datadir}/applnk'
- fi
- if test -z "$kde_icondir"; then
- kde_icondir='\${datadir}/icons'
- fi
- if test -z "$kde_sounddir"; then
- kde_sounddir='\${datadir}/sounds'
- fi
- if test -z "$kde_datadir"; then
- kde_datadir='\${datadir}/apps'
- fi
- if test -z "$kde_locale"; then
- kde_locale='\${datadir}/locale'
- fi
- if test -z "$kde_cgidir"; then
- kde_cgidir='\${exec_prefix}/cgi-bin'
- fi
- if test -z "$kde_confdir"; then
- kde_confdir='\${datadir}/config'
- fi
- if test -z "$kde_kcfgdir"; then
- kde_kcfgdir='\${datadir}/config.kcfg'
- fi
- if test -z "$kde_mimedir"; then
- kde_mimedir='\${datadir}/mimelnk'
- fi
- if test -z "$kde_toolbardir"; then
- kde_toolbardir='\${datadir}/toolbar'
- fi
- if test -z "$kde_wallpaperdir"; then
- kde_wallpaperdir='\${datadir}/wallpapers'
- fi
- if test -z "$kde_templatesdir"; then
- kde_templatesdir='\${datadir}/templates'
- fi
- if test -z "$kde_bindir"; then
- kde_bindir='\${exec_prefix}/bin'
- fi
- if test -z "$kde_servicesdir"; then
- kde_servicesdir='\${datadir}/services'
- fi
- if test -z "$kde_servicetypesdir"; then
- kde_servicetypesdir='\${datadir}/servicetypes'
- fi
- if test -z "$kde_moduledir"; then
- if test "$kde_qtver" = "2"; then
- kde_moduledir='\${libdir}/kde2'
- else
- kde_moduledir='\${libdir}/kde3'
- fi
- fi
- if test -z "$kde_styledir"; then
- kde_styledir='\${libdir}/kde3/plugins/styles'
- fi
- if test -z "$kde_widgetdir"; then
- kde_widgetdir='\${libdir}/kde3/plugins/designer'
- fi
- if test -z "$xdg_appsdir"; then
- xdg_appsdir='\${datadir}/applications/kde'
- fi
- if test -z "$xdg_menudir"; then
- xdg_menudir='\${sysconfdir}/xdg/menus'
- fi
- if test -z "$xdg_directorydir"; then
- xdg_directorydir='\${datadir}/desktop-directories'
- fi
-
- KDE_SET_PATHS(defaults)
-
-else
-
- if test $kde_qtver = 1; then
- AC_MSG_RESULT([compiling])
- KDE_1_CHECK_PATHS
- else
- AC_MSG_ERROR([path checking not yet supported for KDE 2])
- fi
-
-fi
-])
-
-AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
-[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
- test -z "$kde_icondir" || test -z "$kde_sounddir" ||
- test -z "$kde_datadir" || test -z "$kde_locale" ||
- test -z "$kde_cgidir" || test -z "$kde_confdir" ||
- test -z "$kde_kcfgdir" ||
- test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
- test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
- test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
- test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
- test -z "$kde_styledir" || test -z "kde_widgetdir" ||
- test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
- test "x$kde_have_all_paths" != "xyes"; then
- kde_have_all_paths=no
- fi
-])
-
-AC_DEFUN([KDE_MISSING_PROG_ERROR],
-[
- AC_MSG_ERROR([The important program $1 was not found!
-Please check whether you installed KDE correctly.
-])
-])
-
-AC_DEFUN([KDE_MISSING_ARTS_ERROR],
-[
- AC_MSG_ERROR([The important program $1 was not found!
-Please check whether you installed aRts correctly or use
---without-arts to compile without aRts support (this will remove functionality).
-])
-])
-
-AC_DEFUN([KDE_SET_DEFAULT_BINDIRS],
-[
- kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
- test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
- if test -n "$KDEDIRS"; then
- kde_save_IFS=$IFS
- IFS=:
- for dir in $KDEDIRS; do
- kde_default_bindirs="$dir/bin $kde_default_bindirs "
- done
- IFS=$kde_save_IFS
- fi
-])
-
-AC_DEFUN([KDE_SUBST_PROGRAMS],
-[
- AC_ARG_WITH(arts,
- AC_HELP_STRING([--without-arts],[build without aRts [default=no]]),
- [build_arts=$withval],
- [build_arts=yes]
- )
- AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
- if test "$build_arts" = "no"; then
- AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts])
- fi
-
- KDE_SET_DEFAULT_BINDIRS
- kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
- KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
- KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
- if test "$build_arts" '!=' "no"; then
- KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
- KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
- fi
- KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
-
- kde32ornewer=1
- kde33ornewer=1
- if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
- kde32ornewer=
- kde33ornewer=
- else
- if test "$kde_qtver" = "3"; then
- if test "$kde_qtsubver" -le 1; then
- kde32ornewer=
- fi
- if test "$kde_qtsubver" -le 2; then
- kde33ornewer=
- fi
- if test "$KDECONFIG" != "compiled"; then
- if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
- kde33ornewer=
- fi
- fi
- fi
- fi
-
- if test -n "$kde32ornewer"; then
- KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
- KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
- fi
- if test -n "$kde33ornewer"; then
- KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)])
- AC_SUBST(MAKEKDEWIDGETS)
- fi
- KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""])
-
- if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
- kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
- test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
- AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
- if test "$KDE_XSL_STYLESHEET" = "NO"; then
- KDE_XSL_STYLESHEET=""
- else
- KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
- fi
- fi
-
- DCOP_DEPENDENCIES='$(DCOPIDL)'
- if test -n "$kde32ornewer"; then
- KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
- DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
- AC_SUBST(KCONFIG_COMPILER)
- AC_SUBST(KCFG_DEPENDENCIES)
- AC_SUBST(DCOPIDLNG)
- fi
- AC_SUBST(DCOPIDL)
- AC_SUBST(DCOPIDL2CPP)
- AC_SUBST(DCOP_DEPENDENCIES)
- AC_SUBST(MCOPIDL)
- AC_SUBST(ARTSCCONFIG)
- AC_SUBST(MEINPROC)
- AC_SUBST(KDE_XSL_STYLESHEET)
- AC_SUBST(XMLLINT)
-])dnl
-
-AC_DEFUN([AC_CREATE_KFSSTND],
-[
-AC_REQUIRE([AC_CHECK_RPATH])
-
-AC_MSG_CHECKING([for KDE paths])
-kde_result=""
-kde_cached_paths=yes
-AC_CACHE_VAL(kde_cv_all_paths,
-[
- KDE_SET_DEFAULT_PATHS($1)
- kde_cached_paths=no
-])
-eval "$kde_cv_all_paths"
-KDE_CHECK_PATHS_FOR_COMPLETENESS
-if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
- # wrong values were cached, may be, we can set better ones
- kde_result=
- kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
- kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir=
- kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
- kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
- kde_have_all_paths=
- kde_styledir=
- kde_widgetdir=
- xdg_appsdir = xdg_menudir= xdg_directorydir=
- KDE_SET_DEFAULT_PATHS($1)
- eval "$kde_cv_all_paths"
- KDE_CHECK_PATHS_FOR_COMPLETENESS
- kde_result="$kde_result (cache overridden)"
-fi
-if test "$kde_have_all_paths" = "no"; then
- AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
-Since it had compiled and linked before, it must be a strange problem on your system.
-Look at config.log for details. If you are not able to fix this, look at
-http://www.kde.org/faq/installation.html or any www.kde.org mirror.
-(If you're using an egcs version on Linux, you may update binutils!)
-])
-else
- rm -f conftest*
- AC_MSG_RESULT($kde_result)
-fi
-
-bindir=$kde_bindir
-
-KDE_SUBST_PROGRAMS
-
-])
-
-AC_DEFUN([AC_SUBST_KFSSTND],
-[
-AC_SUBST(kde_htmldir)
-AC_SUBST(kde_appsdir)
-AC_SUBST(kde_icondir)
-AC_SUBST(kde_sounddir)
-AC_SUBST(kde_datadir)
-AC_SUBST(kde_locale)
-AC_SUBST(kde_confdir)
-AC_SUBST(kde_kcfgdir)
-AC_SUBST(kde_mimedir)
-AC_SUBST(kde_wallpaperdir)
-AC_SUBST(kde_bindir)
-dnl X Desktop Group standards
-AC_SUBST(xdg_appsdir)
-AC_SUBST(xdg_menudir)
-AC_SUBST(xdg_directorydir)
-dnl for KDE 2
-AC_SUBST(kde_templatesdir)
-AC_SUBST(kde_servicesdir)
-AC_SUBST(kde_servicetypesdir)
-AC_SUBST(kde_moduledir)
-AC_SUBST(kdeinitdir, '$(kde_moduledir)')
-AC_SUBST(kde_styledir)
-AC_SUBST(kde_widgetdir)
-if test "$kde_qtver" = 1; then
- kde_minidir="$kde_icondir/mini"
-else
-# for KDE 1 - this breaks KDE2 apps using minidir, but
-# that's the plan ;-/
- kde_minidir="/dev/null"
-fi
-dnl AC_SUBST(kde_minidir)
-dnl AC_SUBST(kde_cgidir)
-dnl AC_SUBST(kde_toolbardir)
-])
-
-AC_DEFUN([KDE_MISC_TESTS],
-[
- dnl Checks for libraries.
- AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD
- AC_SUBST(LIBUTIL)
- AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
- AC_SUBST(LIBCOMPAT)
- kde_have_crypt=
- AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
- AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
- AC_MSG_WARN([you have no crypt in either libcrypt or libc.
-You should install libcrypt from another source or configure with PAM
-support])
- kde_have_crypt=no
- ]))
- AC_SUBST(LIBCRYPT)
- if test $kde_have_crypt = yes; then
- AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
- fi
- AC_CHECK_SOCKLEN_T
- AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- AC_CHECK_LIB(dnet_stub, dnet_ntoa,
- [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
- fi
- AC_CHECK_FUNC(inet_ntoa)
- if test $ac_cv_func_inet_ntoa = no; then
- AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
- fi
- AC_CHECK_FUNC(connect)
- if test $ac_cv_func_connect = no; then
- AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
- $X_EXTRA_LIBS)
- fi
-
- AC_CHECK_FUNC(remove)
- if test $ac_cv_func_remove = no; then
- AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
- fi
-
- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- AC_CHECK_FUNC(shmat, ,
- AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
-
- # more headers that need to be explicitly included on darwin
- AC_CHECK_HEADERS(sys/types.h stdint.h)
-
- # sys/bitypes.h is needed for uint32_t and friends on Tru64
- AC_CHECK_HEADERS(sys/bitypes.h)
-
- # darwin requires a poll emulation library
- AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
-
- # for some image handling on Mac OS X
- AC_CHECK_HEADERS(Carbon/Carbon.h)
-
- # CoreAudio framework
- AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
- AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
- FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio"
- ])
-
- AC_CHECK_RES_INIT
- AC_SUBST(LIB_POLL)
- AC_SUBST(FRAMEWORK_COREAUDIO)
- LIBSOCKET="$X_EXTRA_LIBS"
- AC_SUBST(LIBSOCKET)
- AC_SUBST(X_EXTRA_LIBS)
- AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
- AC_SUBST(LIBUCB)
-
- case $host in dnl this *is* LynxOS specific
- *-*-lynxos* )
- AC_MSG_CHECKING([LynxOS header file wrappers])
- [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
- AC_MSG_RESULT(disabled)
- AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
- ;;
- esac
-
- KDE_CHECK_TYPES
- KDE_CHECK_LIBDL
- KDE_CHECK_STRLCPY
- KDE_CHECK_PIE_SUPPORT
-
-# darwin needs this to initialize the environment
-AC_CHECK_HEADERS(crt_externs.h)
-AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
-
-AH_VERBATIM(_DARWIN_ENVIRON,
-[
-#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
-# include <sys/time.h>
-# include <crt_externs.h>
-# define environ (*_NSGetEnviron())
-#endif
-])
-
-AH_VERBATIM(_AIX_STRINGS_H_BZERO,
-[
-/*
- * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
- * that defines bzero.
- */
-
-#if defined(_AIX)
-#include <strings.h>
-#endif
-])
-
-AC_CHECK_FUNCS([vsnprintf snprintf])
-
-AH_VERBATIM(_TRU64,[
-/*
- * On HP-UX, the declaration of vsnprintf() is needed every time !
- */
-
-#if !defined(HAVE_VSNPRINTF) || defined(hpux)
-#if __STDC__
-#include <stdarg.h>
-#include <stdlib.h>
-#else
-#include <varargs.h>
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
-#ifdef __cplusplus
-extern "C"
-#endif
-int snprintf(char *str, size_t n, char const *fmt, ...);
-#endif
-])
-
-])
-
-dnl ------------------------------------------------------------------------
-dnl Find the header files and libraries for X-Windows. Extended the
-dnl macro AC_PATH_X
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([K_PATH_X],
-[
-AC_REQUIRE([KDE_MISC_TESTS])dnl
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_ARG_ENABLE(
- embedded,
- AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
- kde_use_qt_emb=$enableval,
- kde_use_qt_emb=no
-)
-
-AC_ARG_ENABLE(
- qtopia,
- AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
- kde_use_qt_emb_palm=$enableval,
- kde_use_qt_emb_palm=no
-)
-
-AC_ARG_ENABLE(
- mac,
- AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
- kde_use_qt_mac=$enableval,
- kde_use_qt_mac=no
-)
-
-# used to disable x11-specific stuff on special platforms
-AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
-
-if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
-
-AC_MSG_CHECKING(for X)
-
-AC_CACHE_VAL(kde_cv_have_x,
-[# One or both of the vars are not set, and there is no cached value.
-if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
- kde_x_includes=NO
-else
- kde_x_includes=$x_includes
-fi
-if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
- kde_x_libraries=NO
-else
- kde_x_libraries=$x_libraries
-fi
-
-# below we use the standard autoconf calls
-ac_x_libraries=$kde_x_libraries
-ac_x_includes=$kde_x_includes
-
-KDE_PATH_X_DIRECT
-dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
-dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
-dnl location. The correct location is /usr/lib32 or an undefined value
-dnl (the linker is smart enough to pick the correct default library).
-dnl Things work just fine if you use just AC_PATH_X_DIRECT.
-dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
-dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
-dnl x_includes should be left alone.
-case "$host" in
-mips-sgi-irix6*)
- ;;
-*-*-solaris*)
- ;;
-*)
- _AC_PATH_X_XMKMF
- if test -z "$ac_x_includes"; then
- ac_x_includes="."
- fi
- if test -z "$ac_x_libraries"; then
- ac_x_libraries="/usr/lib${kdelibsuff}"
- fi
-esac
-#from now on we use our own again
-
-# when the user already gave --x-includes, we ignore
-# what the standard autoconf macros told us.
-if test "$kde_x_includes" = NO; then
- kde_x_includes=$ac_x_includes
-fi
-
-# for --x-libraries too
-if test "$kde_x_libraries" = NO; then
- kde_x_libraries=$ac_x_libraries
-fi
-
-if test "$kde_x_includes" = NO; then
- AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
-fi
-
-if test "$kde_x_libraries" = NO; then
- AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
-fi
-
-# Record where we found X for the cache.
-kde_cv_have_x="have_x=yes \
- kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
-])dnl
-
-eval "$kde_cv_have_x"
-
-if test "$have_x" != yes; then
- AC_MSG_RESULT($have_x)
- no_x=yes
-else
- AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
-fi
-
-if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
- X_INCLUDES=""
- x_includes="."; dnl better than nothing :-
- else
- x_includes=$kde_x_includes
- X_INCLUDES="-I$x_includes"
-fi
-
-if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then
- X_LDFLAGS=""
- x_libraries="/usr/lib"; dnl better than nothing :-
- else
- x_libraries=$kde_x_libraries
- X_LDFLAGS="-L$x_libraries"
-fi
-all_includes="$X_INCLUDES"
-all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
-
-# Check for libraries that X11R6 Xt/Xaw programs need.
-ac_save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $X_LDFLAGS"
-# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-# check for ICE first), but we must link in the order -lSM -lICE or
-# we get undefined symbols. So assume we have SM if we have ICE.
-# These have to be linked with before -lX11, unlike the other
-# libraries we check for below, so use a different variable.
-# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
-AC_CHECK_LIB(ICE, IceConnectionNumber,
- [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
-LDFLAGS="$ac_save_LDFLAGS"
-
-LIB_X11='-lX11 $(LIBSOCKET)'
-
-AC_MSG_CHECKING(for libXext)
-AC_CACHE_VAL(kde_cv_have_libXext,
-[
-kde_ldflags_safe="$LDFLAGS"
-kde_libs_safe="$LIBS"
-
-LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
-LIBS="-lXext -lX11 $LIBSOCKET"
-
-AC_TRY_LINK([
-#include <stdio.h>
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-],
-[
-printf("hello Xext\n");
-],
-kde_cv_have_libXext=yes,
-kde_cv_have_libXext=no
-)
-
-LDFLAGS=$kde_ldflags_safe
-LIBS=$kde_libs_safe
-])
-
-AC_MSG_RESULT($kde_cv_have_libXext)
-
-if test "$kde_cv_have_libXext" = "no"; then
- AC_MSG_ERROR([We need a working libXext to proceed. Since configure
-can't find it itself, we stop here assuming that make wouldn't find
-them either.])
-fi
-
-LIB_XEXT="-lXext"
-QTE_NORTTI=""
-
-elif test "$kde_use_qt_emb" = "yes"; then
- dnl We're using QT Embedded
- CPPFLAGS=-DQWS
- CXXFLAGS="$CXXFLAGS -fno-rtti"
- QTE_NORTTI="-fno-rtti -DQWS"
- X_PRE_LIBS=""
- LIB_X11=""
- LIB_XEXT=""
- LIB_XRENDER=""
- LIBSM=""
- X_INCLUDES=""
- X_LDFLAGS=""
- x_includes=""
- x_libraries=""
-elif test "$kde_use_qt_mac" = "yes"; then
- dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
- dnl be included to get the information) --Sam
- CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
- CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
- X_PRE_LIBS=""
- LIB_X11=""
- LIB_XEXT=""
- LIB_XRENDER=""
- LIBSM=""
- X_INCLUDES=""
- X_LDFLAGS=""
- x_includes=""
- x_libraries=""
-fi
-AC_SUBST(X_PRE_LIBS)
-AC_SUBST(LIB_X11)
-AC_SUBST(LIB_XRENDER)
-AC_SUBST(LIBSM)
-AC_SUBST(X_INCLUDES)
-AC_SUBST(X_LDFLAGS)
-AC_SUBST(x_includes)
-AC_SUBST(x_libraries)
-AC_SUBST(QTE_NORTTI)
-AC_SUBST(LIB_XEXT)
-
-])
-
-AC_DEFUN([KDE_PRINT_QT_PROGRAM],
-[
-AC_REQUIRE([KDE_USE_QT])
-cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <qglobal.h>
-#include <qapplication.h>
-EOF
-if test "$kde_qtver" = "2"; then
-cat >> conftest.$ac_ext <<EOF
-#include <qevent.h>
-#include <qstring.h>
-#include <qstyle.h>
-EOF
-
-if test $kde_qtsubver -gt 0; then
-cat >> conftest.$ac_ext <<EOF
-#if QT_VERSION < 210
-#error 1
-#endif
-EOF
-fi
-fi
-
-if test "$kde_qtver" = "3"; then
-cat >> conftest.$ac_ext <<EOF
-#include <qcursor.h>
-#include <qstylefactory.h>
-#include <private/qucomextra_p.h>
-EOF
-fi
-
-echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
-cat >> conftest.$ac_ext <<EOF
-#error 1
-#endif
-
-int main() {
-EOF
-if test "$kde_qtver" = "2"; then
-cat >> conftest.$ac_ext <<EOF
- QStringList *t = new QStringList();
- Q_UNUSED(t);
-EOF
-if test $kde_qtsubver -gt 0; then
-cat >> conftest.$ac_ext <<EOF
- QString s;
- s.setLatin1("Elvis is alive", 14);
-EOF
-fi
-fi
-if test "$kde_qtver" = "3"; then
-cat >> conftest.$ac_ext <<EOF
- (void)QStyleFactory::create(QString::null);
- QCursor c(Qt::WhatsThisCursor);
-EOF
-fi
-cat >> conftest.$ac_ext <<EOF
- return 0;
-}
-EOF
-])
-
-AC_DEFUN([KDE_USE_QT],
-[
-if test -z "$1"; then
- # Current default Qt version: 3.3
- kde_qtver=3
- kde_qtsubver=3
-else
- kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
- # following is the check if subversion isnt found in passed argument
- if test "$kde_qtsubver" = "$1"; then
- kde_qtsubver=1
- fi
- kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
- if test "$kde_qtver" = "1"; then
- kde_qtsubver=42
- fi
-fi
-
-if test -z "$2"; then
- if test "$kde_qtver" = "2"; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_minversion=">= Qt 2.2.2"
- else
- kde_qt_minversion=">= Qt 2.0.2"
- fi
- fi
- if test "$kde_qtver" = "3"; then
- if test $kde_qtsubver -gt 0; then
- if test $kde_qtsubver -gt 1; then
- if test $kde_qtsubver -gt 2; then
- kde_qt_minversion=">= Qt 3.3 and < 4.0"
- else
- kde_qt_minversion=">= Qt 3.2 and < 4.0"
- fi
- else
- kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
- fi
- else
- kde_qt_minversion=">= Qt 3.0 and < 4.0"
- fi
- fi
- if test "$kde_qtver" = "1"; then
- kde_qt_minversion=">= 1.42 and < 2.0"
- fi
-else
- kde_qt_minversion="$2"
-fi
-
-if test -z "$3"; then
- if test $kde_qtver = 3; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000"
- qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
- kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"`
- else
- kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
- fi
- fi
- if test $kde_qtver = 2; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_verstring="QT_VERSION >= 222"
- else
- kde_qt_verstring="QT_VERSION >= 200"
- fi
- fi
- if test $kde_qtver = 1; then
- kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
- fi
-else
- kde_qt_verstring="$3"
-fi
-
-if test $kde_qtver = 4; then
- kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
-fi
-if test $kde_qtver = 3; then
- kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3 /usr/lib${kdelibsuff}/qt-3.3"
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- fi
- if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- kde_qt_dirs="$kde_qt_dirs `$PKG_CONFIG --variable=prefix qt-mt`"
- fi
- fi
-fi
-if test $kde_qtver = 2; then
- kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
-fi
-if test $kde_qtver = 1; then
- kde_qt_dirs="$QTDIR /usr/lib/qt"
-fi
-])
-
-AC_DEFUN([KDE_CHECK_QT_DIRECT],
-[
-AC_REQUIRE([KDE_USE_QT])
-AC_MSG_CHECKING([if Qt compiles without flags])
-AC_CACHE_VAL(kde_cv_qt_direct,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
-ac_LIBRARY_PATH="$LIBRARY_PATH"
-ac_cxxflags_safe="$CXXFLAGS"
-ac_ldflags_safe="$LDFLAGS"
-ac_libs_safe="$LIBS"
-
-CXXFLAGS="$CXXFLAGS -I$qt_includes"
-LDFLAGS="$LDFLAGS $X_LDFLAGS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
-else
-LIBS="$LIBQT $LIBSOCKET"
-fi
-LD_LIBRARY_PATH=
-export LD_LIBRARY_PATH
-LIBRARY_PATH=
-export LIBRARY_PATH
-
-KDE_PRINT_QT_PROGRAM
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- kde_cv_qt_direct="yes"
-else
- kde_cv_qt_direct="no"
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.$ac_ext >&AC_FD_CC
-fi
-
-rm -f conftest*
-CXXFLAGS="$ac_cxxflags_safe"
-LDFLAGS="$ac_ldflags_safe"
-LIBS="$ac_libs_safe"
-
-LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
-export LD_LIBRARY_PATH
-LIBRARY_PATH="$ac_LIBRARY_PATH"
-export LIBRARY_PATH
-AC_LANG_RESTORE
-])
-
-if test "$kde_cv_qt_direct" = "yes"; then
- AC_MSG_RESULT(yes)
- $1
-else
- AC_MSG_RESULT(no)
- $2
-fi
-])
-
-dnl ------------------------------------------------------------------------
-dnl Try to find the Qt headers and libraries.
-dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
-dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_PATH_QT_1_3],
-[
-AC_REQUIRE([K_PATH_X])
-AC_REQUIRE([KDE_USE_QT])
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-dnl ------------------------------------------------------------------------
-dnl Add configure flag to enable linking to MT version of Qt library.
-dnl ------------------------------------------------------------------------
-
-AC_ARG_ENABLE(
- mt,
- AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
- kde_use_qt_mt=$enableval,
- [
- if test $kde_qtver = 3; then
- kde_use_qt_mt=yes
- else
- kde_use_qt_mt=no
- fi
- ]
-)
-
-USING_QT_MT=""
-
-dnl ------------------------------------------------------------------------
-dnl If we not get --disable-qt-mt then adjust some vars for the host.
-dnl ------------------------------------------------------------------------
-
-KDE_MT_LDFLAGS=
-KDE_MT_LIBS=
-if test "x$kde_use_qt_mt" = "xyes"; then
- KDE_CHECK_THREADING
- if test "x$kde_use_threading" = "xyes"; then
- CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
- KDE_MT_LDFLAGS="$USE_THREADS"
- KDE_MT_LIBS="$LIBPTHREAD"
- else
- kde_use_qt_mt=no
- fi
-fi
-AC_SUBST(KDE_MT_LDFLAGS)
-AC_SUBST(KDE_MT_LIBS)
-
-kde_qt_was_given=yes
-
-dnl ------------------------------------------------------------------------
-dnl If we haven't been told how to link to Qt, we work it out for ourselves.
-dnl ------------------------------------------------------------------------
-if test -z "$LIBQT_GLOB"; then
- if test "x$kde_use_qt_emb" = "xyes"; then
- LIBQT_GLOB="libqte.*"
- else
- LIBQT_GLOB="libqt.*"
- fi
-fi
-
-dnl ------------------------------------------------------------
-dnl If we got --enable-embedded then adjust the Qt library name.
-dnl ------------------------------------------------------------
-if test "x$kde_use_qt_emb" = "xyes"; then
- qtlib="qte"
-else
- qtlib="qt"
-fi
-
-kde_int_qt="-l$qtlib"
-
-if test -z "$LIBQPE"; then
-dnl ------------------------------------------------------------
-dnl If we got --enable-palmtop then add -lqpe to the link line
-dnl ------------------------------------------------------------
- if test "x$kde_use_qt_emb" = "xyes"; then
- if test "x$kde_use_qt_emb_palm" = "xyes"; then
- LIB_QPE="-lqpe"
- else
- LIB_QPE=""
- fi
- else
- LIB_QPE=""
- fi
-fi
-
-dnl ------------------------------------------------------------------------
-dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
-dnl ------------------------------------------------------------------------
-
-if test "x$kde_use_qt_mt" = "xyes"; then
- LIBQT="-l$qtlib-mt"
- kde_int_qt="-l$qtlib-mt"
- LIBQT_GLOB="lib$qtlib-mt.*"
- USING_QT_MT="using -mt"
-else
- LIBQT="-l$qtlib"
-fi
-
-if test $kde_qtver != 1; then
-
- AC_REQUIRE([AC_FIND_PNG])
- AC_REQUIRE([AC_FIND_JPEG])
- LIBQT="$LIBQT $LIBPNG $LIBJPEG"
-fi
-
-if test $kde_qtver = 3; then
- AC_REQUIRE([KDE_CHECK_LIBDL])
- LIBQT="$LIBQT $LIBDL"
-fi
-
-AC_MSG_CHECKING([for Qt])
-
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
-fi
-ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
-qt_libraries=""
-qt_includes=""
-AC_ARG_WITH(qt-dir,
- AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
- [ ac_qt_includes="$withval"/include
- ac_qt_libraries="$withval"/lib${kdelibsuff}
- ac_qt_bindir="$withval"/bin
- ])
-
-AC_ARG_WITH(qt-includes,
- AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
- [
- ac_qt_includes="$withval"
- ])
-
-kde_qt_libs_given=no
-
-AC_ARG_WITH(qt-libraries,
- AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
- [ ac_qt_libraries="$withval"
- kde_qt_libs_given=yes
- ])
-
-AC_CACHE_VAL(ac_cv_have_qt,
-[#try to guess Qt locations
-
-qt_incdirs=""
-for dir in $kde_qt_dirs; do
- qt_incdirs="$qt_incdirs $dir/include $dir"
-done
-if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-fi
-if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- qt_incdirs="$qt_incdirs `$PKG_CONFIG --variable=includedir qt-mt`"
- fi
-fi
-qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
-if test ! "$ac_qt_includes" = "NO"; then
- qt_incdirs="$ac_qt_includes $qt_incdirs"
-fi
-
-if test "$kde_qtver" != "1"; then
- kde_qt_header=qstyle.h
-else
- kde_qt_header=qglobal.h
-fi
-
-AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
-ac_qt_includes="$qt_incdir"
-
-qt_libdirs=""
-for dir in $kde_qt_dirs; do
- qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir/lib $dir"
-done
-if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-fi
-if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- qt_libdirs="$qt_incdirs `$PKG_CONFIG --variable=libdir qt-mt`"
- fi
-fi
-qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
-if test ! "$ac_qt_libraries" = "NO"; then
- qt_libdir=$ac_qt_libraries
-else
- qt_libdirs="$ac_qt_libraries $qt_libdirs"
- # if the Qt was given, the chance is too big that libqt.* doesn't exist
- qt_libdir=NONE
- for dir in $qt_libdirs; do
- try="ls -1 $dir/${LIBQT_GLOB}"
- if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
- done
-fi
-for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
- if test -e "$a"; then
- LIBQT="$LIBQT ${kde_int_qt}_incremental"
- break
- fi
-done
-
-ac_qt_libraries="$qt_libdir"
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
-ac_cxxflags_safe="$CXXFLAGS"
-ac_ldflags_safe="$LDFLAGS"
-ac_libs_safe="$LIBS"
-
-CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
-LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
-LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
-
-KDE_PRINT_QT_PROGRAM
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- rm -f conftest*
-else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.$ac_ext >&AC_FD_CC
- ac_qt_libraries="NO"
-fi
-rm -f conftest*
-CXXFLAGS="$ac_cxxflags_safe"
-LDFLAGS="$ac_ldflags_safe"
-LIBS="$ac_libs_safe"
-
-AC_LANG_RESTORE
-if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
- ac_cv_have_qt="have_qt=no"
- ac_qt_notfound=""
- missing_qt_mt=""
- if test "$ac_qt_includes" = NO; then
- if test "$ac_qt_libraries" = NO; then
- ac_qt_notfound="(headers and libraries)";
- else
- ac_qt_notfound="(headers)";
- fi
- else
- if test "x$kde_use_qt_mt" = "xyes"; then
- missing_qt_mt="
-Make sure that you have compiled Qt with thread support!"
- ac_qt_notfound="(library $qtlib-mt)";
- else
- ac_qt_notfound="(library $qtlib)";
- fi
- fi
-
- AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
-For more details about this problem, look at the end of config.log.$missing_qt_mt])
-else
- have_qt="yes"
-fi
-])
-
-eval "$ac_cv_have_qt"
-
-if test "$have_qt" != yes; then
- AC_MSG_RESULT([$have_qt]);
-else
- ac_cv_have_qt="have_qt=yes \
- ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
- AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
-
- qt_libraries="$ac_qt_libraries"
- qt_includes="$ac_qt_includes"
-fi
-
-if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
- KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
-fi
-
-AC_SUBST(qt_libraries)
-AC_SUBST(qt_includes)
-
-if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
- QT_INCLUDES=""
-else
- QT_INCLUDES="-I$qt_includes"
- all_includes="$QT_INCLUDES $all_includes"
-fi
-
-if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
- QT_LDFLAGS=""
-else
- QT_LDFLAGS="-L$qt_libraries"
- all_libraries="$QT_LDFLAGS $all_libraries"
-fi
-test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
-
-AC_SUBST(QT_INCLUDES)
-AC_SUBST(QT_LDFLAGS)
-AC_PATH_QT_MOC_UIC
-
-KDE_CHECK_QT_JPEG
-
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
-else
-LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
-fi
-test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
-for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
- if test -e "$a"; then
- LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
- break
- fi
-done
-
-AC_SUBST(LIB_QT)
-AC_SUBST(LIB_QPE)
-
-AC_SUBST(kde_qtver)
-])
-
-AC_DEFUN([AC_PATH_QT],
-[
-AC_PATH_QT_1_3
-])
-
-AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
-[
-AC_REQUIRE([AC_PATH_QT_MOC_UIC])
-
-if test x$ac_uic_supports_libpath = xyes; then
-
-AC_MSG_CHECKING([if UIC has KDE plugins available])
-AC_CACHE_VAL(kde_cv_uic_plugins,
-[
-cat > actest.ui << EOF
-<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
-<class>NewConnectionDialog</class>
-<widget class="QDialog">
- <widget class="KLineEdit">
- <property name="name">
- <cstring>testInput</cstring>
- </property>
- </widget>
-</widget>
-</UI>
-EOF
-
-
-
-kde_cv_uic_plugins=no
-kde_line="$UIC_PATH -L $kde_widgetdir"
-if test x$ac_uic_supports_nounload = xyes; then
- kde_line="$kde_line -nounload"
-fi
-kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
-if AC_TRY_EVAL(kde_line); then
- # if you're trying to debug this check and think it's incorrect,
- # better check your installation. The check _is_ correct - your
- # installation is not.
- if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
- kde_cv_uic_plugins=yes
- fi
-fi
-rm -f actest.ui actest.cpp
-])
-
-AC_MSG_RESULT([$kde_cv_uic_plugins])
-if test "$kde_cv_uic_plugins" != yes; then
- AC_MSG_ERROR([
-you need to install kdelibs first.
-
-If you did install kdelibs, then the Qt version that is picked up by
-this configure is not the same version you used to compile kdelibs.
-The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
-_same Qt version_, compiled with the _same compiler_ and the same Qt
-configuration settings.
-])
-fi
-fi
-])
-
-AC_DEFUN([KDE_CHECK_FINAL],
-[
- AC_ARG_ENABLE(final,
- AC_HELP_STRING([--enable-final],
- [build size optimized apps (experimental - needs lots of memory)]),
- kde_use_final=$enableval, kde_use_final=no)
-
- if test "x$kde_use_final" = "xyes"; then
- KDE_USE_FINAL_TRUE=""
- KDE_USE_FINAL_FALSE="#"
- else
- KDE_USE_FINAL_TRUE="#"
- KDE_USE_FINAL_FALSE=""
- fi
- AC_SUBST(KDE_USE_FINAL_TRUE)
- AC_SUBST(KDE_USE_FINAL_FALSE)
-])
-
-AC_DEFUN([KDE_CHECK_CLOSURE],
-[
- AC_ARG_ENABLE(closure,
- AC_HELP_STRING([--enable-closure],[delay template instantiation]),
- kde_use_closure=$enableval, kde_use_closure=no)
-
- KDE_NO_UNDEFINED=""
- if test "x$kde_use_closure" = "xyes"; then
- KDE_USE_CLOSURE_TRUE=""
- KDE_USE_CLOSURE_FALSE="#"
-# CXXFLAGS="$CXXFLAGS $REPO"
- else
- KDE_USE_CLOSURE_TRUE="#"
- KDE_USE_CLOSURE_FALSE=""
- KDE_NO_UNDEFINED=""
- case $host in
- *-*-linux-gnu)
- KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
- [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
- [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
- [KDE_NO_UNDEFINED=""])],
- [KDE_NO_UNDEFINED=""])
- ;;
- esac
- fi
- AC_SUBST(KDE_USE_CLOSURE_TRUE)
- AC_SUBST(KDE_USE_CLOSURE_FALSE)
- AC_SUBST(KDE_NO_UNDEFINED)
-])
-
-dnl Check if the linker supports --enable-new-dtags and --as-needed
-AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],
-[
- AC_ARG_ENABLE(new_ldflags,
- AC_HELP_STRING([--enable-new-ldflags],
- [enable the new linker flags]),
- kde_use_new_ldflags=$enableval,
- kde_use_new_ldflags=no)
-
- LDFLAGS_AS_NEEDED=""
- LDFLAGS_NEW_DTAGS=""
- if test "x$kde_use_new_ldflags" = "xyes"; then
- LDFLAGS_NEW_DTAGS=""
- KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
- [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)
-
- KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
- [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
- fi
- AC_SUBST(LDFLAGS_AS_NEEDED)
- AC_SUBST(LDFLAGS_NEW_DTAGS)
-])
-
-AC_DEFUN([KDE_CHECK_NMCHECK],
-[
- AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
- kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
-
- if test "$kde_use_nmcheck" = "yes"; then
- KDE_USE_NMCHECK_TRUE=""
- KDE_USE_NMCHECK_FALSE="#"
- else
- KDE_USE_NMCHECK_TRUE="#"
- KDE_USE_NMCHECK_FALSE=""
- fi
- AC_SUBST(KDE_USE_NMCHECK_TRUE)
- AC_SUBST(KDE_USE_NMCHECK_FALSE)
-])
-
-AC_DEFUN([KDE_EXPAND_MAKEVAR], [
-savex=$exec_prefix
-test "x$exec_prefix" = xNONE && exec_prefix=$prefix
-tmp=$$2
-while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
-exec_prefix=$savex
-])
-
-dnl ------------------------------------------------------------------------
-dnl Now, the same with KDE
-dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
-dnl and $(kde_includes) will be the kdehdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_BASE_PATH_KDE],
-[
-AC_REQUIRE([KDE_CHECK_STL])
-AC_REQUIRE([AC_PATH_QT])dnl
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_CHECK_RPATH
-AC_MSG_CHECKING([for KDE])
-
-if test "${prefix}" != NONE; then
- kde_includes=${includedir}
- KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
-
- kde_libraries=${libdir}
- KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
-
-else
- ac_kde_includes=
- ac_kde_libraries=
- kde_libraries=""
- kde_includes=""
-fi
-
-AC_CACHE_VAL(ac_cv_have_kde,
-[#try to guess kde locations
-
-if test "$kde_qtver" = 1; then
- kde_check_header="ksock.h"
- kde_check_lib="libkdecore.la"
-else
- kde_check_header="ksharedptr.h"
- kde_check_lib="libkio.la"
-fi
-
-if test -z "$1"; then
-
-kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
-test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
-kde_incdirs="$ac_kde_includes $kde_incdirs"
-AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
-ac_kde_includes="$kde_incdir"
-
-if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
- AC_MSG_ERROR([
-in the prefix, you've chosen, are no KDE headers installed. This will fail.
-So, check this please and use another prefix!])
-fi
-
-kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
-test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
-kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
-AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
-ac_kde_libraries="$kde_libdir"
-
-kde_widgetdir=NO
-dnl this might be somewhere else
-AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
-
-if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
-AC_MSG_ERROR([
-in the prefix, you've chosen, are no KDE libraries installed. This will fail.
-So, check this please and use another prefix!])
-fi
-
-if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
-AC_MSG_ERROR([
-I can't find the designer plugins. These are required and should have been installed
-by kdelibs])
-fi
-
-if test -n "$kde_widgetdir"; then
- kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
-fi
-
-
-if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
- ac_cv_have_kde="have_kde=no"
-else
- ac_cv_have_kde="have_kde=yes \
- ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
-fi
-
-else dnl test -z $1, e.g. from kdelibs
-
- ac_cv_have_kde="have_kde=no"
-
-fi
-])dnl
-
-eval "$ac_cv_have_kde"
-
-if test "$have_kde" != "yes"; then
- if test "${prefix}" = NONE; then
- ac_kde_prefix="$ac_default_prefix"
- else
- ac_kde_prefix="$prefix"
- fi
- if test "$exec_prefix" = NONE; then
- ac_kde_exec_prefix="$ac_kde_prefix"
- AC_MSG_RESULT([will be installed in $ac_kde_prefix])
- else
- ac_kde_exec_prefix="$exec_prefix"
- AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
- fi
-
- kde_libraries="${libdir}"
- kde_includes="${includedir}"
-
-else
- ac_cv_have_kde="have_kde=yes \
- ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
- AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
-
- kde_libraries="$ac_kde_libraries"
- kde_includes="$ac_kde_includes"
-fi
-AC_SUBST(kde_libraries)
-AC_SUBST(kde_includes)
-
-if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
- KDE_INCLUDES=""
-else
- KDE_INCLUDES="-I$kde_includes"
- all_includes="$KDE_INCLUDES $all_includes"
-fi
-
-KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
-
-KDE_LDFLAGS="-L$kde_libraries"
-if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
- all_libraries="$KDE_LDFLAGS $all_libraries"
-fi
-
-AC_SUBST(KDE_LDFLAGS)
-AC_SUBST(KDE_INCLUDES)
-
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
-
-if test -z "$1"; then
-KDE_CHECK_UIC_PLUGINS
-fi
-
-ac_kde_libraries="$kde_libdir"
-
-AC_SUBST(AUTODIRS)
-
-
-])
-
-AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
-[
-AC_MSG_CHECKING(for extra includes)
-AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
- kde_use_extra_includes="$withval",
- kde_use_extra_includes=NONE
-)
-kde_extra_includes=
-if test -n "$kde_use_extra_includes" && \
- test "$kde_use_extra_includes" != "NONE"; then
-
- ac_save_ifs=$IFS
- IFS=':'
- for dir in $kde_use_extra_includes; do
- kde_extra_includes="$kde_extra_includes $dir"
- USER_INCLUDES="$USER_INCLUDES -I$dir"
- done
- IFS=$ac_save_ifs
- kde_use_extra_includes="added"
-else
- kde_use_extra_includes="no"
-fi
-AC_SUBST(USER_INCLUDES)
-
-AC_MSG_RESULT($kde_use_extra_includes)
-
-kde_extra_libs=
-AC_MSG_CHECKING(for extra libs)
-AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
- kde_use_extra_libs=$withval,
- kde_use_extra_libs=NONE
-)
-if test -n "$kde_use_extra_libs" && \
- test "$kde_use_extra_libs" != "NONE"; then
-
- ac_save_ifs=$IFS
- IFS=':'
- for dir in $kde_use_extra_libs; do
- kde_extra_libs="$kde_extra_libs $dir"
- KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
- USER_LDFLAGS="$USER_LDFLAGS -L$dir"
- done
- IFS=$ac_save_ifs
- kde_use_extra_libs="added"
-else
- kde_use_extra_libs="no"
-fi
-
-AC_SUBST(USER_LDFLAGS)
-
-AC_MSG_RESULT($kde_use_extra_libs)
-
-])
-
-AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
-[
- AC_MSG_CHECKING([for KDE headers installed])
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-cat > conftest.$ac_ext <<EOF
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-#include <stdio.h>
-#include "confdefs.h"
-#include <kapp.h>
-
-int main() {
- printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
- printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
- printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
- printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
- printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
- printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
- printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
- printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
- printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
- printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
- printf("kde_wallpaperdir=\\"%s\\"\n",
- KApplication::kde_wallpaperdir().data());
- printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
- printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
- printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
- printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
- printf("kde_moduledir=\\"/tmp/dummy\\"\n");
- printf("kde_styledir=\\"/tmp/dummy\\"\n");
- printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
- printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
- printf("xdg_menudir=\\"/tmp/dummy\\"\n");
- printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
- printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
- return 0;
- }
-EOF
-
- ac_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$all_includes $CPPFLAGS"
- if AC_TRY_EVAL(ac_compile); then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_ERROR([your system is not able to compile a small KDE application!
-Check, if you installed the KDE header files correctly.
-For more details about this problem, look at the end of config.log.])
- fi
- CPPFLAGS=$ac_save_CPPFLAGS
-
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([KDE_CHECK_KDEQTADDON],
-[
-AC_MSG_CHECKING(for kde-qt-addon)
-AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
-[
- kde_ldflags_safe="$LDFLAGS"
- kde_libs_safe="$LIBS"
- kde_cxxflags_safe="$CXXFLAGS"
-
- LIBS="-lkde-qt-addon $LIBQT $LIBS"
- CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
- LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
-
- AC_TRY_LINK([
- #include <qdom.h>
- ],
- [
- QDomDocument doc;
- ],
- kde_cv_have_kdeqtaddon=yes,
- kde_cv_have_kdeqtaddon=no
- )
-
- LDFLAGS=$kde_ldflags_safe
- LIBS=$kde_libs_safe
- CXXFLAGS=$kde_cxxflags_safe
-])
-
-AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
-
-if test "$kde_cv_have_kdeqtaddon" = "no"; then
- AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
-It is a separate package (and CVS module) named kde-qt-addon.])
-fi
-])
-
-AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
-[
- AC_REQUIRE([KDE_MISC_TESTS])
- AC_REQUIRE([KDE_CHECK_LIBDL])
- AC_REQUIRE([K_PATH_X])
-
-if test $kde_qtver = 3; then
- case $host in
- *cygwin*) lib_kded="-lkdeinit_kded" ;;
- *) lib_kded="" ;;
- esac
- AC_SUBST(LIB_KDED, $lib_kded)
- AC_SUBST(LIB_KDECORE, "-lkdecore")
- AC_SUBST(LIB_KDEUI, "-lkdeui")
- AC_SUBST(LIB_KIO, "-lkio")
- AC_SUBST(LIB_KJS, "-lkjs")
- AC_SUBST(LIB_SMB, "-lsmb")
- AC_SUBST(LIB_KAB, "-lkab")
- AC_SUBST(LIB_KABC, "-lkabc")
- AC_SUBST(LIB_KHTML, "-lkhtml")
- AC_SUBST(LIB_KSPELL, "-lkspell")
- AC_SUBST(LIB_KPARTS, "-lkparts")
- AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
- AC_SUBST(LIB_KUTILS, "-lkutils")
- AC_SUBST(LIB_KDEPIM, "-lkdepim")
- AC_SUBST(LIB_KIMPROXY, "-lkimproxy")
- AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff")
- AC_SUBST(LIB_KDNSSD, "-lkdnssd")
- AC_SUBST(LIB_KUNITTEST, "-lkunittest")
-# these are for backward compatibility
- AC_SUBST(LIB_KSYCOCA, "-lkio")
- AC_SUBST(LIB_KFILE, "-lkio")
-elif test $kde_qtver = 2; then
- AC_SUBST(LIB_KDECORE, "-lkdecore")
- AC_SUBST(LIB_KDEUI, "-lkdeui")
- AC_SUBST(LIB_KIO, "-lkio")
- AC_SUBST(LIB_KSYCOCA, "-lksycoca")
- AC_SUBST(LIB_SMB, "-lsmb")
- AC_SUBST(LIB_KFILE, "-lkfile")
- AC_SUBST(LIB_KAB, "-lkab")
- AC_SUBST(LIB_KHTML, "-lkhtml")
- AC_SUBST(LIB_KSPELL, "-lkspell")
- AC_SUBST(LIB_KPARTS, "-lkparts")
- AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
-else
- AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
- AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
- AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
- AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
- AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
-fi
-])
-
-AC_DEFUN([AC_PATH_KDE],
-[
- AC_BASE_PATH_KDE
- AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
- [
- if test "$enableval" = "no";
- then ac_use_path_checking="default"
- else ac_use_path_checking=""
- fi
- ],
- [
- if test "$kde_qtver" = 1;
- then ac_use_path_checking=""
- else ac_use_path_checking="default"
- fi
- ]
- )
-
- AC_CREATE_KFSSTND($ac_use_path_checking)
-
- AC_SUBST_KFSSTND
- KDE_CREATE_LIBS_ALIASES
-])
-
-dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
-AC_DEFUN([KDE_CHECK_FUNC_EXT],
-[
-AC_MSG_CHECKING(for $1)
-AC_CACHE_VAL(kde_cv_func_$1,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-save_CXXFLAGS="$CXXFLAGS"
-kde_safe_LIBS="$LIBS"
-LIBS="$LIBS $X_EXTRA_LIBS"
-if test "$GXX" = "yes"; then
-CXXFLAGS="$CXXFLAGS -pedantic-errors"
-fi
-AC_TRY_COMPILE([
-$2
-],
-[
-$3
-],
-kde_cv_func_$1=yes,
-kde_cv_func_$1=no)
-CXXFLAGS="$save_CXXFLAGS"
-LIBS="$kde_safe_LIBS"
-AC_LANG_RESTORE
-])
-
-AC_MSG_RESULT($kde_cv_func_$1)
-
-AC_MSG_CHECKING([if $1 needs custom prototype])
-AC_CACHE_VAL(kde_cv_proto_$1,
-[
-if test "x$kde_cv_func_$1" = xyes; then
- kde_cv_proto_$1=no
-else
- case "$1" in
- setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
- kde_cv_proto_$1="yes - in libkdefakes"
- ;;
- *)
- kde_cv_proto_$1=unknown
- ;;
- esac
-fi
-
-if test "x$kde_cv_proto_$1" = xunknown; then
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
- kde_safe_libs=$LIBS
- LIBS="$LIBS $X_EXTRA_LIBS"
- AC_TRY_LINK([
-$2
-
-extern "C" $4;
-],
-[
-$3
-],
-[ kde_cv_func_$1=yes
- kde_cv_proto_$1=yes ],
- [kde_cv_proto_$1="$1 unavailable"]
-)
-LIBS=$kde_safe_libs
-AC_LANG_RESTORE
-fi
-])
-AC_MSG_RESULT($kde_cv_proto_$1)
-
-if test "x$kde_cv_func_$1" = xyes; then
- AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
- $6
-fi
-if test "x$kde_cv_proto_$1" = xno; then
- AC_DEFINE(HAVE_$5_PROTO, 1,
- [Define if you have the $1 prototype])
-fi
-
-AH_VERBATIM([_HAVE_$5_PROTO],
-[
-#if !defined(HAVE_$5_PROTO)
-#ifdef __cplusplus
-extern "C" {
-#endif
-$4;
-#ifdef __cplusplus
-}
-#endif
-#endif
-])
-])
-
-AC_DEFUN([AC_CHECK_SETENV],
-[
- KDE_CHECK_FUNC_EXT(setenv, [
-#include <stdlib.h>
-],
- [setenv("VAR", "VALUE", 1);],
- [int setenv (const char *, const char *, int)],
- [SETENV])
-])
-
-AC_DEFUN([AC_CHECK_UNSETENV],
-[
- KDE_CHECK_FUNC_EXT(unsetenv, [
-#include <stdlib.h>
-],
- [unsetenv("VAR");],
- [void unsetenv (const char *)],
- [UNSETENV])
-])
-
-AC_DEFUN([AC_CHECK_GETDOMAINNAME],
-[
- KDE_CHECK_FUNC_EXT(getdomainname, [
-#include <stdlib.h>
-#include <unistd.h>
-#include <netdb.h>
-],
- [
-char buffer[200];
-getdomainname(buffer, 200);
-],
- [#include <sys/types.h>
- int getdomainname (char *, size_t)],
- [GETDOMAINNAME])
-])
-
-AC_DEFUN([AC_CHECK_GETHOSTNAME],
-[
- KDE_CHECK_FUNC_EXT(gethostname, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-char buffer[200];
-gethostname(buffer, 200);
-],
- [int gethostname (char *, unsigned int)],
- [GETHOSTNAME])
-])
-
-AC_DEFUN([AC_CHECK_USLEEP],
-[
- KDE_CHECK_FUNC_EXT(usleep, [
-#include <unistd.h>
-],
- [
-usleep(200);
-],
- [int usleep (unsigned int)],
- [USLEEP])
-])
-
-
-AC_DEFUN([AC_CHECK_RANDOM],
-[
- KDE_CHECK_FUNC_EXT(random, [
-#include <stdlib.h>
-],
- [
-random();
-],
- [long int random(void)],
- [RANDOM])
-
- KDE_CHECK_FUNC_EXT(srandom, [
-#include <stdlib.h>
-],
- [
-srandom(27);
-],
- [void srandom(unsigned int)],
- [SRANDOM])
-
-])
-
-AC_DEFUN([AC_CHECK_INITGROUPS],
-[
- KDE_CHECK_FUNC_EXT(initgroups, [
-#include <sys/types.h>
-#include <unistd.h>
-#include <grp.h>
-],
- [
-char buffer[200];
-initgroups(buffer, 27);
-],
- [int initgroups(const char *, gid_t)],
- [INITGROUPS])
-])
-
-AC_DEFUN([AC_CHECK_MKSTEMPS],
-[
- KDE_CHECK_FUNC_EXT(mkstemps, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkstemps("/tmp/aaaXXXXXX", 6);
-],
- [int mkstemps(char *, int)],
- [MKSTEMPS])
-])
-
-AC_DEFUN([AC_CHECK_MKSTEMP],
-[
- KDE_CHECK_FUNC_EXT(mkstemp, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkstemp("/tmp/aaaXXXXXX");
-],
- [int mkstemp(char *)],
- [MKSTEMP])
-])
-
-AC_DEFUN([AC_CHECK_MKDTEMP],
-[
- KDE_CHECK_FUNC_EXT(mkdtemp, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkdtemp("/tmp/aaaXXXXXX");
-],
- [char *mkdtemp(char *)],
- [MKDTEMP])
-])
-
-
-AC_DEFUN([AC_CHECK_RES_INIT],
-[
- AC_MSG_CHECKING([if res_init needs -lresolv])
- kde_libs_safe="$LIBS"
- LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
- AC_TRY_LINK(
- [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
- ],
- [
- res_init();
- ],
- [
- LIBRESOLV="-lresolv"
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
- ],
- [ AC_MSG_RESULT(no) ]
- )
- LIBS=$kde_libs_safe
- AC_SUBST(LIBRESOLV)
-
- KDE_CHECK_FUNC_EXT(res_init,
- [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
- ],
- [res_init()],
- [int res_init(void)],
- [RES_INIT])
-])
-
-AC_DEFUN([AC_CHECK_STRLCPY],
-[
- KDE_CHECK_FUNC_EXT(strlcpy, [
-#include <string.h>
-],
-[ char buf[20];
- strlcpy(buf, "KDE function test", sizeof(buf));
-],
- [unsigned long strlcpy(char*, const char*, unsigned long)],
- [STRLCPY])
-])
-
-AC_DEFUN([AC_CHECK_STRLCAT],
-[
- KDE_CHECK_FUNC_EXT(strlcat, [
-#include <string.h>
-],
-[ char buf[20];
- buf[0]='\0';
- strlcat(buf, "KDE function test", sizeof(buf));
-],
- [unsigned long strlcat(char*, const char*, unsigned long)],
- [STRLCAT])
-])
-
-AC_DEFUN([AC_CHECK_RES_QUERY],
-[
- KDE_CHECK_FUNC_EXT(res_query, [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <netdb.h>
-],
-[
-res_query(NULL, 0, 0, NULL, 0);
-],
- [int res_query(const char *, int, int, unsigned char *, int)],
- [RES_QUERY])
-])
-
-AC_DEFUN([AC_CHECK_DN_SKIPNAME],
-[
- KDE_CHECK_FUNC_EXT(dn_skipname, [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-],
-[
-dn_skipname (NULL, NULL);
-],
- [int dn_skipname (unsigned char *, unsigned char *)],
- [DN_SKIPNAME])
-])
-
-
-AC_DEFUN([AC_FIND_GIF],
- [AC_MSG_CHECKING([for giflib])
-AC_CACHE_VAL(ac_cv_lib_gif,
-[ac_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
-else
-LIBS="$all_libraries -lgif"
-fi
-AC_TRY_LINK(dnl
-[
-#ifdef __cplusplus
-extern "C" {
-#endif
-int GifLastError(void);
-#ifdef __cplusplus
-}
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-],
- [return GifLastError();],
- eval "ac_cv_lib_gif=yes",
- eval "ac_cv_lib_gif=no")
-LIBS="$ac_save_LIBS"
-])dnl
-if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
-else
- AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
-fi
-])
-
-AC_DEFUN([KDE_FIND_JPEG_HELPER],
-[
-AC_MSG_CHECKING([for libjpeg$2])
-AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
-[
-ac_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(
-[
-#ifdef __cplusplus
-extern "C" {
-#endif
-void jpeg_CreateDecompress();
-#ifdef __cplusplus
-}
-#endif
-],
-[jpeg_CreateDecompress();],
- eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
- eval "ac_cv_lib_jpeg_$1=no")
-LIBS="$ac_save_LIBS"
-CFLAGS="$ac_save_CFLAGS"
-])
-
-if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
- LIBJPEG="$ac_cv_lib_jpeg_$1"
- AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
-else
- AC_MSG_RESULT(no)
- $3
-fi
-
-])
-
-AC_DEFUN([AC_FIND_JPEG],
-[
-dnl first look for libraries
-KDE_FIND_JPEG_HELPER(6b, 6b,
- KDE_FIND_JPEG_HELPER(normal, [],
- [
- LIBJPEG=
- ]
- )
-)
-
-dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
-dnl requires system dependent includes loaded before it)
-jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
-AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
-test "x$jpeg_incdir" = xNO && jpeg_incdir=
-
-dnl if headers _and_ libraries are missing, this is no error, and we
-dnl continue with a warning (the user will get no jpeg support in khtml)
-dnl if only one is missing, it means a configuration error, but we still
-dnl only warn
-if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
- AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
-else
- if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
- AC_MSG_WARN([
-There is an installation error in jpeg support. You seem to have only one
-of either the headers _or_ the libraries installed. You may need to either
-provide correct --with-extra-... options, or the development package of
-libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
-Disabling JPEG support.
-])
- else
- AC_MSG_WARN([libjpeg not found. disable JPEG support.])
- fi
- jpeg_incdir=
- LIBJPEG=
-fi
-
-AC_SUBST(LIBJPEG)
-AH_VERBATIM(_AC_CHECK_JPEG,
-[/*
- * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
- * headers and I'm too lazy to write a configure test as long as only
- * unixware is related
- */
-#ifdef _UNIXWARE
-#define HAVE_BOOLEAN
-#endif
-])
-])
-
-AC_DEFUN([KDE_CHECK_QT_JPEG],
-[
-if test -n "$LIBJPEG"; then
-AC_MSG_CHECKING([if Qt needs $LIBJPEG])
-AC_CACHE_VAL(kde_cv_qt_jpeg,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
-LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(
-[#include <qapplication.h>],
- [
- int argc;
- char** argv;
- QApplication app(argc, argv);],
- eval "kde_cv_qt_jpeg=no",
- eval "kde_cv_qt_jpeg=yes")
-LIBS="$ac_save_LIBS"
-CXXFLAGS="$ac_save_CXXFLAGS"
-AC_LANG_RESTORE
-fi
-])
-
-if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
- AC_MSG_RESULT(yes)
- LIBJPEG_QT='$(LIBJPEG)'
-else
- AC_MSG_RESULT(no)
- LIBJPEG_QT=
-fi
-
-])
-
-AC_DEFUN([AC_FIND_ZLIB],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_MSG_CHECKING([for libz])
-AC_CACHE_VAL(ac_cv_lib_z,
-[
-kde_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(dnl
-[
-#include<zlib.h>
-#include<string.h>
-],
-[
- char buf[42];
- gzFile f = (gzFile) 0;
- /* this would segfault.. but we only link, don't run */
- (void) gzgets(f, buf, sizeof(buf));
-
- return (strcmp(zlibVersion(), ZLIB_VERSION) == 0);
-],
- eval "ac_cv_lib_z='-lz'",
- eval "ac_cv_lib_z=no")
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if test ! "$ac_cv_lib_z" = no; then
- AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
- LIBZ="$ac_cv_lib_z"
- AC_MSG_RESULT($ac_cv_lib_z)
-else
- AC_MSG_ERROR(not found.
- Possibly configure picks up an outdated version
- installed by XFree86. Remove it from your system.
-
- Check your installation and look into config.log)
- LIBZ=""
-fi
-AC_SUBST(LIBZ)
-])
-
-AC_DEFUN([KDE_TRY_TIFFLIB],
-[
-AC_MSG_CHECKING([for libtiff $1])
-
-AC_CACHE_VAL(kde_cv_libtiff_$1,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
-else
-LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
-fi
-kde_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
-[
-#include<tiffio.h>
-],
- [return (TIFFOpen( "", "r") == 0); ],
-[
- kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
-], [
- kde_cv_libtiff_$1=no
-])
-
-LIBS="$kde_save_LIBS"
-CXXFLAGS="$kde_save_CXXFLAGS"
-AC_LANG_RESTORE
-])
-
-if test "$kde_cv_libtiff_$1" = "no"; then
- AC_MSG_RESULT(no)
- LIBTIFF=""
- $3
-else
- LIBTIFF="$kde_cv_libtiff_$1"
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
- $2
-fi
-
-])
-
-AC_DEFUN([AC_FIND_TIFF],
-[
-AC_REQUIRE([K_PATH_X])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_REQUIRE([AC_FIND_JPEG])
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
-KDE_TRY_TIFFLIB(tiff, [],
- KDE_TRY_TIFFLIB(tiff34))
-
-AC_SUBST(LIBTIFF)
-])
-
-AC_DEFUN([KDE_FIND_LIBEXR],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_CACHE_VAL(ac_cv_libexr,
-[
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- fi
-
- AC_MSG_CHECKING([for OpenEXR libraries])
-
- if test "$PKG_CONFIG" = "no" ; then
- AC_MSG_RESULT(no)
- 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
- if ! $PKG_CONFIG --exists OpenEXR ; then
- AC_MSG_RESULT(no)
- EXRSTATUS=no
- else
- if ! $PKG_CONFIG --atleast-version="1.1.1" OpenEXR ; then
- AC_MSG_RESULT(no)
- EXRSTATUS=old
- else
- kde_save_LIBS="$LIBS"
- LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- kde_save_CXXFLAGS="$CXXFLAGS"
- EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR`
- CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS"
-
- AC_TRY_LINK(dnl
- [
- #include <ImfRgbaFile.h>
- ],
- [
- using namespace Imf;
- RgbaInputFile file ("dummy");
- return 0;
- ],
- eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'",
- eval "ac_cv_libexr=no"
- )
- LIBS="$kde_save_LIBS"
- CXXFLAGS="$kde_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])dnl
- if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR])
- LIB_EXR="$ac_cv_libexr"
- AC_MSG_RESULT($ac_cv_libexr)
- else
- AC_MSG_RESULT(no)
- LIB_EXR=""
- fi
- fi
- fi
- fi
- AC_SUBST(LIB_EXR)
- AC_SUBST(EXR_FLAGS)
-])
-
-
-
-AC_DEFUN([AC_FIND_PNG],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_MSG_CHECKING([for libpng])
-AC_CACHE_VAL(ac_cv_lib_png,
-[
-kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
-else
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
-fi
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
- [
- #include<png.h>
- ],
- [
- png_structp png_ptr = png_create_read_struct( /* image ptr */
- PNG_LIBPNG_VER_STRING, 0, 0, 0 );
- return( png_ptr != 0 );
- ],
- eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
- eval "ac_cv_lib_png=no"
-)
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
- LIBPNG="$ac_cv_lib_png"
- AC_SUBST(LIBPNG)
- AC_MSG_RESULT($ac_cv_lib_png)
-else
- AC_MSG_RESULT(no)
- LIBPNG=""
- AC_SUBST(LIBPNG)
-fi
-])
-
-
-AC_DEFUN([AC_FIND_JASPER],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_JPEG])
-AC_MSG_CHECKING([for jasper])
-AC_CACHE_VAL(ac_cv_jasper,
-[
-kde_save_LIBS="$LIBS"
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
- [
- #include<jasper/jasper.h>
- ],
- [
- return( jas_init() );
- ],
- eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
- eval "ac_cv_jasper=no"
-)
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
- LIB_JASPER="$ac_cv_jasper"
- AC_MSG_RESULT($ac_cv_jasper)
-else
- AC_MSG_RESULT(no)
- LIB_JASPER=""
-fi
-AC_SUBST(LIB_JASPER)
-])
-
-AC_DEFUN([AC_CHECK_BOOL],
-[
- AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
-])
-
-AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
-[
-AC_MSG_CHECKING(if you need GNU extensions)
-AC_CACHE_VAL(ac_cv_gnu_extensions,
-[
-cat > conftest.c << EOF
-#include <features.h>
-
-#ifdef __GNU_LIBRARY__
-yes
-#endif
-EOF
-
-if (eval "$ac_cpp conftest.c") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_gnu_extensions=yes
-else
- ac_cv_gnu_extensions=no
-fi
-])
-
-AC_MSG_RESULT($ac_cv_gnu_extensions)
-if test "$ac_cv_gnu_extensions" = "yes"; then
- AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
-fi
-])
-
-AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
-[
-AC_MSG_CHECKING([whether $CXX supports -$1])
-kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
-AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -$1"
- AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
- CXXFLAGS="$save_CXXFLAGS"
- AC_LANG_RESTORE
-])
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT(yes)
- :
- $2
-else
- AC_MSG_RESULT(no)
- :
- $3
-fi
-])
-
-AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG],
-[
-AC_MSG_CHECKING([whether $CC supports -$1])
-kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
-AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache,
-[
- AC_LANG_SAVE
- AC_LANG_C
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -$1"
- AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], [])
- CFLAGS="$save_CFLAGS"
- AC_LANG_RESTORE
-])
-if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT(yes)
- :
- $2
-else
- AC_MSG_RESULT(no)
- :
- $3
-fi
-])
-
-
-dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
-dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
-dnl it's all white-space separated
-AC_DEFUN([AC_REMOVE_FORBIDDEN],
-[ __val=$$1
- __forbid=" $2 "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- $1=$__new
- fi
-])
-
-
-AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
-[
- AC_MSG_CHECKING([whether $CC is blacklisted])
-
- dnl In theory we have tu run this test against $CC and $CXX
- dnl in C and in C++ mode, because its perfectly legal for
- dnl the user to mix compiler versions, since C has a defined
- dnl ABI.
- dnl
- dnl For now, we assume the user is not on crack.
-
- AC_TRY_COMPILE([
-#ifdef __GNUC__
-#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
-choke me
-#endif
-#endif
-], ,
- kde_bad_compiler=no,
- kde_bad_compiler=yes
-)
-
- AC_MSG_RESULT($kde_bad_compiler)
-
-if test "$kde_bad_compiler" = "yes"; then
- AC_MSG_ERROR([
-
-This particular compiler version is blacklisted because it
-is known to miscompile KDE. Please use a newer version, or
-if that is not yet available, choose an older version.
-
-Please do not report a bug or bother us reporting this
-configure error. We know about it, and we introduced
-it by intention to avoid untraceable bugs or crashes in KDE.
-
-])
-fi
-
-])
-
-
-AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH],
-[
- AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline],
- kde_cv_opt_noinline_match,
- [
- kde_cv_opt_noinline_match=irrelevant
- dnl if we don't use both -O2 and -fno-inline, this check is moot
- if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
- && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
-
- ac_cflags_save="$CFLAGS"
- CFLAGS="$CFLAGS -D_USE_GNU"
-
- AC_TRY_LINK([
- #include <string.h>
-], [ const char *pt, *et;
- et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ;
-],
- kde_cv_opt_noinline_match=yes,
- kde_cv_opt_noinline_match=no
- )
-
- CFLAGS="$ac_cflags_save"
- fi
- ])
-])
-
-
-dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
-AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
-[dnl
-if test "x$kde_use_qt_emb" != "xyes"; then
- AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
- AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
-else
- AC_REMOVE_FORBIDDEN(CXX, [-rpath])
- AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
-fi
-])
-
-AC_DEFUN([AC_CHECK_COMPILERS],
-[
- AC_ARG_ENABLE(debug,
- AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
- [
- case $enableval in
- yes)
- kde_use_debug_code="yes"
- kde_use_debug_define=no
- ;;
- full)
- kde_use_debug_code="full"
- kde_use_debug_define=no
- ;;
- *)
- kde_use_debug_code="no"
- kde_use_debug_define=yes
- ;;
- esac
- ],
- [kde_use_debug_code="no"
- kde_use_debug_define=no
- ])
-
- dnl Just for configure --help
- AC_ARG_ENABLE(dummyoption,
- AC_HELP_STRING([--disable-debug],
- [disables debug output and debug symbols [default=no]]),
- [],[])
-
- AC_ARG_ENABLE(strict,
- AC_HELP_STRING([--enable-strict],
- [compiles with strict compiler options (may not work!)]),
- [
- if test $enableval = "no"; then
- kde_use_strict_options="no"
- else
- kde_use_strict_options="yes"
- fi
- ], [kde_use_strict_options="no"])
-
- AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
- [
- if test $enableval = "no"; then
- kde_use_warnings="no"
- else
- kde_use_warnings="yes"
- fi
- ], [kde_use_warnings="yes"])
-
- dnl enable warnings for debug build
- if test "$kde_use_debug_code" != "no"; then
- kde_use_warnings=yes
- fi
-
- AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
- [kde_use_profiling=$enableval],
- [kde_use_profiling="no"]
- )
-
- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
- CFLAGS=" $CFLAGS"
-
- AC_PROG_CC
-
- AC_PROG_CPP
-
- if test "$GCC" = "yes"; then
- if test "$kde_use_debug_code" != "no"; then
- if test $kde_use_debug_code = "full"; then
- CFLAGS="-g3 -fno-inline $CFLAGS"
- else
- CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
- fi
- else
- CFLAGS="-O2 $CFLAGS"
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CFLAGS="-DNDEBUG $CFLAGS"
- fi
-
-
- case "$host" in
- *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
- *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
- esac
-
- if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
- LDFLAGS=""
- fi
-
- CXXFLAGS=" $CXXFLAGS"
-
- AC_PROG_CXX
-
- KDE_CHECK_FOR_BAD_COMPILER
-
- if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
- if test "$kde_use_debug_code" != "no"; then
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
- else
- if test "$kde_use_debug_code" = "full"; then
- CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
- else
- CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
- fi
- fi
- KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
-
- dnl convenience compiler flags
- KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
- AC_SUBST(WOVERLOADED_VIRTUAL)
- else
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K3 $CXXFLAGS"
- else
- CXXFLAGS="-O2 $CXXFLAGS"
- fi
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
- fi
-
- if test "$kde_use_profiling" = "yes"; then
- KDE_CHECK_COMPILER_FLAG(pg,
- [
- CFLAGS="-pg $CFLAGS"
- CXXFLAGS="-pg $CXXFLAGS"
- ])
- fi
-
- if test "$kde_use_warnings" = "yes"; then
- if test "$GCC" = "yes"; then
- CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
- case $host in
- *-*-linux-gnu)
- CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
- CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
- KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
- KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
- ;;
- esac
- KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
- KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
- dnl ### FIXME: revert for KDE 4
- KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
- fi
- fi
-
- if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
- CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
- fi
-
- AC_ARG_ENABLE(pch,
- AC_HELP_STRING([--enable-pch],
- [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
- [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
-
- HAVE_GCC_VISIBILITY=0
- AC_SUBST([HAVE_GCC_VISIBILITY])
-
- if test "$GXX" = "yes"; then
- gcc_no_reorder_blocks=NO
- KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES])
- if test $kde_use_debug_code != "no" && \
- test $kde_use_debug_code != "full" && \
- test "YES" = "$gcc_no_reorder_blocks" ; then
- CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
- CFLAGS="$CFLAGS -fno-reorder-blocks"
- fi
- KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
- KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
- KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
- KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= )
- ENABLE_PERMISSIVE_FLAG="-fpermissive"
-
- if test "$kde_use_pch" = "yes"; then
- AC_MSG_CHECKING(whether gcc supports precompiling c header files)
- echo >conftest.h
- if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- AC_MSG_RESULT(yes)
- else
- kde_gcc_supports_pch=no
- AC_MSG_RESULT(no)
- fi
- if test "$kde_gcc_supports_pch" = "yes"; then
- AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
- if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- AC_MSG_RESULT(yes)
- else
- kde_gcc_supports_pch=no
- AC_MSG_RESULT(no)
- fi
- fi
- rm -f conftest.h conftest.h.gch
- fi
-
- KDE_CHECK_FOR_OPT_NOINLINE_MATCH
- if test "x$kde_cv_opt_noinline_match" = "xno" ; then
- CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
- fi
- fi
- AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
- if test "$CXX" = "KCC"; then
- dnl unfortunately we currently cannot disable exception support in KCC
- dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
- dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
- dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= )
-
- if test "$kde_use_pch" = "yes"; then
- dnl TODO: support --pch-dir!
- KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
- dnl the below works (but the dir must exist), but it's
- dnl useless for a whole package.
- dnl The are precompiled headers for each source file, so when compiling
- dnl from scratch, it doesn't make a difference, and they take up
- dnl around ~5Mb _per_ sourcefile.
- dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
- dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
- fi
- dnl this flag controls inlining. by default KCC inlines in optimisation mode
- dnl all implementations that are defined inside the class {} declaration.
- dnl because of templates-compatibility with broken gcc compilers, this
- dnl can cause excessive inlining. This flag limits it to a sane level
- KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
- KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
- KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
- KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
- dnl Some source files are shared between multiple executables
- dnl (or libraries) and some of those need template instantiations.
- dnl In that case KCC needs to compile those sources with
- dnl --one_instantiation_per_object. To make it easy for us we compile
- dnl _all_ objects with that flag (--one_per is a shorthand).
- KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
- fi
- AC_SUBST(USE_EXCEPTIONS)
- dnl obsolete macro - provided to keep things going
- USE_RTTI=
- AC_SUBST(USE_RTTI)
-
- case "$host" in
- *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
- *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
- *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
- *-*-solaris*)
- if test "$GXX" = yes; then
- libstdcpp=`$CXX -print-file-name=libstdc++.so`
- if test ! -f $libstdcpp; then
- AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
- fi
- fi
- ;;
- esac
-
- AC_VALIDIFY_CXXFLAGS
-
- AC_PROG_CXXCPP
-
- if test "$GCC" = yes; then
- NOOPT_CFLAGS=-O0
- fi
- KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
-
- AC_ARG_ENABLE(coverage,
- AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
- if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker="-lgcc"
- elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker=""
- else
- AC_MSG_ERROR([coverage with your compiler is not supported])
- fi
- CFLAGS="$CFLAGS $ac_coverage_compiler"
- CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
- LDFLAGS="$LDFLAGS $ac_coverage_linker"
- ])
-
- AC_SUBST(NOOPT_CXXFLAGS)
- AC_SUBST(NOOPT_CFLAGS)
- AC_SUBST(ENABLE_PERMISSIVE_FLAG)
-
- KDE_CHECK_NEW_LDFLAGS
- KDE_CHECK_FINAL
- KDE_CHECK_CLOSURE
- KDE_CHECK_NMCHECK
-
- ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
-])
-
-AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
- [
- AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- safe_CXXFLAGS=$CXXFLAGS
- safe_LDFLAGS=$LDFLAGS
- CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
- LDFLAGS="$LDFLAGS -shared -fPIC"
-
- AC_TRY_LINK(
- [
- /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
- #include <string>
- int some_function( void ) __attribute__ ((visibility("default")));
- int some_function( void )
- {
- std::string s("blafasel");
- return 0;
- }
- ], [/* elvis is alive */],
- kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
-
- CXXFLAGS=$safe_CXXFLAGS
- LDFLAGS=$safe_LDFLAGS
- AC_LANG_RESTORE
- ]
- )
-
- if test x$kde_cv_val_gcc_visibility_bug = xno; then
- CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
- fi
- ]
-)
-
-AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
-[
- AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
-
- AC_MSG_CHECKING([grepping for visibility push/pop in headers])
-
- if test "x$GXX" = "xyes"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_EGREP_CPP(
- [GCC visibility push],
- [ #include <exception>
- ],
- [
- AC_MSG_RESULT(yes)
- kde_stdc_visibility_patched=yes ],
- [
- AC_MSG_RESULT(no)
- AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for
- visibility support. Disabling -fvisibility=hidden])
-
- kde_stdc_visibility_patched=no ])
-
- AC_LANG_RESTORE
-
- kde_have_gcc_visibility=no
- KDE_CHECK_COMPILER_FLAG(fvisibility=hidden,
- [
- kde_have_gcc_visibility=yes
- dnl the whole toolchain is just a mess, gcc is just too buggy
- dnl to handle STL with visibility enabled. Lets reconsider
- dnl when gcc 4.2 is out or when things get fixed in the compiler.
- dnl Contact mueller@kde.org for details.
- AC_ARG_ENABLE(gcc-hidden-visibility,
- AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
- [kde_have_gcc_visibility=$enableval],
- [kde_have_gcc_visibility=no])
-
- AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- safe_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS $all_includes"
-
- AC_TRY_COMPILE(
- [
-#include <qglobal.h>
-#if Q_EXPORT - 0 != 0
-/* if this compiles, then Q_EXPORT is undefined */
-/* if Q_EXPORT is nonempty, this will break compilation */
-#endif
- ], [/* elvis is alive */],
- kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
-
- CXXFLAGS=$safe_CXXFLAGS
- AC_LANG_RESTORE
- ]
- )
-
- if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
- CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
- KDE_CHECK_VISIBILITY_GCC_BUG
- HAVE_GCC_VISIBILITY=1
- AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
- fi
- ])
- fi
-])
-
-AC_DEFUN([KDE_ADD_DEPENDENCIES],
-[
- [A]M_DEPENDENCIES(CC)
- [A]M_DEPENDENCIES(CXX)
-])
-
-dnl just a wrapper to clean up configure.in
-AC_DEFUN([KDE_PROG_LIBTOOL],
-[
-AC_REQUIRE([AC_CHECK_COMPILERS])
-AC_REQUIRE([AC_ENABLE_SHARED])
-AC_REQUIRE([AC_ENABLE_STATIC])
-
-AC_REQUIRE([AC_LIBTOOL_DLOPEN])
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_OBJEXT
-AC_EXEEXT
-
-AM_PROG_LIBTOOL
-AC_LIBTOOL_CXX
-
-LIBTOOL_SHELL="/bin/sh ./libtool"
-# LIBTOOL="$LIBTOOL --silent"
-KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
-AC_SUBST(KDE_PLUGIN)
-
-# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
-KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
-AC_SUBST(KDE_CHECK_PLUGIN)
-
-# we patch configure quite some so we better keep that consistent for incremental runs
-AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
-])
-
-AC_DEFUN([KDE_CHECK_LIB64],
-[
- AC_ARG_ENABLE(libsuffix,
- AC_HELP_STRING([--enable-libsuffix],
- [/lib directory suffix (64,32,none,auto[=default])]),
- kdelibsuff=$enableval, kdelibsuff="auto")
-
- if test "$kdelibsuff" = "auto"; then
-
-cat > conftest.c << EOF
-#include <stdio.h>
-int main() {
- return 0;
-}
-EOF
- kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
- s,.*/lib\([[^\/]]*\)/.*,\1,
- p
-}'`
- rm -rf conftest.*
- fi
-
- if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
- kdelibsuff=
- fi
- if test -z "$kdelibsuff"; then
- AC_MSG_RESULT([not using lib directory suffix])
- AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
- else
- if test "$libdir" = '${exec_prefix}/lib'; then
- libdir="$libdir${kdelibsuff}"
- AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms
- fi
- AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
- AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
- fi
-])
-
-AC_DEFUN([KDE_CHECK_TYPES],
-[ AC_CHECK_SIZEOF(int, 4)dnl
- AC_CHECK_SIZEOF(short)dnl
- AC_CHECK_SIZEOF(long, 4)dnl
- AC_CHECK_SIZEOF(char *, 4)dnl
-])dnl
-
-dnl Not used - kept for compat only?
-AC_DEFUN([KDE_DO_IT_ALL],
-[
-AC_CANONICAL_SYSTEM
-AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE($1, $2)
-AM_DISABLE_LIBRARIES
-AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
-AC_CHECK_COMPILERS
-KDE_PROG_LIBTOOL
-AM_KDE_WITH_NLS
-AC_PATH_KDE
-])
-
-AC_DEFUN([AC_CHECK_RPATH],
-[
-AC_MSG_CHECKING(for rpath)
-AC_ARG_ENABLE(rpath,
- AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
- USE_RPATH=$enableval, USE_RPATH=yes)
-
-if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
-
- KDE_RPATH="-R \$(libdir)"
-
- if test "$kde_libraries" != "$libdir"; then
- KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
- fi
-
- if test -n "$qt_libraries"; then
- KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
- fi
- dnl $x_libraries is set to /usr/lib in case
- if test -n "$X_LDFLAGS"; then
- X_RPATH="-R \$(x_libraries)"
- KDE_RPATH="$KDE_RPATH $X_RPATH"
- fi
- if test -n "$KDE_EXTRA_RPATH"; then
- KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
- fi
-fi
-AC_SUBST(KDE_EXTRA_RPATH)
-AC_SUBST(KDE_RPATH)
-AC_SUBST(X_RPATH)
-AC_MSG_RESULT($USE_RPATH)
-])
-
-dnl Check for the type of the third argument of getsockname
-AC_DEFUN([AC_CHECK_SOCKLEN_T],
-[
- AC_MSG_CHECKING(for socklen_t)
- AC_CACHE_VAL(kde_cv_socklen_t,
- [
- AC_LANG_PUSH(C++)
- kde_cv_socklen_t=no
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- ],
- [
- socklen_t len;
- getpeername(0,0,&len);
- ],
- [
- kde_cv_socklen_t=yes
- kde_cv_socklen_t_equiv=socklen_t
- ])
- AC_LANG_POP(C++)
- ])
- AC_MSG_RESULT($kde_cv_socklen_t)
- if test $kde_cv_socklen_t = no; then
- AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
- AC_CACHE_VAL(kde_cv_socklen_t_equiv,
- [
- kde_cv_socklen_t_equiv=int
- AC_LANG_PUSH(C++)
- for t in int size_t unsigned long "unsigned long"; do
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- ],
- [
- $t len;
- getpeername(0,0,&len);
- ],
- [
- kde_cv_socklen_t_equiv="$t"
- break
- ])
- done
- AC_LANG_POP(C++)
- ])
- AC_MSG_RESULT($kde_cv_socklen_t_equiv)
- fi
- AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
- [type to use in place of socklen_t if not defined])
- AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
- [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
-])
-
-dnl This is a merge of some macros out of the gettext aclocal.m4
-dnl since we don't need anything, I took the things we need
-dnl the copyright for them is:
-dnl >
-dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-dnl This Makefile.in is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-dnl >
-dnl for this file it is relicensed under LGPL
-
-AC_DEFUN([AM_KDE_WITH_NLS],
- [
- dnl If we use NLS figure out what method
-
- AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
- [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
- AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- MSGFMT=$GMSGFMT
- AC_SUBST(GMSGFMT)
- AC_SUBST(MSGFMT)
-
- AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext programs is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
- AC_SUBST(XGETTEXT)
-
- ])
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# serial 1
-# Stephan Kulow: I appended a _KDE against name conflicts
-
-dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-
-AC_DEFUN([AM_LC_MESSAGES],
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
- fi
- fi])
-
-dnl From Jim Meyering.
-dnl FIXME: migrate into libit.
-
-AC_DEFUN([AM_FUNC_OBSTACK],
-[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
- [AC_TRY_LINK([#include "obstack.h"],
- [struct obstack *mem;obstack_free(mem,(char *) 0)],
- am_cv_func_obstack=yes,
- am_cv_func_obstack=no)])
- if test $am_cv_func_obstack = yes; then
- AC_DEFINE(HAVE_OBSTACK)
- else
- LIBOBJS="$LIBOBJS obstack.o"
- fi
-])
-
-dnl From Jim Meyering. Use this if you use the GNU error.[ch].
-dnl FIXME: Migrate into libit
-
-AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
-[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
- [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
- am_cv_lib_error_at_line=yes,
- am_cv_lib_error_at_line=no)])
- if test $am_cv_lib_error_at_line = no; then
- LIBOBJS="$LIBOBJS error.o"
- fi
- AC_SUBST(LIBOBJS)dnl
-])
-
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-# Stephan Kulow: I put a KDE in it to avoid name conflicts
-
-AC_DEFUN([AM_KDE_GNU_GETTEXT],
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([AM_KDE_WITH_NLS])dnl
- AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
-__argz_count __argz_stringify __argz_next])
-
- AC_MSG_CHECKING(for stpcpy)
- AC_CACHE_VAL(kde_cv_func_stpcpy,
- [
- kde_safe_cxxflags=$CXXFLAGS
- CXXFLAGS="-Werror"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([
- #include <string.h>
- ],
- [
- char buffer[200];
- stpcpy(buffer, buffer);
- ],
- kde_cv_func_stpcpy=yes,
- kde_cv_func_stpcpy=no)
- AC_LANG_RESTORE
- CXXFLAGS=$kde_safe_cxxflags
- ])
- AC_MSG_RESULT($kde_cv_func_stpcpy)
- if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
- AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
- fi
-
- AM_LC_MESSAGES
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- ])
-
-AC_DEFUN([AC_HAVE_XPM],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
- test -z "$XPM_INCLUDE" && XPM_INCLUDE=
-
- AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
- xpm_test=$withval, xpm_test="yes")
- if test "x$xpm_test" = xno; then
- ac_cv_have_xpm=no
- else
- AC_MSG_CHECKING(for XPM)
- AC_CACHE_VAL(ac_cv_have_xpm,
- [
- ac_save_ldflags="$LDFLAGS"
- ac_save_cflags="$CFLAGS"
- if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
- LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
- else
- LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
- fi
- CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
- test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
- AC_TRY_LINK([#include <X11/xpm.h>],[],
- ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
- LDFLAGS="$ac_save_ldflags"
- CFLAGS="$ac_save_cflags"
- ])dnl
-
- if test "$ac_cv_have_xpm" = no; then
- AC_MSG_RESULT(no)
- XPM_LDFLAGS=""
- XPMINC=""
- $2
- else
- AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
- if test "$XPM_LDFLAGS" = ""; then
- XPMLIB='-lXpm $(LIB_X11)'
- else
- XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
- fi
- if test "$XPM_INCLUDE" = ""; then
- XPMINC=""
- else
- XPMINC="-I$XPM_INCLUDE"
- fi
- AC_MSG_RESULT(yes)
- $1
- fi
- fi
- AC_SUBST(XPMINC)
- AC_SUBST(XPMLIB)
-])
-
-AC_DEFUN([AC_HAVE_DPMS],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
- test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
- DPMS_LIB=
-
- AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
- dpms_test=$withval, dpms_test="yes")
- if test "x$dpms_test" = xno; then
- ac_cv_have_dpms=no
- else
- AC_MSG_CHECKING(for DPMS)
- dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
- dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
- AC_CACHE_VAL(ac_cv_have_dpms,
- [
- if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
- AC_MSG_RESULT(no)
- ac_cv_have_dpms="no"
- else
- ac_save_ldflags="$LDFLAGS"
- ac_save_cflags="$CFLAGS"
- ac_save_libs="$LIBS"
- LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
- LIBS="-lX11 -lXext $LIBSOCKET"
- CFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
- AC_TRY_LINK([
- #include <X11/Xproto.h>
- #include <X11/X.h>
- #include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>
- int foo_test_dpms()
- { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
- ac_cv_have_dpms="yes", [
- LIBS="-lXdpms $LIBS"
- AC_TRY_LINK([
- #include <X11/Xproto.h>
- #include <X11/X.h>
- #include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>
- int foo_test_dpms()
- { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
- [
- ac_cv_have_dpms="-lXdpms"
- ],ac_cv_have_dpms="no")
- ])
- LDFLAGS="$ac_save_ldflags"
- CFLAGS="$ac_save_cflags"
- LIBS="$ac_save_libs"
- fi
- ])dnl
-
- if test "$ac_cv_have_dpms" = no; then
- AC_MSG_RESULT(no)
- DPMS_LDFLAGS=""
- DPMSINC=""
- $2
- else
- AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
- if test "$ac_cv_have_dpms" = "-lXdpms"; then
- DPMS_LIB="-lXdpms"
- fi
- if test "$DPMS_LDFLAGS" = ""; then
- DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
- else
- DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
- fi
- if test "$DPMS_INCLUDE" = ""; then
- DPMSINC=""
- else
- DPMSINC="-I$DPMS_INCLUDE"
- fi
- AC_MSG_RESULT(yes)
- $1
- fi
- fi
- ac_save_cflags="$CFLAGS"
- CFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
- AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
- [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
- AC_CHECK_DECL(DPMSCapable,
- AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
- [#include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>])
- AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
- [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
- AC_CHECK_DECL(DPMSInfo,
- AC_DEFINE(HAVE_DPMSINFO_PROTO),,
- [#include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>])
- CFLAGS="$ac_save_cflags"
- AC_SUBST(DPMSINC)
- AC_SUBST(DPMSLIB)
-])
-
-AC_DEFUN([AC_HAVE_GL],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$GL_LDFLAGS" && GL_LDFLAGS=
- test -z "$GL_INCLUDE" && GL_INCLUDE=
-
- AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
- gl_test=$withval, gl_test="yes")
- if test "x$kde_use_qt_emb" = "xyes"; then
- # GL and Qt Embedded is a no-go for now.
- ac_cv_have_gl=no
- elif test "x$gl_test" = xno; then
- ac_cv_have_gl=no
- else
- AC_MSG_CHECKING(for GL)
- AC_CACHE_VAL(ac_cv_have_gl,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_ldflags=$LDFLAGS
- ac_save_cxxflags=$CXXFLAGS
- ac_save_libs=$LIBS
- LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
- LIBS="$LIBS -lGL -lGLU"
- test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
- LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
- CXXFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
- AC_TRY_LINK([#include <GL/gl.h>
-#include <GL/glu.h>
-], [],
- ac_cv_have_gl="yes", ac_cv_have_gl="no")
- AC_LANG_RESTORE
- LDFLAGS=$ac_save_ldflags
- CXXFLAGS=$ac_save_cxxflags
- LIBS=$ac_save_libs
- ])dnl
-
- if test "$ac_cv_have_gl" = "no"; then
- AC_MSG_RESULT(no)
- GL_LDFLAGS=""
- GLINC=""
- $2
- else
- AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
- if test "$GL_LDFLAGS" = ""; then
- GLLIB='-lGLU -lGL $(LIB_X11)'
- else
- GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
- fi
- if test "$GL_INCLUDE" = ""; then
- GLINC=""
- else
- GLINC="-I$GL_INCLUDE"
- fi
- AC_MSG_RESULT($ac_cv_have_gl)
- $1
- fi
- fi
- AC_SUBST(GLINC)
- AC_SUBST(GLLIB)
-])
-
-
- dnl shadow password and PAM magic - maintained by ossi@kde.org
-
-AC_DEFUN([KDE_PAM], [
- AC_REQUIRE([KDE_CHECK_LIBDL])
-
- want_pam=
- AC_ARG_WITH(pam,
- AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
- [ if test "x$withval" = "xyes"; then
- want_pam=yes
- pam_service=kde
- elif test "x$withval" = "xno"; then
- want_pam=no
- else
- want_pam=yes
- pam_service=$withval
- fi
- ], [ pam_service=kde ])
-
- use_pam=
- PAMLIBS=
- if test "x$want_pam" != xno; then
- AC_CHECK_LIB(pam, pam_start, [
- AC_CHECK_HEADER(security/pam_appl.h,
- [ pam_header=security/pam_appl.h ],
- [ AC_CHECK_HEADER(pam/pam_appl.h,
- [ pam_header=pam/pam_appl.h ],
- [
- AC_MSG_WARN([PAM detected, but no headers found!
-Make sure you have the necessary development packages installed.])
- ]
- )
- ]
- )
- ], , $LIBDL)
- if test -z "$pam_header"; then
- if test "x$want_pam" = xyes; then
- AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
- fi
- else
- AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
- PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
- use_pam=yes
-
- dnl darwin claims to be something special
- if test "$pam_header" = "pam/pam_appl.h"; then
- AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
- fi
-
- dnl test whether struct pam_message is const (Linux) or not (Sun)
- AC_MSG_CHECKING(for const pam_message)
- AC_EGREP_HEADER([struct pam_message], $pam_header,
- [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
- [AC_MSG_RESULT([const: Linux-type PAM])],
- [AC_MSG_RESULT([nonconst: Sun-type PAM])
- AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
- )],
- [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
- fi
- fi
-
- AC_SUBST(PAMLIBS)
-])
-
-dnl DEF_PAM_SERVICE(arg name, full name, define name)
-AC_DEFUN([DEF_PAM_SERVICE], [
- AC_ARG_WITH($1-pam,
- AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
- [ if test "x$use_pam" = xyes; then
- $3_PAM_SERVICE=$withval
- else
- AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
-You may want to enforce it by using --with-pam.])
- fi
- ],
- [ if test "x$use_pam" = xyes; then
- $3_PAM_SERVICE="$pam_service"
- fi
- ])
- if test -n "$$3_PAM_SERVICE"; then
- AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
- AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
- fi
- AC_SUBST($3_PAM_SERVICE)
-])
-
-AC_DEFUN([KDE_SHADOWPASSWD], [
- AC_REQUIRE([KDE_PAM])
-
- AC_CHECK_LIB(shadow, getspent,
- [ LIBSHADOW="-lshadow"
- ac_use_shadow=yes
- ],
- [ dnl for UnixWare
- AC_CHECK_LIB(gen, getspent,
- [ LIBGEN="-lgen"
- ac_use_shadow=yes
- ],
- [ AC_CHECK_FUNC(getspent,
- [ ac_use_shadow=yes ],
- [ ac_use_shadow=no ])
- ])
- ])
- AC_SUBST(LIBSHADOW)
- AC_SUBST(LIBGEN)
-
- AC_MSG_CHECKING([for shadow passwords])
-
- AC_ARG_WITH(shadow,
- AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
- [ if test "x$withval" != "xno"; then
- use_shadow=yes
- else
- use_shadow=no
- fi
- ], [
- use_shadow="$ac_use_shadow"
- ])
-
- if test "x$use_shadow" = xyes; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
- else
- AC_MSG_RESULT(no)
- LIBSHADOW=
- LIBGEN=
- fi
-
- dnl finally make the relevant binaries setuid root, if we have shadow passwds.
- dnl this still applies, if we could use it indirectly through pam.
- if test "x$use_shadow" = xyes ||
- ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
- case $host in
- *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
- SETUIDFLAGS="-m 4755 -o root";;
- *)
- SETUIDFLAGS="-m 4755";;
- esac
- fi
- AC_SUBST(SETUIDFLAGS)
-
-])
-
-AC_DEFUN([KDE_PASSWDLIBS], [
- AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
- AC_REQUIRE([KDE_PAM])
- AC_REQUIRE([KDE_SHADOWPASSWD])
-
- if test "x$use_pam" = "xyes"; then
- PASSWDLIBS="$PAMLIBS"
- else
- PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
- fi
-
- dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
- dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires
- dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
- dnl may need to read /etc/master.passwd).
- case $host in
- *-*-freebsd*)
- SETUIDFLAGS="-m 4755 -o root"
- ;;
- *)
- ;;
- esac
-
- AC_SUBST(PASSWDLIBS)
-])
-
-AC_DEFUN([KDE_CHECK_LIBDL],
-[
-AC_CHECK_LIB(dl, dlopen, [
-LIBDL="-ldl"
-ac_cv_have_dlfcn=yes
-])
-
-AC_CHECK_LIB(dld, shl_unload, [
-LIBDL="-ldld"
-ac_cv_have_shload=yes
-])
-
-AC_SUBST(LIBDL)
-])
-
-AC_DEFUN([KDE_CHECK_DLOPEN],
-[
-KDE_CHECK_LIBDL
-AC_CHECK_HEADERS(dlfcn.h dl.h)
-if test "$ac_cv_header_dlfcn_h" = "no"; then
- ac_cv_have_dlfcn=no
-fi
-
-if test "$ac_cv_header_dl_h" = "no"; then
- ac_cv_have_shload=no
-fi
-
-dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
-dnl (MM)
-AC_ARG_ENABLE(dlopen,
-AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
-enable_dlopen=$enableval,
-enable_dlopen=yes)
-
-# override the user's opinion, if we know it better ;)
-if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
- enable_dlopen=no
-fi
-
-if test "$ac_cv_have_dlfcn" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
-fi
-
-if test "$ac_cv_have_shload" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
-fi
-
-if test "$enable_dlopen" = no ; then
- test -n "$1" && eval $1
-else
- test -n "$2" && eval $2
-fi
-
-])
-
-AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
-[
-KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
-KDE_PROG_LIBTOOL
-AC_MSG_CHECKING([dynamic loading])
-eval "`egrep '^build_libtool_libs=' libtool`"
-if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
- dynamic_loading=yes
- AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
-else
- dynamic_loading=no
-fi
-AC_MSG_RESULT($dynamic_loading)
-if test "$dynamic_loading" = "yes"; then
- $1
-else
- $2
-fi
-])
-
-AC_DEFUN([KDE_ADD_INCLUDES],
-[
-if test -z "$1"; then
- test_include="Pix.h"
-else
- test_include="$1"
-fi
-
-AC_MSG_CHECKING([for libg++ ($test_include)])
-
-AC_CACHE_VAL(kde_cv_libgpp_includes,
-[
-kde_cv_libgpp_includes=no
-
- for ac_dir in \
- \
- /usr/include/g++ \
- /usr/include \
- /usr/unsupported/include \
- /opt/include \
- $extra_include \
- ; \
- do
- if test -r "$ac_dir/$test_include"; then
- kde_cv_libgpp_includes=$ac_dir
- break
- fi
- done
-])
-
-AC_MSG_RESULT($kde_cv_libgpp_includes)
-if test "$kde_cv_libgpp_includes" != "no"; then
- all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
-fi
-])
-])
-
-AC_DEFUN([KDE_CHECK_LIBPTHREAD],
-[
- dnl This code is here specifically to handle the
- dnl various flavors of threading library on FreeBSD
- dnl 4-, 5-, and 6-, and the (weird) rules around it.
- dnl There may be an environment PTHREAD_LIBS that
- dnl specifies what to use; otherwise, search for it.
- dnl -pthread is special cased and unsets LIBPTHREAD
- dnl below if found.
- LIBPTHREAD=""
-
- if test -n "$PTHREAD_LIBS"; then
- if test "x$PTHREAD_LIBS" = "x-pthread" ; then
- LIBPTHREAD="PTHREAD"
- else
- PTHREAD_LIBS_save="$PTHREAD_LIBS"
- PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
- AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
- KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
- LIBPTHREAD="$PTHREAD_LIBS_save"])
- PTHREAD_LIBS="$PTHREAD_LIBS_save"
- fi
- fi
-
- dnl Is this test really needed, in the face of the Tru64 test below?
- if test -z "$LIBPTHREAD"; then
- AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
- fi
-
- dnl This is a special Tru64 check, see BR 76171 issue #18.
- if test -z "$LIBPTHREAD" ; then
- AC_MSG_CHECKING([for pthread_create in -lpthread])
- kde_safe_libs=$LIBS
- LIBS="$LIBS -lpthread"
- AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
- AC_MSG_RESULT(yes)
- LIBPTHREAD="-lpthread"],[
- AC_MSG_RESULT(no)])
- LIBS=$kde_safe_libs
- fi
-
- dnl Un-special-case for FreeBSD.
- if test "x$LIBPTHREAD" = "xPTHREAD" ; then
- LIBPTHREAD=""
- fi
-
- AC_SUBST(LIBPTHREAD)
-])
-
-AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
-[
- USE_THREADS=""
- if test -z "$LIBPTHREAD"; then
- KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
- fi
-
- AH_VERBATIM(__svr_define, [
-#if defined(__SVR4) && !defined(__svr4__)
-#define __svr4__ 1
-#endif
-])
- case $host_os in
- solaris*)
- KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
- CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
- ;;
- freebsd*)
- CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
- ;;
- aix*)
- CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
- LIBPTHREAD="$LIBPTHREAD -lc_r"
- ;;
- linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
- if test "$CXX" = "KCC"; then
- CXXFLAGS="$CXXFLAGS --thread_safe"
- NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
- fi
- ;;
- *)
- ;;
- esac
- AC_SUBST(USE_THREADS)
- AC_SUBST(LIBPTHREAD)
-])
-
-AC_DEFUN([KDE_CHECK_THREADING],
-[
- AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
- AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
- dnl default is yes if libpthread is found and no if no libpthread is available
- if test -z "$LIBPTHREAD"; then
- if test -z "$USE_THREADS"; then
- kde_check_threading_default=no
- else
- kde_check_threading_default=yes
- fi
- else
- kde_check_threading_default=yes
- fi
- AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
- kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
- if test "x$kde_use_threading" = "xyes"; then
- AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
- fi
-])
-
-AC_DEFUN([KDE_TRY_LINK_PYTHON],
-[
-if test "$kde_python_link_found" = no; then
-
-if test "$1" = normal; then
- AC_MSG_CHECKING(if a Python application links)
-else
- AC_MSG_CHECKING(if Python depends on $2)
-fi
-
-AC_CACHE_VAL(kde_cv_try_link_python_$1,
-[
-kde_save_cflags="$CFLAGS"
-CFLAGS="$CFLAGS $PYTHONINC"
-kde_save_libs="$LIBS"
-LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
-kde_save_ldflags="$LDFLAGS"
-LDFLAGS="$LDFLAGS $PYTHONLIB"
-
-AC_TRY_LINK(
-[
-#include <Python.h>
-],[
- PySys_SetArgv(1, 0);
-],
- [kde_cv_try_link_python_$1=yes],
- [kde_cv_try_link_python_$1=no]
-)
-CFLAGS="$kde_save_cflags"
-LIBS="$kde_save_libs"
-LDFLAGS="$kde_save_ldflags"
-])
-
-if test "$kde_cv_try_link_python_$1" = "yes"; then
- AC_MSG_RESULT(yes)
- kde_python_link_found=yes
- if test ! "$1" = normal; then
- LIBPYTHON="$LIBPYTHON $2"
- fi
- $3
-else
- AC_MSG_RESULT(no)
- $4
-fi
-
-fi
-
-])
-
-AC_DEFUN([KDE_CHECK_PYTHON_DIR],
-[
-AC_MSG_CHECKING([for Python directory])
-
-AC_CACHE_VAL(kde_cv_pythondir,
-[
- if test -z "$PYTHONDIR"; then
- kde_cv_pythondir=/usr/local
- else
- kde_cv_pythondir="$PYTHONDIR"
- fi
-])
-
-AC_ARG_WITH(pythondir,
-AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
-[
- ac_python_dir=$withval
-], ac_python_dir=$kde_cv_pythondir
-)
-
-AC_MSG_RESULT($ac_python_dir)
-])
-
-AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
-[
-AC_REQUIRE([KDE_CHECK_LIBDL])
-AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
-AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
-
-if test -z "$1"; then
- version="1.5"
-else
- version="$1"
-fi
-
-AC_MSG_CHECKING([for Python$version])
-
-python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
-AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
-if test ! -r $python_incdir/Python.h; then
- AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
- python_incdir=$python_incdir/python$version
- if test ! -r $python_incdir/Python.h; then
- python_incdir=no
- fi
-fi
-
-PYTHONINC=-I$python_incdir
-
-python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
-AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
-if test ! -r $python_libdir/libpython$version.so; then
- AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
- if test ! -r $python_libdir/libpython$version.a; then
- AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
- python_libdir=$python_libdir/python$version/config
- if test ! -r $python_libdir/libpython$version.a; then
- python_libdir=no
- fi
- fi
-fi
-
-PYTHONLIB=-L$python_libdir
-kde_orig_LIBPYTHON=$LIBPYTHON
-if test -z "$LIBPYTHON"; then
- LIBPYTHON=-lpython$version
-fi
-
-AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
-python_moddir=$python_moddir/python$version
-if test ! -r $python_moddir/copy.py; then
- python_moddir=no
-fi
-
-PYTHONMODDIR=$python_moddir
-
-AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
-
-if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then
- LIBPYTHON=$kde_orig_LIBPYTHON
- test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
- test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
- $2
-else
- dnl Note: this test is very weak
- kde_python_link_found=no
- KDE_TRY_LINK_PYTHON(normal)
- KDE_TRY_LINK_PYTHON(m, -lm)
- KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
- KDE_TRY_LINK_PYTHON(tcl, -ltcl)
- KDE_TRY_LINK_PYTHON(db2, -ldb2)
- KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
- KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
- KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
- KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
- [AC_MSG_WARN([it seems, Python depends on another library.
- Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
- and contact the authors to let them know about this problem])
- ])
-
- LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
- AC_SUBST(PYTHONINC)
- AC_SUBST(PYTHONLIB)
- AC_SUBST(LIBPYTHON)
- AC_SUBST(PYTHONMODDIR)
- AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
-fi
-
-])
-
-
-AC_DEFUN([KDE_CHECK_PYTHON],
-[
- KDE_CHECK_PYTHON_INTERN("2.5",
- [KDE_CHECK_PYTHON_INTERN("2.4",
- [KDE_CHECK_PYTHON_INTERN("2.3",
- [KDE_CHECK_PYTHON_INTERN("2.2",
- [KDE_CHECK_PYTHON_INTERN("2.1",
- [KDE_CHECK_PYTHON_INTERN("2.0",
- [KDE_CHECK_PYTHON_INTERN($1, $2) ])
- ])
- ])
- ])
- ])
- ])
-])
-
-AC_DEFUN([KDE_CHECK_STL],
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
-
- AC_MSG_CHECKING([if C++ programs can be compiled])
- AC_CACHE_VAL(kde_cv_stl_works,
- [
- AC_TRY_COMPILE([
-#include <string>
-using namespace std;
-],[
- string astring="Hallo Welt.";
- astring.erase(0, 6); // now astring is "Welt"
- return 0;
-], kde_cv_stl_works=yes,
- kde_cv_stl_works=no)
-])
-
- AC_MSG_RESULT($kde_cv_stl_works)
-
- if test "$kde_cv_stl_works" = "yes"; then
- # back compatible
- AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
- else
- AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
-Check config.log for details - if you're using a Linux distribution you might miss
-a package named similar to libstdc++-dev.])
- fi
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([AC_FIND_QIMGIO],
- [AC_REQUIRE([AC_FIND_JPEG])
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_MSG_CHECKING([for qimgio])
-AC_CACHE_VAL(ac_cv_lib_qimgio,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_save_LIBS="$LIBS"
-ac_save_CXXFLAGS="$CXXFLAGS"
-LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
-CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
-AC_TRY_RUN(dnl
-[
-#include <qimageio.h>
-#include <qstring.h>
-int main() {
- QString t = "hallo";
- t.fill('t');
- qInitImageIO();
-}
-],
- ac_cv_lib_qimgio=yes,
- ac_cv_lib_qimgio=no,
- ac_cv_lib_qimgio=no)
-LIBS="$ac_save_LIBS"
-CXXFLAGS="$ac_save_CXXFLAGS"
-AC_LANG_RESTORE
-])dnl
-if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
- LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
- AC_SUBST(LIBQIMGIO)
-else
- AC_MSG_RESULT(not found)
-fi
-])
-
-AC_DEFUN([AM_DISABLE_LIBRARIES],
-[
- AC_PROVIDE([AM_ENABLE_STATIC])
- AC_PROVIDE([AM_ENABLE_SHARED])
- enable_static=no
- enable_shared=yes
-])
-
-
-AC_DEFUN([AC_CHECK_UTMP_FILE],
-[
- AC_MSG_CHECKING([for utmp file])
-
- AC_CACHE_VAL(kde_cv_utmp_file,
- [
- kde_cv_utmp_file=no
-
- for ac_file in \
- \
- /var/run/utmp \
- /var/adm/utmp \
- /etc/utmp \
- ; \
- do
- if test -r "$ac_file"; then
- kde_cv_utmp_file=$ac_file
- break
- fi
- done
- ])
-
- if test "$kde_cv_utmp_file" != "no"; then
- AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
- $1
- AC_MSG_RESULT($kde_cv_utmp_file)
- else
- $2
- AC_MSG_RESULT([non found])
- fi
-])
-
-
-AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
-[
-
-DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
-TOPSUBDIRS=""
-
-if test ! -s $srcdir/subdirs; then
- dnl Note: Makefile.common creates subdirs, so this is just a fallback
- files=`cd $srcdir && ls -1`
- dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
- for i in $dirs; do
- echo $i >> $srcdir/subdirs
- done
-fi
-
-ac_topsubdirs=
-if test -s $srcdir/inst-apps; then
- ac_topsubdirs="`cat $srcdir/inst-apps`"
-elif test -s $srcdir/subdirs; then
- ac_topsubdirs="`cat $srcdir/subdirs`"
-fi
-
-for i in $ac_topsubdirs; do
- AC_MSG_CHECKING([if $i should be compiled])
- if test -d $srcdir/$i; then
- install_it="yes"
- for j in $DO_NOT_COMPILE; do
- if test $i = $j; then
- install_it="no"
- fi
- done
- else
- install_it="no"
- fi
- AC_MSG_RESULT($install_it)
- vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
- if test $install_it = "yes"; then
- TOPSUBDIRS="$TOPSUBDIRS $i"
- eval "$vari""_SUBDIR_included=yes"
- else
- eval "$vari""_SUBDIR_included=no"
- fi
-done
-
-AC_SUBST(TOPSUBDIRS)
-])
-
-AC_DEFUN([KDE_CHECK_NAMESPACES],
-[
-AC_MSG_CHECKING(whether C++ compiler supports namespaces)
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_TRY_COMPILE([
-],
-[
-namespace Foo {
- extern int i;
- namespace Bar {
- extern int i;
- }
-}
-
-int Foo::i = 0;
-int Foo::Bar::i = 1;
-],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_NAMESPACES)
-], [
-AC_MSG_RESULT(no)
-])
-AC_LANG_RESTORE
-])
-
-dnl ------------------------------------------------------------------------
-dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_CHECK_S_ISSOCK],
-[
-AC_MSG_CHECKING(for S_ISSOCK)
-AC_CACHE_VAL(ac_cv_have_s_issock,
-[
-AC_TRY_LINK(
-[
-#include <sys/stat.h>
-],
-[
-struct stat buff;
-int b = S_ISSOCK( buff.st_mode );
-],
-ac_cv_have_s_issock=yes,
-ac_cv_have_s_issock=no)
-])
-AC_MSG_RESULT($ac_cv_have_s_issock)
-if test "$ac_cv_have_s_issock" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
-fi
-
-AH_VERBATIM(_ISSOCK,
-[
-#ifndef HAVE_S_ISSOCK
-#define HAVE_S_ISSOCK
-#define S_ISSOCK(mode) (1==0)
-#endif
-])
-
-])
-
-dnl ------------------------------------------------------------------------
-dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
-[
-AC_MSG_CHECKING(for MAXPATHLEN)
-AC_CACHE_VAL(ac_cv_maxpathlen,
-[
-cat > conftest.$ac_ext <<EOF
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/param.h>
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-KDE_HELLO MAXPATHLEN
-
-EOF
-
-ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
-
-if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
- ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
-else
- ac_cv_maxpathlen=1024
-fi
-
-rm conftest.*
-
-])
-AC_MSG_RESULT($ac_cv_maxpathlen)
-AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
-])
-
-AC_DEFUN([KDE_CHECK_HEADER],
-[
- kde_safe_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $all_includes"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_CHECK_HEADER([$1], [$2], [$3], [$4])
- AC_LANG_RESTORE
- CPPFLAGS=$kde_safe_cppflags
-])
-
-AC_DEFUN([KDE_CHECK_HEADERS],
-[
- AH_CHECK_HEADERS([$1])
- AC_LANG_SAVE
- kde_safe_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $all_includes"
- AC_LANG_CPLUSPLUS
- AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
- CPPFLAGS=$kde_safe_cppflags
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([KDE_FAST_CONFIGURE],
-[
- dnl makes configure fast (needs perl)
- AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
- with_fast_perl=$enableval, with_fast_perl=yes)
-])
-
-AC_DEFUN([KDE_CONF_FILES],
-[
- val=
- if test -f $srcdir/configure.files ; then
- val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
- fi
- CONF_FILES=
- if test -n "$val" ; then
- for i in $val ; do
- CONF_FILES="$CONF_FILES $i"
- done
- fi
- AC_SUBST(CONF_FILES)
-])dnl
-
-dnl This sets the prefix, for arts and kdelibs
-dnl Do NOT use in any other module.
-dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
-AC_DEFUN([KDE_SET_PREFIX_CORE],
-[
- unset CDPATH
- dnl make $KDEDIR the default for the installation
- AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
-
- if test "x$prefix" = "xNONE"; then
- prefix=$ac_default_prefix
- ac_configure_args="$ac_configure_args --prefix=$prefix"
- fi
- # And delete superfluous '/' to make compares easier
- prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
-
- kde_libs_prefix='$(prefix)'
- kde_libs_htmldir='$(kde_htmldir)'
- AC_SUBST(kde_libs_prefix)
- AC_SUBST(kde_libs_htmldir)
- KDE_FAST_CONFIGURE
- KDE_CONF_FILES
-])
-
-
-AC_DEFUN([KDE_SET_PREFIX],
-[
- unset CDPATH
- dnl We can't give real code to that macro, only a value.
- dnl It only matters for --help, since we set the prefix in this function anyway.
- AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
-
- KDE_SET_DEFAULT_BINDIRS
- if test "x$prefix" = "xNONE"; then
- dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
- else
- dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
- kde_save_PATH="$PATH"
- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
- PATH="$kde_save_PATH"
- fi
-
- kde_libs_prefix=`$KDECONFIG --prefix`
- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
- This means it has been moved since you installed it.
- This won't work. Please recompile kdelibs for the new prefix.
- ])
- fi
- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
-
- AC_MSG_CHECKING([where to install])
- if test "x$prefix" = "xNONE"; then
- prefix=$kde_libs_prefix
- AC_MSG_RESULT([$prefix (as returned by kde-config)])
- else
- dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
- given_prefix=$prefix
- AC_MSG_RESULT([$prefix (as requested)])
- fi
-
- # And delete superfluous '/' to make compares easier
- prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
-
- AC_SUBST(KDECONFIG)
- AC_SUBST(kde_libs_prefix)
- AC_SUBST(kde_libs_htmldir)
-
- KDE_FAST_CONFIGURE
- KDE_CONF_FILES
-])
-
-pushdef([AC_PROG_INSTALL],
-[
- dnl our own version, testing for a -p flag
- popdef([AC_PROG_INSTALL])
- dnl as AC_PROG_INSTALL works as it works we first have
- dnl to save if the user didn't specify INSTALL, as the
- dnl autoconf one overwrites INSTALL and we have no chance to find
- dnl out afterwards
- test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
- test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
- test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
- AC_PROG_INSTALL
-
- if test -z "$kde_save_INSTALL_given" ; then
- # OK, user hasn't given any INSTALL, autoconf found one for us
- # now we test, if it supports the -p flag
- AC_MSG_CHECKING(for -p flag to install)
- rm -f confinst.$$.* > /dev/null 2>&1
- echo "Testtest" > confinst.$$.orig
- ac_res=no
- if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
- if test -f confinst.$$.new ; then
- # OK, -p seems to do no harm to install
- INSTALL="${INSTALL} -p"
- ac_res=yes
- fi
- fi
- rm -f confinst.$$.*
- AC_MSG_RESULT($ac_res)
- fi
- dnl the following tries to resolve some signs and wonders coming up
- dnl with different autoconf/automake versions
- dnl e.g.:
- dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
- dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
- dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
- dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
- dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
- dnl install-@DIR@PROGRAMS targets to explicitly use that flag
- dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
- dnl INSTALL_SCRIPT, which breaks with automake <= 1.4
- dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure
- dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from
- dnl automake (due to broken Makefile.am or whatever) to install programs,
- dnl and so does not see the -s flag in automake > 1.4
- dnl to clean up that mess we:
- dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
- dnl which cleans KDE's program with automake > 1.4;
- dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
- dnl with automake<=1.4
- dnl note that dues to this sometimes two '-s' flags are used (if KDE
- dnl properly uses install-@DIR@PROGRAMS, but I don't care
- dnl
- dnl And to all this comes, that I even can't write in comments variable
- dnl names used by automake, because it is so stupid to think I wanted to
- dnl _use_ them, therefor I have written A_M_... instead of AM_
- dnl hmm, I wanted to say something ... ahh yes: Arghhh.
-
- if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
- INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
- fi
- if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
- INSTALL_SCRIPT='${INSTALL}'
- fi
-])dnl
-
-AC_DEFUN([KDE_LANG_CPLUSPLUS],
-[AC_LANG_CPLUSPLUS
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
-pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
-])
-
-pushdef([AC_LANG_CPLUSPLUS],
-[popdef([AC_LANG_CPLUSPLUS])
-KDE_LANG_CPLUSPLUS
-])
-
-AC_DEFUN([KDE_CHECK_LONG_LONG],
-[
-AC_MSG_CHECKING(for long long)
-AC_CACHE_VAL(kde_cv_c_long_long,
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_LINK([], [
- long long foo = 0;
- foo = foo+1;
- ],
- kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
- AC_LANG_RESTORE
-])
-AC_MSG_RESULT($kde_cv_c_long_long)
-if test "$kde_cv_c_long_long" = yes; then
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
-fi
-])
-
-AC_DEFUN([KDE_CHECK_LIB],
-[
- kde_save_LDFLAGS="$LDFLAGS"
- dnl AC_CHECK_LIB modifies LIBS, so save it here
- kde_save_LIBS="$LIBS"
- LDFLAGS="$LDFLAGS $all_libraries"
- case $host_os in
- aix*) LDFLAGS="-brtl $LDFLAGS"
- test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
- ;;
- esac
- AC_CHECK_LIB($1, $2, $3, $4, $5)
- LDFLAGS="$kde_save_LDFLAGS"
- LIBS="$kde_save_LIBS"
-])
-
-AC_DEFUN([KDE_JAVA_PREFIX],
-[
- dir=`dirname "$1"`
- base=`basename "$1"`
- list=`ls -1 $dir 2> /dev/null`
- for entry in $list; do
- if test -d $dir/$entry/bin; then
- case $entry in
- $base)
- javadirs="$javadirs $dir/$entry/bin"
- ;;
- esac
- elif test -d $dir/$entry/jre/bin; then
- case $entry in
- $base)
- javadirs="$javadirs $dir/$entry/jre/bin"
- ;;
- esac
- fi
- done
-])
-
-dnl KDE_CHEC_JAVA_DIR(onlyjre)
-AC_DEFUN([KDE_CHECK_JAVA_DIR],
-[
-
-AC_ARG_WITH(java,
-AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
-[ ac_java_dir=$withval
-], ac_java_dir=""
-)
-
-AC_MSG_CHECKING([for Java])
-
-dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
-if test "x$ac_java_dir" = "xno"; then
- kde_java_bindir=no
- kde_java_includedir=no
- kde_java_libjvmdir=no
- kde_java_libgcjdir=no
- kde_java_libhpidir=no
-else
- if test "x$ac_java_dir" = "x"; then
-
-
- dnl No option set -> collect list of candidate paths
- if test -n "$JAVA_HOME"; then
- KDE_JAVA_PREFIX($JAVA_HOME)
- fi
- KDE_JAVA_PREFIX(/usr/j2se)
- KDE_JAVA_PREFIX(/usr/lib/j2se)
- KDE_JAVA_PREFIX(/usr/j*dk*)
- KDE_JAVA_PREFIX(/usr/lib/j*dk*)
- KDE_JAVA_PREFIX(/opt/j*sdk*)
- KDE_JAVA_PREFIX(/usr/lib/java*)
- KDE_JAVA_PREFIX(/usr/java*)
- KDE_JAVA_PREFIX(/usr/java/j*dk*)
- KDE_JAVA_PREFIX(/usr/java/j*re*)
- KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
- KDE_JAVA_PREFIX(/usr/lib/SunJava*)
- KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
- KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
- KDE_JAVA_PREFIX(/opt/java*)
-
- kde_cv_path="NONE"
- kde_save_IFS=$IFS
- IFS=':'
- for dir in $PATH; do
- if test -d "$dir"; then
- javadirs="$javadirs $dir"
- fi
- done
- IFS=$kde_save_IFS
- jredirs=
-
- dnl Now javadirs contains a list of paths that exist, all ending with bin/
- for dir in $javadirs; do
- dnl Check for the java executable
- if test -x "$dir/java"; then
- sane_path=$(cd $dir; /bin/pwd)
- dnl And also check for a libjvm.so somewhere under there
- dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
- if test "$sane_path" != "/usr/bin"; then
- libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
- if test ! -f $libjvmdir/libjvm.so; then continue; fi
- jredirs="$jredirs $dir"
- fi
- fi
- done
-
- dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
- JAVAC=
- JAVA=
- kde_java_bindir=no
- for dir in $jredirs; do
- JAVA="$dir/java"
- kde_java_bindir=$dir
- if test -x "$dir/javac"; then
- JAVAC="$dir/javac"
- break
- fi
- done
-
- if test -n "$JAVAC"; then
- dnl this substitution might not work - well, we test for jni.h below
- kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
- else
- kde_java_includedir=no
- fi
- else
- dnl config option set
- kde_java_bindir=$ac_java_dir/bin
- if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
- kde_java_includedir=no
- else
- kde_java_includedir=$ac_java_dir/include
- fi
- fi
-fi
-
-dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
-if test "x$kde_java_bindir" != "xno"; then
-
- dnl Look for libjvm.so
- kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
- dnl Look for libgcj.so
- kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
- dnl Look for libhpi.so and avoid green threads
- kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
-
- dnl Now check everything's fine under there
- dnl the include dir is our flag for having the JDK
- if test -d "$kde_java_includedir"; then
- if test ! -x "$kde_java_bindir/javac"; then
- AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
- fi
- if test ! -x "$kde_java_bindir/javah"; then
- AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
- if test ! -x "$kde_java_bindir/jar"; then
- AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
- if test ! -r "$kde_java_includedir/jni.h"; then
- AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
- fi
-
- jni_includes="-I$kde_java_includedir"
- dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
- dnl and under linux here..
-
- dnl not needed for gcj
-
- if test "x$kde_java_libgcjdir" = "x"; then
- test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
- test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
- test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
- fi
-
- else
- JAVAC=
- jni_includes=
- fi
-
- if test "x$kde_java_libgcjdir" = "x"; then
- if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
- AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
- fi
- else
- if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
- AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
- fi
- fi
-
- if test ! -x "$kde_java_bindir/java"; then
- AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
-
- dnl not needed for gcj compile
-
- if test "x$kde_java_libgcjdir" = "x"; then
- if test ! -r "$kde_java_libhpidir/libhpi.so"; then
- AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
- fi
- fi
-
- if test -n "$jni_includes"; then
- dnl Check for JNI version
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_cxxflags_safe="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
-
- AC_TRY_COMPILE([
- #include <jni.h>
- ],
- [
- #ifndef JNI_VERSION_1_2
- Syntax Error
- #endif
- ],[ kde_jni_works=yes ],
- [ kde_jni_works=no ])
-
- if test $kde_jni_works = no; then
- AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
- You need to have Java Development Kit (JDK) version 1.2.
-
- Use --with-java to specify another location.
- Use --without-java to configure without java support.
- Or download a newer JDK and try again.
- See e.g. http://java.sun.com/products/jdk/1.2 ])
- fi
-
- CXXFLAGS="$ac_cxxflags_safe"
- AC_LANG_RESTORE
-
- dnl All tests ok, inform and subst the variables
-
- JAVAC=$kde_java_bindir/javac
- JAVAH=$kde_java_bindir/javah
- JAR=$kde_java_bindir/jar
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- if test "x$kde_java_libgcjdir" = "x"; then
- JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
- else
- JVMLIBS="-L$kde_java_libgcjdir -lgcj"
- fi
- AC_MSG_RESULT([java JDK in $kde_java_bindir])
-
- else
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- AC_MSG_RESULT([java JRE in $kde_java_bindir])
- fi
-elif test -d "/Library/Java/Home"; then
- kde_java_bindir="/Library/Java/Home/bin"
- jni_includes="-I/Library/Java/Home/include"
-
- JAVAC=$kde_java_bindir/javac
- JAVAH=$kde_java_bindir/javah
- JAR=$kde_java_bindir/jar
- JVMLIBS="-Wl,-framework,JavaVM"
-
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- AC_MSG_RESULT([Apple Java Framework])
-else
- AC_MSG_RESULT([none found])
-fi
-
-AC_SUBST(JAVAC)
-AC_SUBST(JAVAH)
-AC_SUBST(JAR)
-AC_SUBST(JVMLIBS)
-AC_SUBST(jni_includes)
-
-# for backward compat
-kde_cv_java_includedir=$kde_java_includedir
-kde_cv_java_bindir=$kde_java_bindir
-])
-
-dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
-dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
-dnl big packages, m4_foreach is dog-slow. So use our own version of
-dnl it. (matz@kde.org)
-m4_define([mm_foreach],
-[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
-m4_define([mm_car], [[$1]])
-m4_define([mm_car2], [[$@]])
-m4_define([_mm_foreach],
-[m4_if(m4_quote($2), [], [],
- [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
- mm_car2(m4_shift($2)),
- [$3])])])
-m4_define([AC_FOREACH],
-[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
-
-AC_DEFUN([KDE_NEED_FLEX],
-[
-kde_libs_safe=$LIBS
-LIBS="$LIBS $USER_LDFLAGS"
-AM_PROG_LEX
-LIBS=$kde_libs_safe
-if test -z "$LEXLIB"; then
- AC_MSG_ERROR([You need to have flex installed.])
-fi
-AC_SUBST(LEXLIB)
-])
-
-AC_DEFUN([AC_PATH_QTOPIA],
-[
- dnl TODO: use AC_CACHE_VAL
-
- if test -z "$1"; then
- qtopia_minver_maj=1
- qtopia_minver_min=5
- qtopia_minver_pat=0
- else
- qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
- qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
- qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
- fi
-
- qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
- qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
-
- AC_REQUIRE([AC_PATH_QT])
-
- AC_MSG_CHECKING([for Qtopia])
-
- LIB_QTOPIA="-lqpe"
- AC_SUBST(LIB_QTOPIA)
-
- kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
-
- ac_qtopia_incdir=NO
-
- AC_ARG_WITH(qtopia-dir,
- AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
- [ ac_qtopia_incdir="$withval"/include] )
-
- qtopia_incdirs=""
- for dir in $kde_qtopia_dirs; do
- qtopia_incdirs="$qtopia_incdirs $dir/include"
- done
-
- if test ! "$ac_qtopia_incdir" = "NO"; then
- qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
- fi
-
- qtopia_incdir=""
- AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
- ac_qtopia_incdir="$qtopia_incdir"
-
- if test -z "$qtopia_incdir"; then
- AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
- fi
-
- qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
- qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
- qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
-
- qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
- qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
- if test "$qtopia_ver" -lt "$qtopia_minver"; then
- AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
-is required.])
- fi
-
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- ac_cxxflags_safe="$CXXFLAGS"
- ac_ldflags_safe="$LDFLAGS"
- ac_libs_safe="$LIBS"
-
- CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
- LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
- LIBS="$LIBS $LIB_QTOPIA $LIBQT"
-
- cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <qpe/qpeapplication.h>
-#include <qpe/version.h>
-
-int main( int argc, char **argv )
-{
- QPEApplication app( argc, argv );
- return 0;
-}
-EOF
-
- if AC_TRY_EVAL(ac_link) && test -s conftest; then
- rm -f conftest*
- else
- rm -f conftest*
- AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
-the end of config.log])
- fi
-
- CXXFLAGS="$ac_cxxflags_safe"
- LDFLAGS="$ac_ldflags_safe"
- LIBS="$ac_libs_safe"
-
- AC_LANG_RESTORE
-
- QTOPIA_INCLUDES="-I$qtopia_incdir"
- AC_SUBST(QTOPIA_INCLUDES)
-
- AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
-])
-
-
-AC_DEFUN([KDE_INIT_DOXYGEN],
-[
-AC_MSG_CHECKING([for Qt docs])
-kde_qtdir=
-if test "${with_qt_dir+set}" = set; then
- kde_qtdir="$with_qt_dir"
-fi
-
-AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
-AC_MSG_RESULT($QTDOCDIR)
-
-AC_SUBST(QTDOCDIR)
-
-KDE_FIND_PATH(dot, DOT, [], [])
-if test -n "$DOT"; then
- KDE_HAVE_DOT="YES"
-else
- KDE_HAVE_DOT="NO"
-fi
-AC_SUBST(KDE_HAVE_DOT)
-KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
-AC_SUBST(DOXYGEN)
-
-DOXYGEN_PROJECT_NAME="$1"
-DOXYGEN_PROJECT_NUMBER="$2"
-AC_SUBST(DOXYGEN_PROJECT_NAME)
-AC_SUBST(DOXYGEN_PROJECT_NUMBER)
-
-KDE_HAS_DOXYGEN=no
-if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
- KDE_HAS_DOXYGEN=yes
-fi
-AC_SUBST(KDE_HAS_DOXYGEN)
-
-])
-
-
-AC_DEFUN([AC_FIND_BZIP2],
-[
-AC_MSG_CHECKING([for bzDecompress in libbz2])
-AC_CACHE_VAL(ac_cv_lib_bzip2,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-kde_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
-kde_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(dnl
-[
-#define BZ_NO_STDIO
-#include<bzlib.h>
-],
- [ bz_stream s; (void) bzDecompress(&s); ],
- eval "ac_cv_lib_bzip2='-lbz2'",
- eval "ac_cv_lib_bzip2=no")
-LIBS="$kde_save_LIBS"
-CXXFLAGS="$kde_save_CXXFLAGS"
-AC_LANG_RESTORE
-])dnl
-AC_MSG_RESULT($ac_cv_lib_bzip2)
-
-if test ! "$ac_cv_lib_bzip2" = no; then
- BZIP2DIR=bzip2
-
- LIBBZ2="$ac_cv_lib_bzip2"
- AC_SUBST(LIBBZ2)
-
-else
-
- cxx_shared_flag=
- ld_shared_flag=
- KDE_CHECK_COMPILER_FLAG(shared, [
- ld_shared_flag="-shared"
- ])
- KDE_CHECK_COMPILER_FLAG(fPIC, [
- cxx_shared_flag="-fPIC"
- ])
-
- AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
- AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- kde_save_LIBS="$LIBS"
- LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
- kde_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
-
- AC_TRY_LINK(dnl
- [
- #define BZ_NO_STDIO
- #include<bzlib.h>
- ],
- [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
- eval "ac_cv_lib_bzip2_prefix='-lbz2'",
- eval "ac_cv_lib_bzip2_prefix=no")
- LIBS="$kde_save_LIBS"
- CXXFLAGS="$kde_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])dnl
-
- AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
-
- if test ! "$ac_cv_lib_bzip2_prefix" = no; then
- BZIP2DIR=bzip2
-
- LIBBZ2="$ac_cv_lib_bzip2_prefix"
- AC_SUBST(LIBBZ2)
-
- AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
- dnl else, we just ignore this
- fi
-
-fi
-AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
-])
-
-dnl ------------------------------------------------------------------------
-dnl Try to find the SSL headers and libraries.
-dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
-dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([KDE_CHECK_SSL],
-[
-LIBSSL="-lssl -lcrypto"
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-ac_ssl_includes=NO ac_ssl_libraries=NO
-ssl_libraries=""
-ssl_includes=""
-AC_ARG_WITH(ssl-dir,
- AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
- [ ac_ssl_includes="$withval"/include
- ac_ssl_libraries="$withval"/lib$kdelibsuff
- ])
-
-want_ssl=yes
-AC_ARG_WITH(ssl,
- AC_HELP_STRING([--without-ssl],[disable SSL checks]),
- [want_ssl=$withval])
-
-if test $want_ssl = yes; then
-
-AC_MSG_CHECKING(for OpenSSL)
-
-AC_CACHE_VAL(ac_cv_have_ssl,
-[#try to guess OpenSSL locations
-
- ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
- ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
- AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
- ac_ssl_includes="$ssl_incdir"
-
- ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
- if test ! "$ac_ssl_libraries" = "NO"; then
- ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
- fi
-
- test=NONE
- ssl_libdir=NONE
- for dir in $ssl_libdirs; do
- try="ls -1 $dir/libssl*"
- if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
- done
-
- ac_ssl_libraries="$ssl_libdir"
-
- ac_ldflags_safe="$LDFLAGS"
- ac_libs_safe="$LIBS"
-
- LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
- LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
-
- AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
- ac_ssl_rsaref="yes"
- ,
- ac_ssl_rsaref="no"
- )
-
- LDFLAGS="$ac_ldflags_safe"
- LIBS="$ac_libs_safe"
-
- if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
- have_ssl=no
- else
- have_ssl=yes;
- fi
-
- ])
-
- eval "$ac_cv_have_ssl"
-
- AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
-
- AC_MSG_CHECKING([whether OpenSSL uses rsaref])
- AC_MSG_RESULT($ac_ssl_rsaref)
-
- AC_MSG_CHECKING([for easter eggs])
- AC_MSG_RESULT([none found])
-
-else
- have_ssl=no
-fi
-
-if test "$have_ssl" = yes; then
- AC_MSG_CHECKING(for OpenSSL version)
- dnl Check for SSL version
- AC_CACHE_VAL(ac_cv_ssl_version,
- [
-
- cat >conftest.$ac_ext <<EOF
-#include <openssl/opensslv.h>
-#include <stdio.h>
- int main() {
-
-#ifndef OPENSSL_VERSION_NUMBER
- printf("ssl_version=\\"error\\"\n");
-#else
- if (OPENSSL_VERSION_NUMBER < 0x00906000)
- printf("ssl_version=\\"old\\"\n");
- else
- printf("ssl_version=\\"ok\\"\n");
-#endif
- return (0);
- }
-EOF
-
- ac_save_CPPFLAGS=$CPPFLAGS
- if test "$ac_ssl_includes" != "/usr/include"; then
- CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
- fi
-
- if AC_TRY_EVAL(ac_link); then
-
- if eval `./conftest 2>&5`; then
- if test $ssl_version = error; then
- AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
- else
- if test $ssl_version = old; then
- AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
- have_ssl=no
- fi
- fi
- ac_cv_ssl_version="ssl_version=$ssl_version"
- else
- AC_MSG_ERROR([Your system couldn't run a small SSL test program.
- Check config.log, and if you can't figure it out, send a mail to
- David Faure <faure@kde.org>, attaching your config.log])
- fi
-
- else
- AC_MSG_ERROR([Your system couldn't link a small SSL test program.
- Check config.log, and if you can't figure it out, send a mail to
- David Faure <faure@kde.org>, attaching your config.log])
- fi
- CPPFLAGS=$ac_save_CPPFLAGS
-
- ])
-
- eval "$ac_cv_ssl_version"
- AC_MSG_RESULT($ssl_version)
-fi
-
-if test "$have_ssl" != yes; then
- LIBSSL="";
-else
- AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
- ac_cv_have_ssl="have_ssl=yes \
- ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
-
-
- ssl_libraries="$ac_ssl_libraries"
- ssl_includes="$ac_ssl_includes"
-
- if test "$ac_ssl_rsaref" = yes; then
- LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref"
- fi
-
- if test $ssl_version = "old"; then
- AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
- fi
-fi
-
-SSL_INCLUDES=
-
-if test "$ssl_includes" = "/usr/include"; then
- if test -f /usr/kerberos/include/krb5.h; then
- SSL_INCLUDES="-I/usr/kerberos/include"
- fi
-elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
- SSL_INCLUDES="-I$ssl_includes"
-fi
-
-if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
- SSL_LDFLAGS=""
-else
- SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
-fi
-
-AC_SUBST(SSL_INCLUDES)
-AC_SUBST(SSL_LDFLAGS)
-AC_SUBST(LIBSSL)
-])
-
-AC_DEFUN([KDE_CHECK_STRLCPY],
-[
- AC_REQUIRE([AC_CHECK_STRLCAT])
- AC_REQUIRE([AC_CHECK_STRLCPY])
- AC_CHECK_SIZEOF(size_t)
- AC_CHECK_SIZEOF(unsigned long)
-
- AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
- AC_TRY_COMPILE(,[
- #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
- choke me
- #endif
- ],AC_MSG_RESULT([yes]),[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([
- Apparently on your system our assumption sizeof size_t == sizeof unsigned long
- does not apply. Please mail kde-devel@kde.org with a description of your system!
- ])
- ])
-])
-
-AC_DEFUN([KDE_CHECK_BINUTILS],
-[
- AC_MSG_CHECKING([if ld supports unversioned version maps])
-
- kde_save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
- echo "{ local: extern \"C++\" { foo }; };" > conftest.map
- AC_TRY_LINK([int foo;],
-[
-#ifdef __INTEL_COMPILER
-icc apparently does not support libtools version-info and version-script
-at the same time. Dunno where the bug is, but until somebody figured out,
-better disable the optional version scripts.
-#endif
-
- foo = 42;
-], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
- LDFLAGS="$kde_save_LDFLAGS"
- rm -f conftest.map
- AM_CONDITIONAL(include_VERSION_SCRIPT,
- [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
-
- AC_MSG_RESULT($kde_supports_versionmaps)
-])
-
-AC_DEFUN([AM_PROG_OBJC],[
-AC_CHECK_PROGS(OBJC, gcc, gcc)
-test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
-if test "x${OBJCFLAGS-unset}" = xunset; then
- OBJCFLAGS="-g -O2"
-fi
-AC_SUBST(OBJCFLAGS)
-_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
-])
-
-AC_DEFUN([KDE_CHECK_PERL],
-[
- KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
- AC_MSG_ERROR([No Perl found in your $PATH.
-We need perl to generate some code.])
- ])
- AC_SUBST(PERL)
-])
-
-AC_DEFUN([KDE_CHECK_LARGEFILE],
-[
-AC_SYS_LARGEFILE
-if test "$ac_cv_sys_file_offset_bits" != no; then
- CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
-fi
-
-if test "x$ac_cv_sys_large_files" != "xno"; then
- CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
-fi
-
-])
-
-dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
-dnl which allows to search for libs that get installed into the KDE prefix.
-dnl
-dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
-dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
-dnl also defines KSTUFF_PKG_ERRORS on error
-AC_DEFUN([KDE_PKG_CHECK_MODULES], [
-
- PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
- if test "$prefix" != "$kde_libs_prefix"; then
- PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
- fi
- export PKG_CONFIG_PATH
- PKG_CHECK_MODULES([$1],[$2],[$3],[$4])
-])
-
-
-dnl Check for PIE support in the compiler and linker
-AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
-[
- AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- safe_CXXFLAGS=$CXXFLAGS
- safe_LDFLAGS=$LDFLAGS
- CXXFLAGS="$CXXFLAGS -fPIE"
- LDFLAGS="$LDFLAGS -pie"
-
- AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
-
- CXXFLAGS=$safe_CXXFLAGS
- LDFLAGS=$safe_LDFLAGS
- AC_LANG_RESTORE
- ])
-
- AC_MSG_CHECKING(if enabling -pie/fPIE support)
-
- AC_ARG_ENABLE(pie,
- AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
- [kde_has_pie_support=$enableval],
- [kde_has_pie_support=detect])
-
- if test "$kde_has_pie_support" = "detect"; then
- kde_has_pie_support=$kde_cv_val_pie_support
- fi
-
- AC_MSG_RESULT([$kde_has_pie_support])
-
- KDE_USE_FPIE=""
- KDE_USE_PIE=""
-
- AC_SUBST([KDE_USE_FPIE])
- AC_SUBST([KDE_USE_PIE])
-
- if test "$kde_has_pie_support" = "yes"; then
- KDE_USE_FPIE="-fPIE"
- KDE_USE_PIE="-pie"
- fi
-])
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
-
-# serial 47 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 --silent'
-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 s/^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 M$VC,
-# 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 "$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="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
- ;;
- *)
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# 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
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _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 <<EOF
-[$]*
-EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-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*)
- LINUX_64_MODE="32"
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*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*)
- LINUX_64_MODE="64"
- 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
- ;;
-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}? :&$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
- if test ! -s conftest.err; 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 compiler 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
- 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
- testring="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;
- ;;
-
- *)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
- = "XX$testring") >/dev/null 2>&1 &&
- new_result=`expr "X$testring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- testring=$testring$testring
- done
- testring=
- # 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 <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- exit (status);
-}]
-EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_unknown|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"
- 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
- LDFLAGS="$LDFLAGS $link_static_flag"
- 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$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
- if test ! -s out/conftest.err; then
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_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
-
- # 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"; 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 dll's
-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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-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 GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- 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*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-mingw* | pw32*)
- # 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='win32_libid'
- ;;
-
-darwin* | rhapsody*)
- # this will be overwritten by pass_all, but leave it in just in case
- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- case "$host_os" in
- rhapsody* | darwin1.[[012]])
- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
- ;;
- *) # Darwin 1.3 on
- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
- ;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu)
- 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)/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
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- irix5* | nonstopux*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux*)
- case $host_cpu in
- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
- lt_cv_deplibs_check_method=pass_all ;;
- # the debian people say, arm and glibc 2.3.1 works for them with pass_all
- arm* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-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*)
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
- else
- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
- esac
- ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | 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_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/${ac_tool_prefix}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"
- 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 LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. 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 LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. 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 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.
-# 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([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-
-# 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
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
- case $host_os in
- sco3.2v5*)
- _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
- ;;
- esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
- AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
- if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then :
- else
- AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
- _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
- fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
- $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
- [],
- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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($1)
-
-# Report which librarie types wil 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*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- darwin* | rhapsody*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- _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 $compiler_flags $libobjs $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=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([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_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=cc
-
-# 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
-
-# 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
- 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
- unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -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
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- 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_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _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'
- # -bexpall does not export symbols beginning with underscore (_)
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- 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)=no
- _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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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 $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
-
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- 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 $compiler_flags $libobjs $deplibs -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 ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- 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)
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~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
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- ;;
- *)
- _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'
- ;;
- esac
- fi
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- *)
- _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*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- 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
- ia64*|hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC)
- # SGI C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- _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'
- ;;
- cxx)
- # Compaq C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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::"'
- ;;
- 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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
- ;;
- sco*)
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- case $cc_basename in
- CC)
- # 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
- ;;
- 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(no_undefined_flag, $1)=' -zdefs'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- _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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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
- ;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
- 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"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($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 <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- # 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 "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext|*.$libext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
- _LT_AC_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
- _LT_AC_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-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*)
- test "$enable_shared" = yes && enable_static=no
- ;;
-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])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars. Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- _LT_AC_TAGVAR(compiler, $1) \
- _LT_AC_TAGVAR(CC, $1) \
- _LT_AC_TAGVAR(LD, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
- _LT_AC_TAGVAR(old_archive_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
- _LT_AC_TAGVAR(predep_objects, $1) \
- _LT_AC_TAGVAR(postdep_objects, $1) \
- _LT_AC_TAGVAR(predeps, $1) \
- _LT_AC_TAGVAR(postdeps, $1) \
- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
- _LT_AC_TAGVAR(archive_cmds, $1) \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
- _LT_AC_TAGVAR(postinstall_cmds, $1) \
- _LT_AC_TAGVAR(postuninstall_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
- _LT_AC_TAGVAR(allow_undefined_flag, $1) \
- _LT_AC_TAGVAR(no_undefined_flag, $1) \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
- _LT_AC_TAGVAR(hardcode_automatic, $1) \
- _LT_AC_TAGVAR(module_cmds, $1) \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) \
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
- _LT_AC_TAGVAR(exclude_expsyms, $1) \
- _LT_AC_TAGVAR(include_expsyms, $1); do
-
- case $var in
- _LT_AC_TAGVAR(old_archive_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
- _LT_AC_TAGVAR(archive_cmds, $1) | \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(module_cmds, $1) | \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\[$]0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
- ;;
- esac
-
-ifelse([$1], [],
- [cfgfile="${ofile}T"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- $rm -f "$cfgfile"
- AC_MSG_NOTICE([creating $ofile])],
- [cfgfile="$ofile"])
-
- cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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 the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# 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'"
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris* | sysv5*)
- symcode='[[BDT]]'
- ;;
-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='[[ABCDGISTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # 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 <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if grep ' nm_test_var$' "$nlist" >/dev/null; then
- if grep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > 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 <<EOF >> 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)=
- ;;
- 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
- ;;
- 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)
- # 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)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_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)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
- case "$host_cpu" in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- 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)
- # 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'
- ;;
- 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*)
- ;;
- sco*)
- case $cc_basename in
- CC)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- *)
- ;;
- esac
- ;;
- 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
- ;;
- unixware*)
- ;;
- 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'
- ;;
-
- 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
- ;;
-
- 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 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'
- ;;
- 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'
- ;;
-
- sco3.2v5*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
- ;;
-
- solaris*)
- _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'
- ;;
-
- 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* | sysv5*)
- _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
- ;;
-
- 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
-])
-
-
-# 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 '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[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=
-
- 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
- ;;
- 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}'
-
- # 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 <<EOF 1>&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 <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we 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 <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${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)=no
- _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 '\''/^[[BCDGS]] /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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- ld_shlibs=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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${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)" = yes; then
- 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
- 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 "$link_static_flag"; 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
-
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- 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_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _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'
- # -bexpall does not export symbols beginning with underscore (_)
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${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
- ;;
-
- bsdi4*)
- _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)=no
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `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'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes ; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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 $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- 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 $compiler_flags $libobjs $deplibs -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 ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- 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)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs~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* | hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- esac
- else
- case "$host_cpu" in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
- # 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(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
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${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 $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 ${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)=:
- ;;
-
- sco3.2v5*)
- _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)='${wl}-Bexport'
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs~$rm $lib.exp'
- else
- _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]].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- 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 $compiler_flags $libobjs $deplibs'
- 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.2uw2*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- fi
- runpath_var='LD_RUN_PATH'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv5*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- _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'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- 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
-
-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
-
-#
-# 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)
- 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 <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #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 <cygwin/cygwin_dll.h>
-# 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 && break
- 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])
-])
diff --git a/libs/taglib/aclocal.m4 b/libs/taglib/aclocal.m4
deleted file mode 100644
index fcc414d3d8..0000000000
--- a/libs/taglib/aclocal.m4
+++ /dev/null
@@ -1,875 +0,0 @@
-# generated automatically by aclocal 1.10 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_if(m4_PACKAGE_VERSION, [2.61],,
-[m4_fatal([this file was generated for autoconf 2.61.
-You have another version of autoconf. If you want to use that,
-you should regenerate the build system entirely.], [63])])
-
-# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.10'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.10], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10])dnl
-_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 9
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], UPC, [depcc="$UPC" am_compiler_list=],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 3
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006 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.60])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_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-"\$(SHELL) $am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
- [[\\/$]]* | ?:[[\\/]]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([acinclude.m4])
diff --git a/libs/taglib/admin/Doxyfile.am b/libs/taglib/admin/Doxyfile.am
deleted file mode 100644
index 420b4116db..0000000000
--- a/libs/taglib/admin/Doxyfile.am
+++ /dev/null
@@ -1,102 +0,0 @@
-## generate API documentation with doxygen
-apidox-am-yes:
- @if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \
- export DOXDATA=$(kde_libs_htmldir)/en/common ; \
- fi ; \
- abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
- test -d $(top_builddir)/apidocs || \
- ( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
- --no-modulename --installdir=$(kde_libs_htmldir)/en \
- --no-recurse $(abs_top_srcdir) . ) ; \
- cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
- --recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \
- $$abs_top_srcdir $(subdir)
-
-apidox-am-toplevel-yes:
- @if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \
- export DOXDATA=$(kde_libs_htmldir)/en/common ; \
- fi ; \
- abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
- cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
- --no-modulename --installdir=$(kde_libs_htmldir)/en \
- $$abs_top_srcdir
-
-## Don't generate API documentation without doxygen
-apidox-am-no:
-
-apidox-am-toplevel-no:
-
-
-apidox:
- @if test "$(subdir)" != "."; then \
- $(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
- else \
- $(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
- fi
-
-
-
-install-data-local: install-apidox
-
-## install API documentation
-install-apidox:
- @if test "$(subdir)" != "."; then \
- $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
- if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
- echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
- $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
- fi; \
- if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
- list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
- echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
- for file in $$list; do \
- $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
- done; \
- fi; \
- else\
- if test -d $(top_builddir)/apidocs; then \
- $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
- list=`cd $(top_builddir)/apidocs && ls -1`; \
- echo "installing $(top_builddir)/apidocs/$$file" ;\
- echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \
- for file in $$list; do \
- if test -f $(top_builddir)/apidocs/$$file; then \
- $(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
- fi; \
- done ; fi; \
- fi
-
-uninstall-local: uninstall-apidox
-
-## uninstall API documentation
-uninstall-apidox:
- @if test "$(subdir)" != "."; then \
- if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
- rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
- fi \
- else \
- if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
- rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
- fi \
- fi
-
-install-apidox-recurse: install-apidox
- @set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
- list='$(SUBDIRS)'; \
- for subdir in $$list; do \
- if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \
- echo "Installing apidox from $$subdir"; \
- if test "$$subdir" != "."; then \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
- fi ; fi ;\
- done; \
- fi
-
-
-
-.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
-
-
-# Local Variables:
-# mode: makefile
-# End:
diff --git a/libs/taglib/admin/Doxyfile.global b/libs/taglib/admin/Doxyfile.global
deleted file mode 100755
index 1b9f5607bf..0000000000
--- a/libs/taglib/admin/Doxyfile.global
+++ /dev/null
@@ -1,192 +0,0 @@
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = YES
-ABBREVIATE_BRIEF =
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-SHORT_NAMES = NO
-JAVADOC_AUTOBRIEF = YES
-MULTILINE_CPP_IS_BRIEF = NO
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-TAB_SIZE = 4
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = YES
-EXTRACT_LOCAL_CLASSES = NO
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = YES
-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_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = YES
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_IF_DOC_ERROR = YES
-WARN_FORMAT =
-WARN_LOGFILE =
-INPUT =
-FILE_PATTERNS = *.h \
- *.cpp \
- *.cc \
- *.hpp \
- *.dox \
- *.c++ \
- *.cxx \
- *.h++ \
- *.hh
-RECURSIVE = YES
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS = *.moc.* \
- moc* \
- *.all_cpp.* \
- *unload.* \
- */test/* \
- */tests/* \
- *_p.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_SOURCE_FILES = NO
-SOURCE_BROWSER = YES
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION = YES
-VERBATIM_HEADERS = YES
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 3
-HTML_OUTPUT =
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = ../apidocs/common/header.html
-HTML_FOOTER = ../apidocs/common/footer.html
-HTML_STYLESHEET = ../apidocs/common/doxygen.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-GENERATE_LATEX = NO
-LATEX_OUTPUT =
-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
-GENERATE_RTF = NO
-RTF_OUTPUT =
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-GENERATE_MAN = NO
-MAN_OUTPUT =
-MAN_EXTENSION = .kde3
-MAN_LINKS = YES
-GENERATE_XML = NO
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = NO
-GENERATE_AUTOGEN_DEF = NO
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-ENABLE_PREPROCESSING = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED = QT_VERSION=320 \
- __cplusplus \
- Q_WS_X11
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = NO
-PERL_PATH =
-CLASS_DIAGRAMS = YES
-HIDE_UNDOC_RELATIONS = NO
-HAVE_DOT = NO
-UML_LOOK = NO
-TEMPLATE_RELATIONS = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 800
-MAX_DOT_GRAPH_HEIGHT = 1024
-MAX_DOT_GRAPH_DEPTH = 0
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
-SEARCHENGINE = NO
-
-### KDE Settings
-ALIASES = \
- "intern=\par<b>Internal use only.</b>" \
- "reimp=\par<b>Reimplemented from superclass.</b>" \
- "obsolete=@deprecated" \
- "feature=\xrefitem features \"Feature(s)\" \"Features\"" \
- "maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
- "unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
- "requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
- "faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
- "authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
- "FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
-
-HTML_ALIGN_MEMBERS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-GENERATE_HTML = YES
-SOURCE_BROWSER = YES
-GENERATE_AUTOGEN_DEF = NO
-DETAILS_AT_TOP = YES
-SORT_MEMBER_DOCS = YES
-GENERATE_TODOLIST = YES
-IGNORE_PREFIX = K
-GENERATE_HTML = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = NO
-
-
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-
diff --git a/libs/taglib/admin/Makefile.common b/libs/taglib/admin/Makefile.common
deleted file mode 100644
index d07b404523..0000000000
--- a/libs/taglib/admin/Makefile.common
+++ /dev/null
@@ -1,37 +0,0 @@
-### Makefile.common
-###
-### Copyright (C) 2002 by the KDE developers
-
-### All the real work is done by the shellscript cvs.sh
-
-SHELL=/bin/sh
-
-cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
- @admindir=$(admindir); \
- if test "x$$admindir" = x; then \
- admindir=.; until test -f $$admindir/admin/cvs.sh; do \
- admindir=$$admindir/..; \
- if test `cd $$admindir && pwd` = / ; then break; fi; \
- done; \
- admindir=$$admindir/admin; \
- if test -f $$admindir/cvs.sh; then :; else \
- echo "Can't find the admin/ directory in any parent of the"; \
- echo "current directory. Please set it with admindir=..."; \
- exit 1; \
- fi; \
- fi; \
- if test "$@" = "package-merge"; then \
- MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
- $(SHELL) $$admindir/cvs.sh package-merge ;\
- else \
- MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
- fi
-
-configure.in: configure.files subdirs
-configure.files: subdirs
-
-svn: cvs
-
-.SILENT:
-
-.PHONY: svn cvs dist package-merge package-messages
diff --git a/libs/taglib/admin/acinclude.m4.in b/libs/taglib/admin/acinclude.m4.in
deleted file mode 100644
index 46ad205e44..0000000000
--- a/libs/taglib/admin/acinclude.m4.in
+++ /dev/null
@@ -1,5997 +0,0 @@
-## -*- autoconf -*-
-
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
-dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-dnl Boston, MA 02110-1301, USA.
-
-dnl IMPORTANT NOTE:
-dnl Please do not modify this file unless you expect your modifications to be
-dnl carried into every other module in the repository.
-dnl
-dnl Single-module modifications are best placed in configure.in for kdelibs
-dnl and kdebase or configure.in.in if present.
-
-# KDE_PATH_X_DIRECT
-dnl Internal subroutine of AC_PATH_X.
-dnl Set ac_x_includes and/or ac_x_libraries.
-AC_DEFUN([KDE_PATH_X_DIRECT],
-[
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-AC_TRY_CPP([#include <$x_direct_test_include>],
-[# We can compile using X headers with no special include directory.
-ac_x_includes=],
-[# Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done])
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)],
-[LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=],
-[LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
- /usr/X11/lib${kdelibsuff} \
- /usr/X11R6/lib${kdelibsuff} \
- /usr/X11R5/lib${kdelibsuff} \
- /usr/X11R4/lib${kdelibsuff} \
- \
- /usr/lib${kdelibsuff}/X11 \
- /usr/lib${kdelibsuff}/X11R6 \
- /usr/lib${kdelibsuff}/X11R5 \
- /usr/lib${kdelibsuff}/X11R4 \
- \
- /usr/local/X11/lib${kdelibsuff} \
- /usr/local/X11R6/lib${kdelibsuff} \
- /usr/local/X11R5/lib${kdelibsuff} \
- /usr/local/X11R4/lib${kdelibsuff} \
- \
- /usr/local/lib${kdelibsuff}/X11 \
- /usr/local/lib${kdelibsuff}/X11R6 \
- /usr/local/lib${kdelibsuff}/X11R5 \
- /usr/local/lib${kdelibsuff}/X11R4 \
- \
- /usr/X386/lib${kdelibsuff} \
- /usr/x386/lib${kdelibsuff} \
- /usr/XFree86/lib${kdelibsuff}/X11 \
- \
- /usr/lib${kdelibsuff} \
- /usr/local/lib${kdelibsuff} \
- /usr/unsupported/lib${kdelibsuff} \
- /usr/athena/lib${kdelibsuff} \
- /usr/local/x11r5/lib${kdelibsuff} \
- /usr/lpp/Xamples/lib${kdelibsuff} \
- /lib/usr/lib${kdelibsuff}/X11 \
- \
- /usr/openwin/lib${kdelibsuff} \
- /usr/openwin/share/lib${kdelibsuff} \
- ; \
-do
-dnl Don't even attempt the hair of trying to link an X program!
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done])
-fi # $ac_x_libraries = NO
-])
-
-
-dnl ------------------------------------------------------------------------
-dnl Find a file (or one of more files in a list of dirs)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_FIND_FILE],
-[
-$3=NO
-for i in $2;
-do
- for j in $1;
- do
- echo "configure: __oline__: $i/$j" >&AC_FD_CC
- if test -r "$i/$j"; then
- echo "taking that" >&AC_FD_CC
- $3=$i
- break 2
- fi
- done
-done
-])
-
-dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs,
-dnl if-not-found, test-parameter, prepend-path)
-dnl
-dnl Look for program-name in list-of-dirs+$PATH.
-dnl If prepend-path is set, look in $PATH+list-of-dirs instead.
-dnl If found, $variable-name is set. If not, if-not-found is evaluated.
-dnl test-parameter: if set, the program is executed with this arg,
-dnl and only a successful exit code is required.
-AC_DEFUN([KDE_FIND_PATH],
-[
- AC_MSG_CHECKING([for $1])
- if test -n "$$2"; then
- kde_cv_path="$$2";
- else
- kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
-
- AC_CACHE_VAL(kde_cv_path_$kde_cache,
- [
- kde_cv_path="NONE"
- kde_save_IFS=$IFS
- IFS=':'
- dirs=""
- for dir in $PATH; do
- dirs="$dirs $dir"
- done
- if test -z "$6"; then dnl Append dirs in PATH (default)
- dirs="$3 $dirs"
- else dnl Prepend dirs in PATH (if 6th arg is set)
- dirs="$dirs $3"
- fi
- IFS=$kde_save_IFS
-
- for dir in $dirs; do
- if test -x "$dir/$1"; then
- if test -n "$5"
- then
- evalstr="$dir/$1 $5 2>&1 "
- if eval $evalstr; then
- kde_cv_path="$dir/$1"
- break
- fi
- else
- kde_cv_path="$dir/$1"
- break
- fi
- fi
- done
-
- eval "kde_cv_path_$kde_cache=$kde_cv_path"
-
- ])
-
- eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
-
- fi
-
- if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
- AC_MSG_RESULT(not found)
- $4
- else
- AC_MSG_RESULT($kde_cv_path)
- $2=$kde_cv_path
-
- fi
-])
-
-AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
-[
- AC_MSG_ERROR([No Qt meta object compiler (moc) found!
-Please check whether you installed Qt correctly.
-You need to have a running moc binary.
-configure tried to run $ac_cv_path_moc and the test didn't
-succeed. If configure shouldn't have tried this one, set
-the environment variable MOC to the right one before running
-configure.
-])
-])
-
-AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
-[
- AC_MSG_WARN([No Qt ui compiler (uic) found!
-Please check whether you installed Qt correctly.
-You need to have a running uic binary.
-configure tried to run $ac_cv_path_uic and the test didn't
-succeed. If configure shouldn't have tried this one, set
-the environment variable UIC to the right one before running
-configure.
-])
-])
-
-
-AC_DEFUN([KDE_CHECK_UIC_FLAG],
-[
- AC_MSG_CHECKING([whether uic supports -$1 ])
- kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
- AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
- [
- cat >conftest.ui <<EOT
- <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
-EOT
- ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
- if AC_TRY_EVAL(ac_uic_testrun); then
- eval "kde_cv_prog_uic_$kde_cache=yes"
- else
- eval "kde_cv_prog_uic_$kde_cache=no"
- fi
- rm -f conftest*
- ])
-
- if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT([yes])
- :
- $3
- else
- AC_MSG_RESULT([no])
- :
- $4
- fi
-])
-
-
-dnl ------------------------------------------------------------------------
-dnl Find the meta object compiler and the ui compiler in the PATH,
-dnl in $QTDIR/bin, and some more usual places
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_PATH_QT_MOC_UIC],
-[
- AC_REQUIRE([KDE_CHECK_PERL])
- qt_bindirs=""
- for dir in $kde_qt_dirs; do
- qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
- done
- qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
- if test ! "$ac_qt_bindir" = "NO"; then
- qt_bindirs="$ac_qt_bindir $qt_bindirs"
- fi
-
- KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
- if test -z "$UIC_NOT_NEEDED"; then
- KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
- if test -z "$UIC_PATH" ; then
- KDE_UIC_ERROR_MESSAGE
- exit 1
- else
- UIC=$UIC_PATH
-
- if test $kde_qtver = 3; then
- KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
- KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
-
- if test x$ac_uic_supports_libpath = xyes; then
- UIC="$UIC -L \$(kde_widgetdir)"
- fi
- if test x$ac_uic_supports_nounload = xyes; then
- UIC="$UIC -nounload"
- fi
- fi
- fi
- else
- UIC="echo uic not available: "
- fi
-
- AC_SUBST(MOC)
- AC_SUBST(UIC)
-
- UIC_TR="i18n"
- if test $kde_qtver = 3; then
- UIC_TR="tr2i18n"
- fi
-
- AC_SUBST(UIC_TR)
-])
-
-AC_DEFUN([KDE_1_CHECK_PATHS],
-[
- KDE_1_CHECK_PATH_HEADERS
-
- KDE_TEST_RPATH=
-
- if test -n "$USE_RPATH"; then
-
- if test -n "$kde_libraries"; then
- KDE_TEST_RPATH="-R $kde_libraries"
- fi
-
- if test -n "$qt_libraries"; then
- KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
- fi
-
- if test -n "$x_libraries"; then
- KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
- fi
-
- KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
- fi
-
-AC_MSG_CHECKING([for KDE libraries installed])
-ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_ERROR([your system fails at linking a small KDE application!
-Check, if your compiler is installed correctly and if you have used the
-same compiler to compile Qt and kdelibs as you did use now.
-For more details about this problem, look at the end of config.log.])
-fi
-
-if eval `KDEDIR= ./conftest 2>&5`; then
- kde_result=done
-else
- kde_result=problems
-fi
-
-KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
-kde_have_all_paths=yes
-
-KDE_SET_PATHS($kde_result)
-
-])
-
-AC_DEFUN([KDE_SET_PATHS],
-[
- kde_cv_all_paths="kde_have_all_paths=\"yes\" \
- kde_htmldir=\"$kde_htmldir\" \
- kde_appsdir=\"$kde_appsdir\" \
- kde_icondir=\"$kde_icondir\" \
- kde_sounddir=\"$kde_sounddir\" \
- kde_datadir=\"$kde_datadir\" \
- kde_locale=\"$kde_locale\" \
- kde_cgidir=\"$kde_cgidir\" \
- kde_confdir=\"$kde_confdir\" \
- kde_kcfgdir=\"$kde_kcfgdir\" \
- kde_mimedir=\"$kde_mimedir\" \
- kde_toolbardir=\"$kde_toolbardir\" \
- kde_wallpaperdir=\"$kde_wallpaperdir\" \
- kde_templatesdir=\"$kde_templatesdir\" \
- kde_bindir=\"$kde_bindir\" \
- kde_servicesdir=\"$kde_servicesdir\" \
- kde_servicetypesdir=\"$kde_servicetypesdir\" \
- kde_moduledir=\"$kde_moduledir\" \
- kde_styledir=\"$kde_styledir\" \
- kde_widgetdir=\"$kde_widgetdir\" \
- xdg_appsdir=\"$xdg_appsdir\" \
- xdg_menudir=\"$xdg_menudir\" \
- xdg_directorydir=\"$xdg_directorydir\" \
- kde_result=$1"
-])
-
-AC_DEFUN([KDE_SET_DEFAULT_PATHS],
-[
-if test "$1" = "default"; then
-
- if test -z "$kde_htmldir"; then
- kde_htmldir='\${datadir}/doc/HTML'
- fi
- if test -z "$kde_appsdir"; then
- kde_appsdir='\${datadir}/applnk'
- fi
- if test -z "$kde_icondir"; then
- kde_icondir='\${datadir}/icons'
- fi
- if test -z "$kde_sounddir"; then
- kde_sounddir='\${datadir}/sounds'
- fi
- if test -z "$kde_datadir"; then
- kde_datadir='\${datadir}/apps'
- fi
- if test -z "$kde_locale"; then
- kde_locale='\${datadir}/locale'
- fi
- if test -z "$kde_cgidir"; then
- kde_cgidir='\${exec_prefix}/cgi-bin'
- fi
- if test -z "$kde_confdir"; then
- kde_confdir='\${datadir}/config'
- fi
- if test -z "$kde_kcfgdir"; then
- kde_kcfgdir='\${datadir}/config.kcfg'
- fi
- if test -z "$kde_mimedir"; then
- kde_mimedir='\${datadir}/mimelnk'
- fi
- if test -z "$kde_toolbardir"; then
- kde_toolbardir='\${datadir}/toolbar'
- fi
- if test -z "$kde_wallpaperdir"; then
- kde_wallpaperdir='\${datadir}/wallpapers'
- fi
- if test -z "$kde_templatesdir"; then
- kde_templatesdir='\${datadir}/templates'
- fi
- if test -z "$kde_bindir"; then
- kde_bindir='\${exec_prefix}/bin'
- fi
- if test -z "$kde_servicesdir"; then
- kde_servicesdir='\${datadir}/services'
- fi
- if test -z "$kde_servicetypesdir"; then
- kde_servicetypesdir='\${datadir}/servicetypes'
- fi
- if test -z "$kde_moduledir"; then
- if test "$kde_qtver" = "2"; then
- kde_moduledir='\${libdir}/kde2'
- else
- kde_moduledir='\${libdir}/kde3'
- fi
- fi
- if test -z "$kde_styledir"; then
- kde_styledir='\${libdir}/kde3/plugins/styles'
- fi
- if test -z "$kde_widgetdir"; then
- kde_widgetdir='\${libdir}/kde3/plugins/designer'
- fi
- if test -z "$xdg_appsdir"; then
- xdg_appsdir='\${datadir}/applications/kde'
- fi
- if test -z "$xdg_menudir"; then
- xdg_menudir='\${sysconfdir}/xdg/menus'
- fi
- if test -z "$xdg_directorydir"; then
- xdg_directorydir='\${datadir}/desktop-directories'
- fi
-
- KDE_SET_PATHS(defaults)
-
-else
-
- if test $kde_qtver = 1; then
- AC_MSG_RESULT([compiling])
- KDE_1_CHECK_PATHS
- else
- AC_MSG_ERROR([path checking not yet supported for KDE 2])
- fi
-
-fi
-])
-
-AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
-[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
- test -z "$kde_icondir" || test -z "$kde_sounddir" ||
- test -z "$kde_datadir" || test -z "$kde_locale" ||
- test -z "$kde_cgidir" || test -z "$kde_confdir" ||
- test -z "$kde_kcfgdir" ||
- test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
- test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
- test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
- test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
- test -z "$kde_styledir" || test -z "kde_widgetdir" ||
- test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
- test "x$kde_have_all_paths" != "xyes"; then
- kde_have_all_paths=no
- fi
-])
-
-AC_DEFUN([KDE_MISSING_PROG_ERROR],
-[
- AC_MSG_ERROR([The important program $1 was not found!
-Please check whether you installed KDE correctly.
-])
-])
-
-AC_DEFUN([KDE_MISSING_ARTS_ERROR],
-[
- AC_MSG_ERROR([The important program $1 was not found!
-Please check whether you installed aRts correctly or use
---without-arts to compile without aRts support (this will remove functionality).
-])
-])
-
-AC_DEFUN([KDE_SET_DEFAULT_BINDIRS],
-[
- kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
- test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
- if test -n "$KDEDIRS"; then
- kde_save_IFS=$IFS
- IFS=:
- for dir in $KDEDIRS; do
- kde_default_bindirs="$dir/bin $kde_default_bindirs "
- done
- IFS=$kde_save_IFS
- fi
-])
-
-AC_DEFUN([KDE_SUBST_PROGRAMS],
-[
- AC_ARG_WITH(arts,
- AC_HELP_STRING([--without-arts],[build without aRts [default=no]]),
- [build_arts=$withval],
- [build_arts=yes]
- )
- AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
- if test "$build_arts" = "no"; then
- AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts])
- fi
-
- KDE_SET_DEFAULT_BINDIRS
- kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
- KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
- KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
- if test "$build_arts" '!=' "no"; then
- KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
- KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
- fi
- KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
-
- kde32ornewer=1
- kde33ornewer=1
- if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
- kde32ornewer=
- kde33ornewer=
- else
- if test "$kde_qtver" = "3"; then
- if test "$kde_qtsubver" -le 1; then
- kde32ornewer=
- fi
- if test "$kde_qtsubver" -le 2; then
- kde33ornewer=
- fi
- if test "$KDECONFIG" != "compiled"; then
- if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
- kde33ornewer=
- fi
- fi
- fi
- fi
-
- if test -n "$kde32ornewer"; then
- KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
- KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
- fi
- if test -n "$kde33ornewer"; then
- KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)])
- AC_SUBST(MAKEKDEWIDGETS)
- fi
- KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""])
-
- if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
- kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
- test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
- AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
- if test "$KDE_XSL_STYLESHEET" = "NO"; then
- KDE_XSL_STYLESHEET=""
- else
- KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
- fi
- fi
-
- DCOP_DEPENDENCIES='$(DCOPIDL)'
- if test -n "$kde32ornewer"; then
- KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
- DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
- AC_SUBST(KCONFIG_COMPILER)
- AC_SUBST(KCFG_DEPENDENCIES)
- AC_SUBST(DCOPIDLNG)
- fi
- AC_SUBST(DCOPIDL)
- AC_SUBST(DCOPIDL2CPP)
- AC_SUBST(DCOP_DEPENDENCIES)
- AC_SUBST(MCOPIDL)
- AC_SUBST(ARTSCCONFIG)
- AC_SUBST(MEINPROC)
- AC_SUBST(KDE_XSL_STYLESHEET)
- AC_SUBST(XMLLINT)
-])dnl
-
-AC_DEFUN([AC_CREATE_KFSSTND],
-[
-AC_REQUIRE([AC_CHECK_RPATH])
-
-AC_MSG_CHECKING([for KDE paths])
-kde_result=""
-kde_cached_paths=yes
-AC_CACHE_VAL(kde_cv_all_paths,
-[
- KDE_SET_DEFAULT_PATHS($1)
- kde_cached_paths=no
-])
-eval "$kde_cv_all_paths"
-KDE_CHECK_PATHS_FOR_COMPLETENESS
-if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
- # wrong values were cached, may be, we can set better ones
- kde_result=
- kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
- kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir=
- kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
- kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
- kde_have_all_paths=
- kde_styledir=
- kde_widgetdir=
- xdg_appsdir = xdg_menudir= xdg_directorydir=
- KDE_SET_DEFAULT_PATHS($1)
- eval "$kde_cv_all_paths"
- KDE_CHECK_PATHS_FOR_COMPLETENESS
- kde_result="$kde_result (cache overridden)"
-fi
-if test "$kde_have_all_paths" = "no"; then
- AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
-Since it had compiled and linked before, it must be a strange problem on your system.
-Look at config.log for details. If you are not able to fix this, look at
-http://www.kde.org/faq/installation.html or any www.kde.org mirror.
-(If you're using an egcs version on Linux, you may update binutils!)
-])
-else
- rm -f conftest*
- AC_MSG_RESULT($kde_result)
-fi
-
-bindir=$kde_bindir
-
-KDE_SUBST_PROGRAMS
-
-])
-
-AC_DEFUN([AC_SUBST_KFSSTND],
-[
-AC_SUBST(kde_htmldir)
-AC_SUBST(kde_appsdir)
-AC_SUBST(kde_icondir)
-AC_SUBST(kde_sounddir)
-AC_SUBST(kde_datadir)
-AC_SUBST(kde_locale)
-AC_SUBST(kde_confdir)
-AC_SUBST(kde_kcfgdir)
-AC_SUBST(kde_mimedir)
-AC_SUBST(kde_wallpaperdir)
-AC_SUBST(kde_bindir)
-dnl X Desktop Group standards
-AC_SUBST(xdg_appsdir)
-AC_SUBST(xdg_menudir)
-AC_SUBST(xdg_directorydir)
-dnl for KDE 2
-AC_SUBST(kde_templatesdir)
-AC_SUBST(kde_servicesdir)
-AC_SUBST(kde_servicetypesdir)
-AC_SUBST(kde_moduledir)
-AC_SUBST(kdeinitdir, '$(kde_moduledir)')
-AC_SUBST(kde_styledir)
-AC_SUBST(kde_widgetdir)
-if test "$kde_qtver" = 1; then
- kde_minidir="$kde_icondir/mini"
-else
-# for KDE 1 - this breaks KDE2 apps using minidir, but
-# that's the plan ;-/
- kde_minidir="/dev/null"
-fi
-dnl AC_SUBST(kde_minidir)
-dnl AC_SUBST(kde_cgidir)
-dnl AC_SUBST(kde_toolbardir)
-])
-
-AC_DEFUN([KDE_MISC_TESTS],
-[
- dnl Checks for libraries.
- AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD
- AC_SUBST(LIBUTIL)
- AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
- AC_SUBST(LIBCOMPAT)
- kde_have_crypt=
- AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
- AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
- AC_MSG_WARN([you have no crypt in either libcrypt or libc.
-You should install libcrypt from another source or configure with PAM
-support])
- kde_have_crypt=no
- ]))
- AC_SUBST(LIBCRYPT)
- if test $kde_have_crypt = yes; then
- AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
- fi
- AC_CHECK_SOCKLEN_T
- AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- AC_CHECK_LIB(dnet_stub, dnet_ntoa,
- [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
- fi
- AC_CHECK_FUNC(inet_ntoa)
- if test $ac_cv_func_inet_ntoa = no; then
- AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
- fi
- AC_CHECK_FUNC(connect)
- if test $ac_cv_func_connect = no; then
- AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
- $X_EXTRA_LIBS)
- fi
-
- AC_CHECK_FUNC(remove)
- if test $ac_cv_func_remove = no; then
- AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
- fi
-
- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- AC_CHECK_FUNC(shmat, ,
- AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
-
- # more headers that need to be explicitly included on darwin
- AC_CHECK_HEADERS(sys/types.h stdint.h)
-
- # sys/bitypes.h is needed for uint32_t and friends on Tru64
- AC_CHECK_HEADERS(sys/bitypes.h)
-
- # darwin requires a poll emulation library
- AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
-
- # for some image handling on Mac OS X
- AC_CHECK_HEADERS(Carbon/Carbon.h)
-
- # CoreAudio framework
- AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
- AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
- FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio"
- ])
-
- AC_CHECK_RES_INIT
- AC_SUBST(LIB_POLL)
- AC_SUBST(FRAMEWORK_COREAUDIO)
- LIBSOCKET="$X_EXTRA_LIBS"
- AC_SUBST(LIBSOCKET)
- AC_SUBST(X_EXTRA_LIBS)
- AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
- AC_SUBST(LIBUCB)
-
- case $host in dnl this *is* LynxOS specific
- *-*-lynxos* )
- AC_MSG_CHECKING([LynxOS header file wrappers])
- [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
- AC_MSG_RESULT(disabled)
- AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
- ;;
- esac
-
- KDE_CHECK_TYPES
- KDE_CHECK_LIBDL
- KDE_CHECK_STRLCPY
- KDE_CHECK_PIE_SUPPORT
-
-# darwin needs this to initialize the environment
-AC_CHECK_HEADERS(crt_externs.h)
-AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
-
-AH_VERBATIM(_DARWIN_ENVIRON,
-[
-#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
-# include <sys/time.h>
-# include <crt_externs.h>
-# define environ (*_NSGetEnviron())
-#endif
-])
-
-AH_VERBATIM(_AIX_STRINGS_H_BZERO,
-[
-/*
- * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
- * that defines bzero.
- */
-
-#if defined(_AIX)
-#include <strings.h>
-#endif
-])
-
-AC_CHECK_FUNCS([vsnprintf snprintf])
-
-AH_VERBATIM(_TRU64,[
-/*
- * On HP-UX, the declaration of vsnprintf() is needed every time !
- */
-
-#if !defined(HAVE_VSNPRINTF) || defined(hpux)
-#if __STDC__
-#include <stdarg.h>
-#include <stdlib.h>
-#else
-#include <varargs.h>
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
-#ifdef __cplusplus
-extern "C"
-#endif
-int snprintf(char *str, size_t n, char const *fmt, ...);
-#endif
-])
-
-])
-
-dnl ------------------------------------------------------------------------
-dnl Find the header files and libraries for X-Windows. Extended the
-dnl macro AC_PATH_X
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([K_PATH_X],
-[
-AC_REQUIRE([KDE_MISC_TESTS])dnl
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_ARG_ENABLE(
- embedded,
- AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
- kde_use_qt_emb=$enableval,
- kde_use_qt_emb=no
-)
-
-AC_ARG_ENABLE(
- qtopia,
- AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
- kde_use_qt_emb_palm=$enableval,
- kde_use_qt_emb_palm=no
-)
-
-AC_ARG_ENABLE(
- mac,
- AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
- kde_use_qt_mac=$enableval,
- kde_use_qt_mac=no
-)
-
-# used to disable x11-specific stuff on special platforms
-AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
-
-if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
-
-AC_MSG_CHECKING(for X)
-
-AC_CACHE_VAL(kde_cv_have_x,
-[# One or both of the vars are not set, and there is no cached value.
-if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
- kde_x_includes=NO
-else
- kde_x_includes=$x_includes
-fi
-if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
- kde_x_libraries=NO
-else
- kde_x_libraries=$x_libraries
-fi
-
-# below we use the standard autoconf calls
-ac_x_libraries=$kde_x_libraries
-ac_x_includes=$kde_x_includes
-
-KDE_PATH_X_DIRECT
-dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
-dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
-dnl location. The correct location is /usr/lib32 or an undefined value
-dnl (the linker is smart enough to pick the correct default library).
-dnl Things work just fine if you use just AC_PATH_X_DIRECT.
-dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
-dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
-dnl x_includes should be left alone.
-case "$host" in
-mips-sgi-irix6*)
- ;;
-*-*-solaris*)
- ;;
-*)
- _AC_PATH_X_XMKMF
- if test -z "$ac_x_includes"; then
- ac_x_includes="."
- fi
- if test -z "$ac_x_libraries"; then
- ac_x_libraries="/usr/lib${kdelibsuff}"
- fi
-esac
-#from now on we use our own again
-
-# when the user already gave --x-includes, we ignore
-# what the standard autoconf macros told us.
-if test "$kde_x_includes" = NO; then
- kde_x_includes=$ac_x_includes
-fi
-
-# for --x-libraries too
-if test "$kde_x_libraries" = NO; then
- kde_x_libraries=$ac_x_libraries
-fi
-
-if test "$kde_x_includes" = NO; then
- AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
-fi
-
-if test "$kde_x_libraries" = NO; then
- AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
-fi
-
-# Record where we found X for the cache.
-kde_cv_have_x="have_x=yes \
- kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
-])dnl
-
-eval "$kde_cv_have_x"
-
-if test "$have_x" != yes; then
- AC_MSG_RESULT($have_x)
- no_x=yes
-else
- AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
-fi
-
-if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
- X_INCLUDES=""
- x_includes="."; dnl better than nothing :-
- else
- x_includes=$kde_x_includes
- X_INCLUDES="-I$x_includes"
-fi
-
-if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then
- X_LDFLAGS=""
- x_libraries="/usr/lib"; dnl better than nothing :-
- else
- x_libraries=$kde_x_libraries
- X_LDFLAGS="-L$x_libraries"
-fi
-all_includes="$X_INCLUDES"
-all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
-
-# Check for libraries that X11R6 Xt/Xaw programs need.
-ac_save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $X_LDFLAGS"
-# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-# check for ICE first), but we must link in the order -lSM -lICE or
-# we get undefined symbols. So assume we have SM if we have ICE.
-# These have to be linked with before -lX11, unlike the other
-# libraries we check for below, so use a different variable.
-# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
-AC_CHECK_LIB(ICE, IceConnectionNumber,
- [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
-LDFLAGS="$ac_save_LDFLAGS"
-
-LIB_X11='-lX11 $(LIBSOCKET)'
-
-AC_MSG_CHECKING(for libXext)
-AC_CACHE_VAL(kde_cv_have_libXext,
-[
-kde_ldflags_safe="$LDFLAGS"
-kde_libs_safe="$LIBS"
-
-LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
-LIBS="-lXext -lX11 $LIBSOCKET"
-
-AC_TRY_LINK([
-#include <stdio.h>
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-],
-[
-printf("hello Xext\n");
-],
-kde_cv_have_libXext=yes,
-kde_cv_have_libXext=no
-)
-
-LDFLAGS=$kde_ldflags_safe
-LIBS=$kde_libs_safe
-])
-
-AC_MSG_RESULT($kde_cv_have_libXext)
-
-if test "$kde_cv_have_libXext" = "no"; then
- AC_MSG_ERROR([We need a working libXext to proceed. Since configure
-can't find it itself, we stop here assuming that make wouldn't find
-them either.])
-fi
-
-LIB_XEXT="-lXext"
-QTE_NORTTI=""
-
-elif test "$kde_use_qt_emb" = "yes"; then
- dnl We're using QT Embedded
- CPPFLAGS=-DQWS
- CXXFLAGS="$CXXFLAGS -fno-rtti"
- QTE_NORTTI="-fno-rtti -DQWS"
- X_PRE_LIBS=""
- LIB_X11=""
- LIB_XEXT=""
- LIB_XRENDER=""
- LIBSM=""
- X_INCLUDES=""
- X_LDFLAGS=""
- x_includes=""
- x_libraries=""
-elif test "$kde_use_qt_mac" = "yes"; then
- dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
- dnl be included to get the information) --Sam
- CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
- CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
- X_PRE_LIBS=""
- LIB_X11=""
- LIB_XEXT=""
- LIB_XRENDER=""
- LIBSM=""
- X_INCLUDES=""
- X_LDFLAGS=""
- x_includes=""
- x_libraries=""
-fi
-AC_SUBST(X_PRE_LIBS)
-AC_SUBST(LIB_X11)
-AC_SUBST(LIB_XRENDER)
-AC_SUBST(LIBSM)
-AC_SUBST(X_INCLUDES)
-AC_SUBST(X_LDFLAGS)
-AC_SUBST(x_includes)
-AC_SUBST(x_libraries)
-AC_SUBST(QTE_NORTTI)
-AC_SUBST(LIB_XEXT)
-
-])
-
-AC_DEFUN([KDE_PRINT_QT_PROGRAM],
-[
-AC_REQUIRE([KDE_USE_QT])
-cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <qglobal.h>
-#include <qapplication.h>
-EOF
-if test "$kde_qtver" = "2"; then
-cat >> conftest.$ac_ext <<EOF
-#include <qevent.h>
-#include <qstring.h>
-#include <qstyle.h>
-EOF
-
-if test $kde_qtsubver -gt 0; then
-cat >> conftest.$ac_ext <<EOF
-#if QT_VERSION < 210
-#error 1
-#endif
-EOF
-fi
-fi
-
-if test "$kde_qtver" = "3"; then
-cat >> conftest.$ac_ext <<EOF
-#include <qcursor.h>
-#include <qstylefactory.h>
-#include <private/qucomextra_p.h>
-EOF
-fi
-
-echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
-cat >> conftest.$ac_ext <<EOF
-#error 1
-#endif
-
-int main() {
-EOF
-if test "$kde_qtver" = "2"; then
-cat >> conftest.$ac_ext <<EOF
- QStringList *t = new QStringList();
- Q_UNUSED(t);
-EOF
-if test $kde_qtsubver -gt 0; then
-cat >> conftest.$ac_ext <<EOF
- QString s;
- s.setLatin1("Elvis is alive", 14);
-EOF
-fi
-fi
-if test "$kde_qtver" = "3"; then
-cat >> conftest.$ac_ext <<EOF
- (void)QStyleFactory::create(QString::null);
- QCursor c(Qt::WhatsThisCursor);
-EOF
-fi
-cat >> conftest.$ac_ext <<EOF
- return 0;
-}
-EOF
-])
-
-AC_DEFUN([KDE_USE_QT],
-[
-if test -z "$1"; then
- # Current default Qt version: 3.3
- kde_qtver=3
- kde_qtsubver=3
-else
- kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
- # following is the check if subversion isnt found in passed argument
- if test "$kde_qtsubver" = "$1"; then
- kde_qtsubver=1
- fi
- kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
- if test "$kde_qtver" = "1"; then
- kde_qtsubver=42
- fi
-fi
-
-if test -z "$2"; then
- if test "$kde_qtver" = "2"; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_minversion=">= Qt 2.2.2"
- else
- kde_qt_minversion=">= Qt 2.0.2"
- fi
- fi
- if test "$kde_qtver" = "3"; then
- if test $kde_qtsubver -gt 0; then
- if test $kde_qtsubver -gt 1; then
- if test $kde_qtsubver -gt 2; then
- kde_qt_minversion=">= Qt 3.3 and < 4.0"
- else
- kde_qt_minversion=">= Qt 3.2 and < 4.0"
- fi
- else
- kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
- fi
- else
- kde_qt_minversion=">= Qt 3.0 and < 4.0"
- fi
- fi
- if test "$kde_qtver" = "1"; then
- kde_qt_minversion=">= 1.42 and < 2.0"
- fi
-else
- kde_qt_minversion="$2"
-fi
-
-if test -z "$3"; then
- if test $kde_qtver = 3; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000"
- qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
- kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"`
- else
- kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
- fi
- fi
- if test $kde_qtver = 2; then
- if test $kde_qtsubver -gt 0; then
- kde_qt_verstring="QT_VERSION >= 222"
- else
- kde_qt_verstring="QT_VERSION >= 200"
- fi
- fi
- if test $kde_qtver = 1; then
- kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
- fi
-else
- kde_qt_verstring="$3"
-fi
-
-if test $kde_qtver = 4; then
- kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
-fi
-if test $kde_qtver = 3; then
- kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3 /usr/lib${kdelibsuff}/qt-3.3"
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- fi
- if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- kde_qt_dirs="$kde_qt_dirs `$PKG_CONFIG --variable=prefix qt-mt`"
- fi
- fi
-fi
-if test $kde_qtver = 2; then
- kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
-fi
-if test $kde_qtver = 1; then
- kde_qt_dirs="$QTDIR /usr/lib/qt"
-fi
-])
-
-AC_DEFUN([KDE_CHECK_QT_DIRECT],
-[
-AC_REQUIRE([KDE_USE_QT])
-AC_MSG_CHECKING([if Qt compiles without flags])
-AC_CACHE_VAL(kde_cv_qt_direct,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
-ac_LIBRARY_PATH="$LIBRARY_PATH"
-ac_cxxflags_safe="$CXXFLAGS"
-ac_ldflags_safe="$LDFLAGS"
-ac_libs_safe="$LIBS"
-
-CXXFLAGS="$CXXFLAGS -I$qt_includes"
-LDFLAGS="$LDFLAGS $X_LDFLAGS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
-else
-LIBS="$LIBQT $LIBSOCKET"
-fi
-LD_LIBRARY_PATH=
-export LD_LIBRARY_PATH
-LIBRARY_PATH=
-export LIBRARY_PATH
-
-KDE_PRINT_QT_PROGRAM
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- kde_cv_qt_direct="yes"
-else
- kde_cv_qt_direct="no"
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.$ac_ext >&AC_FD_CC
-fi
-
-rm -f conftest*
-CXXFLAGS="$ac_cxxflags_safe"
-LDFLAGS="$ac_ldflags_safe"
-LIBS="$ac_libs_safe"
-
-LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
-export LD_LIBRARY_PATH
-LIBRARY_PATH="$ac_LIBRARY_PATH"
-export LIBRARY_PATH
-AC_LANG_RESTORE
-])
-
-if test "$kde_cv_qt_direct" = "yes"; then
- AC_MSG_RESULT(yes)
- $1
-else
- AC_MSG_RESULT(no)
- $2
-fi
-])
-
-dnl ------------------------------------------------------------------------
-dnl Try to find the Qt headers and libraries.
-dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
-dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_PATH_QT_1_3],
-[
-AC_REQUIRE([K_PATH_X])
-AC_REQUIRE([KDE_USE_QT])
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-dnl ------------------------------------------------------------------------
-dnl Add configure flag to enable linking to MT version of Qt library.
-dnl ------------------------------------------------------------------------
-
-AC_ARG_ENABLE(
- mt,
- AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
- kde_use_qt_mt=$enableval,
- [
- if test $kde_qtver = 3; then
- kde_use_qt_mt=yes
- else
- kde_use_qt_mt=no
- fi
- ]
-)
-
-USING_QT_MT=""
-
-dnl ------------------------------------------------------------------------
-dnl If we not get --disable-qt-mt then adjust some vars for the host.
-dnl ------------------------------------------------------------------------
-
-KDE_MT_LDFLAGS=
-KDE_MT_LIBS=
-if test "x$kde_use_qt_mt" = "xyes"; then
- KDE_CHECK_THREADING
- if test "x$kde_use_threading" = "xyes"; then
- CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
- KDE_MT_LDFLAGS="$USE_THREADS"
- KDE_MT_LIBS="$LIBPTHREAD"
- else
- kde_use_qt_mt=no
- fi
-fi
-AC_SUBST(KDE_MT_LDFLAGS)
-AC_SUBST(KDE_MT_LIBS)
-
-kde_qt_was_given=yes
-
-dnl ------------------------------------------------------------------------
-dnl If we haven't been told how to link to Qt, we work it out for ourselves.
-dnl ------------------------------------------------------------------------
-if test -z "$LIBQT_GLOB"; then
- if test "x$kde_use_qt_emb" = "xyes"; then
- LIBQT_GLOB="libqte.*"
- else
- LIBQT_GLOB="libqt.*"
- fi
-fi
-
-dnl ------------------------------------------------------------
-dnl If we got --enable-embedded then adjust the Qt library name.
-dnl ------------------------------------------------------------
-if test "x$kde_use_qt_emb" = "xyes"; then
- qtlib="qte"
-else
- qtlib="qt"
-fi
-
-kde_int_qt="-l$qtlib"
-
-if test -z "$LIBQPE"; then
-dnl ------------------------------------------------------------
-dnl If we got --enable-palmtop then add -lqpe to the link line
-dnl ------------------------------------------------------------
- if test "x$kde_use_qt_emb" = "xyes"; then
- if test "x$kde_use_qt_emb_palm" = "xyes"; then
- LIB_QPE="-lqpe"
- else
- LIB_QPE=""
- fi
- else
- LIB_QPE=""
- fi
-fi
-
-dnl ------------------------------------------------------------------------
-dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
-dnl ------------------------------------------------------------------------
-
-if test "x$kde_use_qt_mt" = "xyes"; then
- LIBQT="-l$qtlib-mt"
- kde_int_qt="-l$qtlib-mt"
- LIBQT_GLOB="lib$qtlib-mt.*"
- USING_QT_MT="using -mt"
-else
- LIBQT="-l$qtlib"
-fi
-
-if test $kde_qtver != 1; then
-
- AC_REQUIRE([AC_FIND_PNG])
- AC_REQUIRE([AC_FIND_JPEG])
- LIBQT="$LIBQT $LIBPNG $LIBJPEG"
-fi
-
-if test $kde_qtver = 3; then
- AC_REQUIRE([KDE_CHECK_LIBDL])
- LIBQT="$LIBQT $LIBDL"
-fi
-
-AC_MSG_CHECKING([for Qt])
-
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
-fi
-ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
-qt_libraries=""
-qt_includes=""
-AC_ARG_WITH(qt-dir,
- AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
- [ ac_qt_includes="$withval"/include
- ac_qt_libraries="$withval"/lib${kdelibsuff}
- ac_qt_bindir="$withval"/bin
- ])
-
-AC_ARG_WITH(qt-includes,
- AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
- [
- ac_qt_includes="$withval"
- ])
-
-kde_qt_libs_given=no
-
-AC_ARG_WITH(qt-libraries,
- AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
- [ ac_qt_libraries="$withval"
- kde_qt_libs_given=yes
- ])
-
-AC_CACHE_VAL(ac_cv_have_qt,
-[#try to guess Qt locations
-
-qt_incdirs=""
-for dir in $kde_qt_dirs; do
- qt_incdirs="$qt_incdirs $dir/include $dir"
-done
-if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-fi
-if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- qt_incdirs="$qt_incdirs `$PKG_CONFIG --variable=includedir qt-mt`"
- fi
-fi
-qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
-if test ! "$ac_qt_includes" = "NO"; then
- qt_incdirs="$ac_qt_includes $qt_incdirs"
-fi
-
-if test "$kde_qtver" != "1"; then
- kde_qt_header=qstyle.h
-else
- kde_qt_header=qglobal.h
-fi
-
-AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
-ac_qt_includes="$qt_incdir"
-
-qt_libdirs=""
-for dir in $kde_qt_dirs; do
- qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir/lib $dir"
-done
-if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-fi
-if test "$PKG_CONFIG" != "no" ; then
- if $PKG_CONFIG --exists qt-mt ; then
- qt_libdirs="$qt_incdirs `$PKG_CONFIG --variable=libdir qt-mt`"
- fi
-fi
-qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
-if test ! "$ac_qt_libraries" = "NO"; then
- qt_libdir=$ac_qt_libraries
-else
- qt_libdirs="$ac_qt_libraries $qt_libdirs"
- # if the Qt was given, the chance is too big that libqt.* doesn't exist
- qt_libdir=NONE
- for dir in $qt_libdirs; do
- try="ls -1 $dir/${LIBQT_GLOB}"
- if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
- done
-fi
-for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
- if test -e "$a"; then
- LIBQT="$LIBQT ${kde_int_qt}_incremental"
- break
- fi
-done
-
-ac_qt_libraries="$qt_libdir"
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
-ac_cxxflags_safe="$CXXFLAGS"
-ac_ldflags_safe="$LDFLAGS"
-ac_libs_safe="$LIBS"
-
-CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
-LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
-LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
-
-KDE_PRINT_QT_PROGRAM
-
-if AC_TRY_EVAL(ac_link) && test -s conftest; then
- rm -f conftest*
-else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.$ac_ext >&AC_FD_CC
- ac_qt_libraries="NO"
-fi
-rm -f conftest*
-CXXFLAGS="$ac_cxxflags_safe"
-LDFLAGS="$ac_ldflags_safe"
-LIBS="$ac_libs_safe"
-
-AC_LANG_RESTORE
-if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
- ac_cv_have_qt="have_qt=no"
- ac_qt_notfound=""
- missing_qt_mt=""
- if test "$ac_qt_includes" = NO; then
- if test "$ac_qt_libraries" = NO; then
- ac_qt_notfound="(headers and libraries)";
- else
- ac_qt_notfound="(headers)";
- fi
- else
- if test "x$kde_use_qt_mt" = "xyes"; then
- missing_qt_mt="
-Make sure that you have compiled Qt with thread support!"
- ac_qt_notfound="(library $qtlib-mt)";
- else
- ac_qt_notfound="(library $qtlib)";
- fi
- fi
-
- AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
-For more details about this problem, look at the end of config.log.$missing_qt_mt])
-else
- have_qt="yes"
-fi
-])
-
-eval "$ac_cv_have_qt"
-
-if test "$have_qt" != yes; then
- AC_MSG_RESULT([$have_qt]);
-else
- ac_cv_have_qt="have_qt=yes \
- ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
- AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
-
- qt_libraries="$ac_qt_libraries"
- qt_includes="$ac_qt_includes"
-fi
-
-if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
- KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
-fi
-
-AC_SUBST(qt_libraries)
-AC_SUBST(qt_includes)
-
-if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
- QT_INCLUDES=""
-else
- QT_INCLUDES="-I$qt_includes"
- all_includes="$QT_INCLUDES $all_includes"
-fi
-
-if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
- QT_LDFLAGS=""
-else
- QT_LDFLAGS="-L$qt_libraries"
- all_libraries="$QT_LDFLAGS $all_libraries"
-fi
-test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
-
-AC_SUBST(QT_INCLUDES)
-AC_SUBST(QT_LDFLAGS)
-AC_PATH_QT_MOC_UIC
-
-KDE_CHECK_QT_JPEG
-
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
-else
-LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
-fi
-test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
-for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
- if test -e "$a"; then
- LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
- break
- fi
-done
-
-AC_SUBST(LIB_QT)
-AC_SUBST(LIB_QPE)
-
-AC_SUBST(kde_qtver)
-])
-
-AC_DEFUN([AC_PATH_QT],
-[
-AC_PATH_QT_1_3
-])
-
-AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
-[
-AC_REQUIRE([AC_PATH_QT_MOC_UIC])
-
-if test x$ac_uic_supports_libpath = xyes; then
-
-AC_MSG_CHECKING([if UIC has KDE plugins available])
-AC_CACHE_VAL(kde_cv_uic_plugins,
-[
-cat > actest.ui << EOF
-<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
-<class>NewConnectionDialog</class>
-<widget class="QDialog">
- <widget class="KLineEdit">
- <property name="name">
- <cstring>testInput</cstring>
- </property>
- </widget>
-</widget>
-</UI>
-EOF
-
-
-
-kde_cv_uic_plugins=no
-kde_line="$UIC_PATH -L $kde_widgetdir"
-if test x$ac_uic_supports_nounload = xyes; then
- kde_line="$kde_line -nounload"
-fi
-kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
-if AC_TRY_EVAL(kde_line); then
- # if you're trying to debug this check and think it's incorrect,
- # better check your installation. The check _is_ correct - your
- # installation is not.
- if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
- kde_cv_uic_plugins=yes
- fi
-fi
-rm -f actest.ui actest.cpp
-])
-
-AC_MSG_RESULT([$kde_cv_uic_plugins])
-if test "$kde_cv_uic_plugins" != yes; then
- AC_MSG_ERROR([
-you need to install kdelibs first.
-
-If you did install kdelibs, then the Qt version that is picked up by
-this configure is not the same version you used to compile kdelibs.
-The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
-_same Qt version_, compiled with the _same compiler_ and the same Qt
-configuration settings.
-])
-fi
-fi
-])
-
-AC_DEFUN([KDE_CHECK_FINAL],
-[
- AC_ARG_ENABLE(final,
- AC_HELP_STRING([--enable-final],
- [build size optimized apps (experimental - needs lots of memory)]),
- kde_use_final=$enableval, kde_use_final=no)
-
- if test "x$kde_use_final" = "xyes"; then
- KDE_USE_FINAL_TRUE=""
- KDE_USE_FINAL_FALSE="#"
- else
- KDE_USE_FINAL_TRUE="#"
- KDE_USE_FINAL_FALSE=""
- fi
- AC_SUBST(KDE_USE_FINAL_TRUE)
- AC_SUBST(KDE_USE_FINAL_FALSE)
-])
-
-AC_DEFUN([KDE_CHECK_CLOSURE],
-[
- AC_ARG_ENABLE(closure,
- AC_HELP_STRING([--enable-closure],[delay template instantiation]),
- kde_use_closure=$enableval, kde_use_closure=no)
-
- KDE_NO_UNDEFINED=""
- if test "x$kde_use_closure" = "xyes"; then
- KDE_USE_CLOSURE_TRUE=""
- KDE_USE_CLOSURE_FALSE="#"
-# CXXFLAGS="$CXXFLAGS $REPO"
- else
- KDE_USE_CLOSURE_TRUE="#"
- KDE_USE_CLOSURE_FALSE=""
- KDE_NO_UNDEFINED=""
- case $host in
- *-*-linux-gnu)
- KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
- [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
- [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
- [KDE_NO_UNDEFINED=""])],
- [KDE_NO_UNDEFINED=""])
- ;;
- esac
- fi
- AC_SUBST(KDE_USE_CLOSURE_TRUE)
- AC_SUBST(KDE_USE_CLOSURE_FALSE)
- AC_SUBST(KDE_NO_UNDEFINED)
-])
-
-dnl Check if the linker supports --enable-new-dtags and --as-needed
-AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],
-[
- AC_ARG_ENABLE(new_ldflags,
- AC_HELP_STRING([--enable-new-ldflags],
- [enable the new linker flags]),
- kde_use_new_ldflags=$enableval,
- kde_use_new_ldflags=no)
-
- LDFLAGS_AS_NEEDED=""
- LDFLAGS_NEW_DTAGS=""
- if test "x$kde_use_new_ldflags" = "xyes"; then
- LDFLAGS_NEW_DTAGS=""
- KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
- [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)
-
- KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
- [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
- fi
- AC_SUBST(LDFLAGS_AS_NEEDED)
- AC_SUBST(LDFLAGS_NEW_DTAGS)
-])
-
-AC_DEFUN([KDE_CHECK_NMCHECK],
-[
- AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
- kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
-
- if test "$kde_use_nmcheck" = "yes"; then
- KDE_USE_NMCHECK_TRUE=""
- KDE_USE_NMCHECK_FALSE="#"
- else
- KDE_USE_NMCHECK_TRUE="#"
- KDE_USE_NMCHECK_FALSE=""
- fi
- AC_SUBST(KDE_USE_NMCHECK_TRUE)
- AC_SUBST(KDE_USE_NMCHECK_FALSE)
-])
-
-AC_DEFUN([KDE_EXPAND_MAKEVAR], [
-savex=$exec_prefix
-test "x$exec_prefix" = xNONE && exec_prefix=$prefix
-tmp=$$2
-while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
-exec_prefix=$savex
-])
-
-dnl ------------------------------------------------------------------------
-dnl Now, the same with KDE
-dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
-dnl and $(kde_includes) will be the kdehdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_BASE_PATH_KDE],
-[
-AC_REQUIRE([KDE_CHECK_STL])
-AC_REQUIRE([AC_PATH_QT])dnl
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_CHECK_RPATH
-AC_MSG_CHECKING([for KDE])
-
-if test "${prefix}" != NONE; then
- kde_includes=${includedir}
- KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
-
- kde_libraries=${libdir}
- KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
-
-else
- ac_kde_includes=
- ac_kde_libraries=
- kde_libraries=""
- kde_includes=""
-fi
-
-AC_CACHE_VAL(ac_cv_have_kde,
-[#try to guess kde locations
-
-if test "$kde_qtver" = 1; then
- kde_check_header="ksock.h"
- kde_check_lib="libkdecore.la"
-else
- kde_check_header="ksharedptr.h"
- kde_check_lib="libkio.la"
-fi
-
-if test -z "$1"; then
-
-kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
-test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
-kde_incdirs="$ac_kde_includes $kde_incdirs"
-AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
-ac_kde_includes="$kde_incdir"
-
-if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
- AC_MSG_ERROR([
-in the prefix, you've chosen, are no KDE headers installed. This will fail.
-So, check this please and use another prefix!])
-fi
-
-kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
-test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
-kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
-AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
-ac_kde_libraries="$kde_libdir"
-
-kde_widgetdir=NO
-dnl this might be somewhere else
-AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
-
-if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
-AC_MSG_ERROR([
-in the prefix, you've chosen, are no KDE libraries installed. This will fail.
-So, check this please and use another prefix!])
-fi
-
-if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
-AC_MSG_ERROR([
-I can't find the designer plugins. These are required and should have been installed
-by kdelibs])
-fi
-
-if test -n "$kde_widgetdir"; then
- kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
-fi
-
-
-if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
- ac_cv_have_kde="have_kde=no"
-else
- ac_cv_have_kde="have_kde=yes \
- ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
-fi
-
-else dnl test -z $1, e.g. from kdelibs
-
- ac_cv_have_kde="have_kde=no"
-
-fi
-])dnl
-
-eval "$ac_cv_have_kde"
-
-if test "$have_kde" != "yes"; then
- if test "${prefix}" = NONE; then
- ac_kde_prefix="$ac_default_prefix"
- else
- ac_kde_prefix="$prefix"
- fi
- if test "$exec_prefix" = NONE; then
- ac_kde_exec_prefix="$ac_kde_prefix"
- AC_MSG_RESULT([will be installed in $ac_kde_prefix])
- else
- ac_kde_exec_prefix="$exec_prefix"
- AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
- fi
-
- kde_libraries="${libdir}"
- kde_includes="${includedir}"
-
-else
- ac_cv_have_kde="have_kde=yes \
- ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
- AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
-
- kde_libraries="$ac_kde_libraries"
- kde_includes="$ac_kde_includes"
-fi
-AC_SUBST(kde_libraries)
-AC_SUBST(kde_includes)
-
-if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
- KDE_INCLUDES=""
-else
- KDE_INCLUDES="-I$kde_includes"
- all_includes="$KDE_INCLUDES $all_includes"
-fi
-
-KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
-
-KDE_LDFLAGS="-L$kde_libraries"
-if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
- all_libraries="$KDE_LDFLAGS $all_libraries"
-fi
-
-AC_SUBST(KDE_LDFLAGS)
-AC_SUBST(KDE_INCLUDES)
-
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
-
-if test -z "$1"; then
-KDE_CHECK_UIC_PLUGINS
-fi
-
-ac_kde_libraries="$kde_libdir"
-
-AC_SUBST(AUTODIRS)
-
-
-])
-
-AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
-[
-AC_MSG_CHECKING(for extra includes)
-AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
- kde_use_extra_includes="$withval",
- kde_use_extra_includes=NONE
-)
-kde_extra_includes=
-if test -n "$kde_use_extra_includes" && \
- test "$kde_use_extra_includes" != "NONE"; then
-
- ac_save_ifs=$IFS
- IFS=':'
- for dir in $kde_use_extra_includes; do
- kde_extra_includes="$kde_extra_includes $dir"
- USER_INCLUDES="$USER_INCLUDES -I$dir"
- done
- IFS=$ac_save_ifs
- kde_use_extra_includes="added"
-else
- kde_use_extra_includes="no"
-fi
-AC_SUBST(USER_INCLUDES)
-
-AC_MSG_RESULT($kde_use_extra_includes)
-
-kde_extra_libs=
-AC_MSG_CHECKING(for extra libs)
-AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
- kde_use_extra_libs=$withval,
- kde_use_extra_libs=NONE
-)
-if test -n "$kde_use_extra_libs" && \
- test "$kde_use_extra_libs" != "NONE"; then
-
- ac_save_ifs=$IFS
- IFS=':'
- for dir in $kde_use_extra_libs; do
- kde_extra_libs="$kde_extra_libs $dir"
- KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
- USER_LDFLAGS="$USER_LDFLAGS -L$dir"
- done
- IFS=$ac_save_ifs
- kde_use_extra_libs="added"
-else
- kde_use_extra_libs="no"
-fi
-
-AC_SUBST(USER_LDFLAGS)
-
-AC_MSG_RESULT($kde_use_extra_libs)
-
-])
-
-AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
-[
- AC_MSG_CHECKING([for KDE headers installed])
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-cat > conftest.$ac_ext <<EOF
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-#include <stdio.h>
-#include "confdefs.h"
-#include <kapp.h>
-
-int main() {
- printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
- printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
- printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
- printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
- printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
- printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
- printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
- printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
- printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
- printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
- printf("kde_wallpaperdir=\\"%s\\"\n",
- KApplication::kde_wallpaperdir().data());
- printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
- printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
- printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
- printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
- printf("kde_moduledir=\\"/tmp/dummy\\"\n");
- printf("kde_styledir=\\"/tmp/dummy\\"\n");
- printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
- printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
- printf("xdg_menudir=\\"/tmp/dummy\\"\n");
- printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
- printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
- return 0;
- }
-EOF
-
- ac_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$all_includes $CPPFLAGS"
- if AC_TRY_EVAL(ac_compile); then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_ERROR([your system is not able to compile a small KDE application!
-Check, if you installed the KDE header files correctly.
-For more details about this problem, look at the end of config.log.])
- fi
- CPPFLAGS=$ac_save_CPPFLAGS
-
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([KDE_CHECK_KDEQTADDON],
-[
-AC_MSG_CHECKING(for kde-qt-addon)
-AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
-[
- kde_ldflags_safe="$LDFLAGS"
- kde_libs_safe="$LIBS"
- kde_cxxflags_safe="$CXXFLAGS"
-
- LIBS="-lkde-qt-addon $LIBQT $LIBS"
- CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
- LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
-
- AC_TRY_LINK([
- #include <qdom.h>
- ],
- [
- QDomDocument doc;
- ],
- kde_cv_have_kdeqtaddon=yes,
- kde_cv_have_kdeqtaddon=no
- )
-
- LDFLAGS=$kde_ldflags_safe
- LIBS=$kde_libs_safe
- CXXFLAGS=$kde_cxxflags_safe
-])
-
-AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
-
-if test "$kde_cv_have_kdeqtaddon" = "no"; then
- AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
-It is a separate package (and CVS module) named kde-qt-addon.])
-fi
-])
-
-AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
-[
- AC_REQUIRE([KDE_MISC_TESTS])
- AC_REQUIRE([KDE_CHECK_LIBDL])
- AC_REQUIRE([K_PATH_X])
-
-if test $kde_qtver = 3; then
- case $host in
- *cygwin*) lib_kded="-lkdeinit_kded" ;;
- *) lib_kded="" ;;
- esac
- AC_SUBST(LIB_KDED, $lib_kded)
- AC_SUBST(LIB_KDECORE, "-lkdecore")
- AC_SUBST(LIB_KDEUI, "-lkdeui")
- AC_SUBST(LIB_KIO, "-lkio")
- AC_SUBST(LIB_KJS, "-lkjs")
- AC_SUBST(LIB_SMB, "-lsmb")
- AC_SUBST(LIB_KAB, "-lkab")
- AC_SUBST(LIB_KABC, "-lkabc")
- AC_SUBST(LIB_KHTML, "-lkhtml")
- AC_SUBST(LIB_KSPELL, "-lkspell")
- AC_SUBST(LIB_KPARTS, "-lkparts")
- AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
- AC_SUBST(LIB_KUTILS, "-lkutils")
- AC_SUBST(LIB_KDEPIM, "-lkdepim")
- AC_SUBST(LIB_KIMPROXY, "-lkimproxy")
- AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff")
- AC_SUBST(LIB_KDNSSD, "-lkdnssd")
- AC_SUBST(LIB_KUNITTEST, "-lkunittest")
-# these are for backward compatibility
- AC_SUBST(LIB_KSYCOCA, "-lkio")
- AC_SUBST(LIB_KFILE, "-lkio")
-elif test $kde_qtver = 2; then
- AC_SUBST(LIB_KDECORE, "-lkdecore")
- AC_SUBST(LIB_KDEUI, "-lkdeui")
- AC_SUBST(LIB_KIO, "-lkio")
- AC_SUBST(LIB_KSYCOCA, "-lksycoca")
- AC_SUBST(LIB_SMB, "-lsmb")
- AC_SUBST(LIB_KFILE, "-lkfile")
- AC_SUBST(LIB_KAB, "-lkab")
- AC_SUBST(LIB_KHTML, "-lkhtml")
- AC_SUBST(LIB_KSPELL, "-lkspell")
- AC_SUBST(LIB_KPARTS, "-lkparts")
- AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
-else
- AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
- AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
- AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
- AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
- AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
-fi
-])
-
-AC_DEFUN([AC_PATH_KDE],
-[
- AC_BASE_PATH_KDE
- AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
- [
- if test "$enableval" = "no";
- then ac_use_path_checking="default"
- else ac_use_path_checking=""
- fi
- ],
- [
- if test "$kde_qtver" = 1;
- then ac_use_path_checking=""
- else ac_use_path_checking="default"
- fi
- ]
- )
-
- AC_CREATE_KFSSTND($ac_use_path_checking)
-
- AC_SUBST_KFSSTND
- KDE_CREATE_LIBS_ALIASES
-])
-
-dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
-AC_DEFUN([KDE_CHECK_FUNC_EXT],
-[
-AC_MSG_CHECKING(for $1)
-AC_CACHE_VAL(kde_cv_func_$1,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-save_CXXFLAGS="$CXXFLAGS"
-kde_safe_LIBS="$LIBS"
-LIBS="$LIBS $X_EXTRA_LIBS"
-if test "$GXX" = "yes"; then
-CXXFLAGS="$CXXFLAGS -pedantic-errors"
-fi
-AC_TRY_COMPILE([
-$2
-],
-[
-$3
-],
-kde_cv_func_$1=yes,
-kde_cv_func_$1=no)
-CXXFLAGS="$save_CXXFLAGS"
-LIBS="$kde_safe_LIBS"
-AC_LANG_RESTORE
-])
-
-AC_MSG_RESULT($kde_cv_func_$1)
-
-AC_MSG_CHECKING([if $1 needs custom prototype])
-AC_CACHE_VAL(kde_cv_proto_$1,
-[
-if test "x$kde_cv_func_$1" = xyes; then
- kde_cv_proto_$1=no
-else
- case "$1" in
- setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
- kde_cv_proto_$1="yes - in libkdefakes"
- ;;
- *)
- kde_cv_proto_$1=unknown
- ;;
- esac
-fi
-
-if test "x$kde_cv_proto_$1" = xunknown; then
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
- kde_safe_libs=$LIBS
- LIBS="$LIBS $X_EXTRA_LIBS"
- AC_TRY_LINK([
-$2
-
-extern "C" $4;
-],
-[
-$3
-],
-[ kde_cv_func_$1=yes
- kde_cv_proto_$1=yes ],
- [kde_cv_proto_$1="$1 unavailable"]
-)
-LIBS=$kde_safe_libs
-AC_LANG_RESTORE
-fi
-])
-AC_MSG_RESULT($kde_cv_proto_$1)
-
-if test "x$kde_cv_func_$1" = xyes; then
- AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
- $6
-fi
-if test "x$kde_cv_proto_$1" = xno; then
- AC_DEFINE(HAVE_$5_PROTO, 1,
- [Define if you have the $1 prototype])
-fi
-
-AH_VERBATIM([_HAVE_$5_PROTO],
-[
-#if !defined(HAVE_$5_PROTO)
-#ifdef __cplusplus
-extern "C" {
-#endif
-$4;
-#ifdef __cplusplus
-}
-#endif
-#endif
-])
-])
-
-AC_DEFUN([AC_CHECK_SETENV],
-[
- KDE_CHECK_FUNC_EXT(setenv, [
-#include <stdlib.h>
-],
- [setenv("VAR", "VALUE", 1);],
- [int setenv (const char *, const char *, int)],
- [SETENV])
-])
-
-AC_DEFUN([AC_CHECK_UNSETENV],
-[
- KDE_CHECK_FUNC_EXT(unsetenv, [
-#include <stdlib.h>
-],
- [unsetenv("VAR");],
- [void unsetenv (const char *)],
- [UNSETENV])
-])
-
-AC_DEFUN([AC_CHECK_GETDOMAINNAME],
-[
- KDE_CHECK_FUNC_EXT(getdomainname, [
-#include <stdlib.h>
-#include <unistd.h>
-#include <netdb.h>
-],
- [
-char buffer[200];
-getdomainname(buffer, 200);
-],
- [#include <sys/types.h>
- int getdomainname (char *, size_t)],
- [GETDOMAINNAME])
-])
-
-AC_DEFUN([AC_CHECK_GETHOSTNAME],
-[
- KDE_CHECK_FUNC_EXT(gethostname, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-char buffer[200];
-gethostname(buffer, 200);
-],
- [int gethostname (char *, unsigned int)],
- [GETHOSTNAME])
-])
-
-AC_DEFUN([AC_CHECK_USLEEP],
-[
- KDE_CHECK_FUNC_EXT(usleep, [
-#include <unistd.h>
-],
- [
-usleep(200);
-],
- [int usleep (unsigned int)],
- [USLEEP])
-])
-
-
-AC_DEFUN([AC_CHECK_RANDOM],
-[
- KDE_CHECK_FUNC_EXT(random, [
-#include <stdlib.h>
-],
- [
-random();
-],
- [long int random(void)],
- [RANDOM])
-
- KDE_CHECK_FUNC_EXT(srandom, [
-#include <stdlib.h>
-],
- [
-srandom(27);
-],
- [void srandom(unsigned int)],
- [SRANDOM])
-
-])
-
-AC_DEFUN([AC_CHECK_INITGROUPS],
-[
- KDE_CHECK_FUNC_EXT(initgroups, [
-#include <sys/types.h>
-#include <unistd.h>
-#include <grp.h>
-],
- [
-char buffer[200];
-initgroups(buffer, 27);
-],
- [int initgroups(const char *, gid_t)],
- [INITGROUPS])
-])
-
-AC_DEFUN([AC_CHECK_MKSTEMPS],
-[
- KDE_CHECK_FUNC_EXT(mkstemps, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkstemps("/tmp/aaaXXXXXX", 6);
-],
- [int mkstemps(char *, int)],
- [MKSTEMPS])
-])
-
-AC_DEFUN([AC_CHECK_MKSTEMP],
-[
- KDE_CHECK_FUNC_EXT(mkstemp, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkstemp("/tmp/aaaXXXXXX");
-],
- [int mkstemp(char *)],
- [MKSTEMP])
-])
-
-AC_DEFUN([AC_CHECK_MKDTEMP],
-[
- KDE_CHECK_FUNC_EXT(mkdtemp, [
-#include <stdlib.h>
-#include <unistd.h>
-],
- [
-mkdtemp("/tmp/aaaXXXXXX");
-],
- [char *mkdtemp(char *)],
- [MKDTEMP])
-])
-
-
-AC_DEFUN([AC_CHECK_RES_INIT],
-[
- AC_MSG_CHECKING([if res_init needs -lresolv])
- kde_libs_safe="$LIBS"
- LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
- AC_TRY_LINK(
- [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
- ],
- [
- res_init();
- ],
- [
- LIBRESOLV="-lresolv"
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
- ],
- [ AC_MSG_RESULT(no) ]
- )
- LIBS=$kde_libs_safe
- AC_SUBST(LIBRESOLV)
-
- KDE_CHECK_FUNC_EXT(res_init,
- [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
- ],
- [res_init()],
- [int res_init(void)],
- [RES_INIT])
-])
-
-AC_DEFUN([AC_CHECK_STRLCPY],
-[
- KDE_CHECK_FUNC_EXT(strlcpy, [
-#include <string.h>
-],
-[ char buf[20];
- strlcpy(buf, "KDE function test", sizeof(buf));
-],
- [unsigned long strlcpy(char*, const char*, unsigned long)],
- [STRLCPY])
-])
-
-AC_DEFUN([AC_CHECK_STRLCAT],
-[
- KDE_CHECK_FUNC_EXT(strlcat, [
-#include <string.h>
-],
-[ char buf[20];
- buf[0]='\0';
- strlcat(buf, "KDE function test", sizeof(buf));
-],
- [unsigned long strlcat(char*, const char*, unsigned long)],
- [STRLCAT])
-])
-
-AC_DEFUN([AC_CHECK_RES_QUERY],
-[
- KDE_CHECK_FUNC_EXT(res_query, [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <netdb.h>
-],
-[
-res_query(NULL, 0, 0, NULL, 0);
-],
- [int res_query(const char *, int, int, unsigned char *, int)],
- [RES_QUERY])
-])
-
-AC_DEFUN([AC_CHECK_DN_SKIPNAME],
-[
- KDE_CHECK_FUNC_EXT(dn_skipname, [
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-],
-[
-dn_skipname (NULL, NULL);
-],
- [int dn_skipname (unsigned char *, unsigned char *)],
- [DN_SKIPNAME])
-])
-
-
-AC_DEFUN([AC_FIND_GIF],
- [AC_MSG_CHECKING([for giflib])
-AC_CACHE_VAL(ac_cv_lib_gif,
-[ac_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
-else
-LIBS="$all_libraries -lgif"
-fi
-AC_TRY_LINK(dnl
-[
-#ifdef __cplusplus
-extern "C" {
-#endif
-int GifLastError(void);
-#ifdef __cplusplus
-}
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-],
- [return GifLastError();],
- eval "ac_cv_lib_gif=yes",
- eval "ac_cv_lib_gif=no")
-LIBS="$ac_save_LIBS"
-])dnl
-if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
-else
- AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
-fi
-])
-
-AC_DEFUN([KDE_FIND_JPEG_HELPER],
-[
-AC_MSG_CHECKING([for libjpeg$2])
-AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
-[
-ac_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(
-[
-#ifdef __cplusplus
-extern "C" {
-#endif
-void jpeg_CreateDecompress();
-#ifdef __cplusplus
-}
-#endif
-],
-[jpeg_CreateDecompress();],
- eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
- eval "ac_cv_lib_jpeg_$1=no")
-LIBS="$ac_save_LIBS"
-CFLAGS="$ac_save_CFLAGS"
-])
-
-if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
- LIBJPEG="$ac_cv_lib_jpeg_$1"
- AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
-else
- AC_MSG_RESULT(no)
- $3
-fi
-
-])
-
-AC_DEFUN([AC_FIND_JPEG],
-[
-dnl first look for libraries
-KDE_FIND_JPEG_HELPER(6b, 6b,
- KDE_FIND_JPEG_HELPER(normal, [],
- [
- LIBJPEG=
- ]
- )
-)
-
-dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
-dnl requires system dependent includes loaded before it)
-jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
-AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
-test "x$jpeg_incdir" = xNO && jpeg_incdir=
-
-dnl if headers _and_ libraries are missing, this is no error, and we
-dnl continue with a warning (the user will get no jpeg support in khtml)
-dnl if only one is missing, it means a configuration error, but we still
-dnl only warn
-if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
- AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
-else
- if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
- AC_MSG_WARN([
-There is an installation error in jpeg support. You seem to have only one
-of either the headers _or_ the libraries installed. You may need to either
-provide correct --with-extra-... options, or the development package of
-libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
-Disabling JPEG support.
-])
- else
- AC_MSG_WARN([libjpeg not found. disable JPEG support.])
- fi
- jpeg_incdir=
- LIBJPEG=
-fi
-
-AC_SUBST(LIBJPEG)
-AH_VERBATIM(_AC_CHECK_JPEG,
-[/*
- * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
- * headers and I'm too lazy to write a configure test as long as only
- * unixware is related
- */
-#ifdef _UNIXWARE
-#define HAVE_BOOLEAN
-#endif
-])
-])
-
-AC_DEFUN([KDE_CHECK_QT_JPEG],
-[
-if test -n "$LIBJPEG"; then
-AC_MSG_CHECKING([if Qt needs $LIBJPEG])
-AC_CACHE_VAL(kde_cv_qt_jpeg,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
-LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(
-[#include <qapplication.h>],
- [
- int argc;
- char** argv;
- QApplication app(argc, argv);],
- eval "kde_cv_qt_jpeg=no",
- eval "kde_cv_qt_jpeg=yes")
-LIBS="$ac_save_LIBS"
-CXXFLAGS="$ac_save_CXXFLAGS"
-AC_LANG_RESTORE
-fi
-])
-
-if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
- AC_MSG_RESULT(yes)
- LIBJPEG_QT='$(LIBJPEG)'
-else
- AC_MSG_RESULT(no)
- LIBJPEG_QT=
-fi
-
-])
-
-AC_DEFUN([AC_FIND_ZLIB],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_MSG_CHECKING([for libz])
-AC_CACHE_VAL(ac_cv_lib_z,
-[
-kde_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(dnl
-[
-#include<zlib.h>
-#include<string.h>
-],
-[
- char buf[42];
- gzFile f = (gzFile) 0;
- /* this would segfault.. but we only link, don't run */
- (void) gzgets(f, buf, sizeof(buf));
-
- return (strcmp(zlibVersion(), ZLIB_VERSION) == 0);
-],
- eval "ac_cv_lib_z='-lz'",
- eval "ac_cv_lib_z=no")
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if test ! "$ac_cv_lib_z" = no; then
- AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
- LIBZ="$ac_cv_lib_z"
- AC_MSG_RESULT($ac_cv_lib_z)
-else
- AC_MSG_ERROR(not found.
- Possibly configure picks up an outdated version
- installed by XFree86. Remove it from your system.
-
- Check your installation and look into config.log)
- LIBZ=""
-fi
-AC_SUBST(LIBZ)
-])
-
-AC_DEFUN([KDE_TRY_TIFFLIB],
-[
-AC_MSG_CHECKING([for libtiff $1])
-
-AC_CACHE_VAL(kde_cv_libtiff_$1,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
-else
-LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
-fi
-kde_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
-[
-#include<tiffio.h>
-],
- [return (TIFFOpen( "", "r") == 0); ],
-[
- kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
-], [
- kde_cv_libtiff_$1=no
-])
-
-LIBS="$kde_save_LIBS"
-CXXFLAGS="$kde_save_CXXFLAGS"
-AC_LANG_RESTORE
-])
-
-if test "$kde_cv_libtiff_$1" = "no"; then
- AC_MSG_RESULT(no)
- LIBTIFF=""
- $3
-else
- LIBTIFF="$kde_cv_libtiff_$1"
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
- $2
-fi
-
-])
-
-AC_DEFUN([AC_FIND_TIFF],
-[
-AC_REQUIRE([K_PATH_X])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_REQUIRE([AC_FIND_JPEG])
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
-KDE_TRY_TIFFLIB(tiff, [],
- KDE_TRY_TIFFLIB(tiff34))
-
-AC_SUBST(LIBTIFF)
-])
-
-AC_DEFUN([KDE_FIND_LIBEXR],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_CACHE_VAL(ac_cv_libexr,
-[
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- fi
-
- AC_MSG_CHECKING([for OpenEXR libraries])
-
- if test "$PKG_CONFIG" = "no" ; then
- AC_MSG_RESULT(no)
- 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
- if ! $PKG_CONFIG --exists OpenEXR ; then
- AC_MSG_RESULT(no)
- EXRSTATUS=no
- else
- if ! $PKG_CONFIG --atleast-version="1.1.1" OpenEXR ; then
- AC_MSG_RESULT(no)
- EXRSTATUS=old
- else
- kde_save_LIBS="$LIBS"
- LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- kde_save_CXXFLAGS="$CXXFLAGS"
- EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR`
- CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS"
-
- AC_TRY_LINK(dnl
- [
- #include <ImfRgbaFile.h>
- ],
- [
- using namespace Imf;
- RgbaInputFile file ("dummy");
- return 0;
- ],
- eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'",
- eval "ac_cv_libexr=no"
- )
- LIBS="$kde_save_LIBS"
- CXXFLAGS="$kde_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])dnl
- if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR])
- LIB_EXR="$ac_cv_libexr"
- AC_MSG_RESULT($ac_cv_libexr)
- else
- AC_MSG_RESULT(no)
- LIB_EXR=""
- fi
- fi
- fi
- fi
- AC_SUBST(LIB_EXR)
- AC_SUBST(EXR_FLAGS)
-])
-
-
-
-AC_DEFUN([AC_FIND_PNG],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_ZLIB])
-AC_MSG_CHECKING([for libpng])
-AC_CACHE_VAL(ac_cv_lib_png,
-[
-kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
-else
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
-fi
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
- [
- #include<png.h>
- ],
- [
- png_structp png_ptr = png_create_read_struct( /* image ptr */
- PNG_LIBPNG_VER_STRING, 0, 0, 0 );
- return( png_ptr != 0 );
- ],
- eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
- eval "ac_cv_lib_png=no"
-)
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
- LIBPNG="$ac_cv_lib_png"
- AC_SUBST(LIBPNG)
- AC_MSG_RESULT($ac_cv_lib_png)
-else
- AC_MSG_RESULT(no)
- LIBPNG=""
- AC_SUBST(LIBPNG)
-fi
-])
-
-
-AC_DEFUN([AC_FIND_JASPER],
-[
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_REQUIRE([AC_FIND_JPEG])
-AC_MSG_CHECKING([for jasper])
-AC_CACHE_VAL(ac_cv_jasper,
-[
-kde_save_LIBS="$LIBS"
-LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-
-AC_TRY_LINK(dnl
- [
- #include<jasper/jasper.h>
- ],
- [
- return( jas_init() );
- ],
- eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
- eval "ac_cv_jasper=no"
-)
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
- AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
- LIB_JASPER="$ac_cv_jasper"
- AC_MSG_RESULT($ac_cv_jasper)
-else
- AC_MSG_RESULT(no)
- LIB_JASPER=""
-fi
-AC_SUBST(LIB_JASPER)
-])
-
-AC_DEFUN([AC_CHECK_BOOL],
-[
- AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
-])
-
-AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
-[
-AC_MSG_CHECKING(if you need GNU extensions)
-AC_CACHE_VAL(ac_cv_gnu_extensions,
-[
-cat > conftest.c << EOF
-#include <features.h>
-
-#ifdef __GNU_LIBRARY__
-yes
-#endif
-EOF
-
-if (eval "$ac_cpp conftest.c") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_gnu_extensions=yes
-else
- ac_cv_gnu_extensions=no
-fi
-])
-
-AC_MSG_RESULT($ac_cv_gnu_extensions)
-if test "$ac_cv_gnu_extensions" = "yes"; then
- AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
-fi
-])
-
-AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
-[
-AC_MSG_CHECKING([whether $CXX supports -$1])
-kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
-AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -$1"
- AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
- CXXFLAGS="$save_CXXFLAGS"
- AC_LANG_RESTORE
-])
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT(yes)
- :
- $2
-else
- AC_MSG_RESULT(no)
- :
- $3
-fi
-])
-
-AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG],
-[
-AC_MSG_CHECKING([whether $CC supports -$1])
-kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
-AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache,
-[
- AC_LANG_SAVE
- AC_LANG_C
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -$1"
- AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], [])
- CFLAGS="$save_CFLAGS"
- AC_LANG_RESTORE
-])
-if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
- AC_MSG_RESULT(yes)
- :
- $2
-else
- AC_MSG_RESULT(no)
- :
- $3
-fi
-])
-
-
-dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
-dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
-dnl it's all white-space separated
-AC_DEFUN([AC_REMOVE_FORBIDDEN],
-[ __val=$$1
- __forbid=" $2 "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- $1=$__new
- fi
-])
-
-
-AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
-[
- AC_MSG_CHECKING([whether $CC is blacklisted])
-
- dnl In theory we have tu run this test against $CC and $CXX
- dnl in C and in C++ mode, because its perfectly legal for
- dnl the user to mix compiler versions, since C has a defined
- dnl ABI.
- dnl
- dnl For now, we assume the user is not on crack.
-
- AC_TRY_COMPILE([
-#ifdef __GNUC__
-#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
-choke me
-#endif
-#endif
-], ,
- kde_bad_compiler=no,
- kde_bad_compiler=yes
-)
-
- AC_MSG_RESULT($kde_bad_compiler)
-
-if test "$kde_bad_compiler" = "yes"; then
- AC_MSG_ERROR([
-
-This particular compiler version is blacklisted because it
-is known to miscompile KDE. Please use a newer version, or
-if that is not yet available, choose an older version.
-
-Please do not report a bug or bother us reporting this
-configure error. We know about it, and we introduced
-it by intention to avoid untraceable bugs or crashes in KDE.
-
-])
-fi
-
-])
-
-
-AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH],
-[
- AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline],
- kde_cv_opt_noinline_match,
- [
- kde_cv_opt_noinline_match=irrelevant
- dnl if we don't use both -O2 and -fno-inline, this check is moot
- if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
- && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
-
- ac_cflags_save="$CFLAGS"
- CFLAGS="$CFLAGS -D_USE_GNU"
-
- AC_TRY_LINK([
- #include <string.h>
-], [ const char *pt, *et;
- et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ;
-],
- kde_cv_opt_noinline_match=yes,
- kde_cv_opt_noinline_match=no
- )
-
- CFLAGS="$ac_cflags_save"
- fi
- ])
-])
-
-
-dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
-AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
-[dnl
-if test "x$kde_use_qt_emb" != "xyes"; then
- AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
- AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
-else
- AC_REMOVE_FORBIDDEN(CXX, [-rpath])
- AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
-fi
-])
-
-AC_DEFUN([AC_CHECK_COMPILERS],
-[
- AC_ARG_ENABLE(debug,
- AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
- [
- case $enableval in
- yes)
- kde_use_debug_code="yes"
- kde_use_debug_define=no
- ;;
- full)
- kde_use_debug_code="full"
- kde_use_debug_define=no
- ;;
- *)
- kde_use_debug_code="no"
- kde_use_debug_define=yes
- ;;
- esac
- ],
- [kde_use_debug_code="no"
- kde_use_debug_define=no
- ])
-
- dnl Just for configure --help
- AC_ARG_ENABLE(dummyoption,
- AC_HELP_STRING([--disable-debug],
- [disables debug output and debug symbols [default=no]]),
- [],[])
-
- AC_ARG_ENABLE(strict,
- AC_HELP_STRING([--enable-strict],
- [compiles with strict compiler options (may not work!)]),
- [
- if test $enableval = "no"; then
- kde_use_strict_options="no"
- else
- kde_use_strict_options="yes"
- fi
- ], [kde_use_strict_options="no"])
-
- AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
- [
- if test $enableval = "no"; then
- kde_use_warnings="no"
- else
- kde_use_warnings="yes"
- fi
- ], [kde_use_warnings="yes"])
-
- dnl enable warnings for debug build
- if test "$kde_use_debug_code" != "no"; then
- kde_use_warnings=yes
- fi
-
- AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
- [kde_use_profiling=$enableval],
- [kde_use_profiling="no"]
- )
-
- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
- CFLAGS=" $CFLAGS"
-
- AC_PROG_CC
-
- AC_PROG_CPP
-
- if test "$GCC" = "yes"; then
- if test "$kde_use_debug_code" != "no"; then
- if test $kde_use_debug_code = "full"; then
- CFLAGS="-g3 -fno-inline $CFLAGS"
- else
- CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
- fi
- else
- CFLAGS="-O2 $CFLAGS"
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CFLAGS="-DNDEBUG $CFLAGS"
- fi
-
-
- case "$host" in
- *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
- *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
- esac
-
- if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
- LDFLAGS=""
- fi
-
- CXXFLAGS=" $CXXFLAGS"
-
- AC_PROG_CXX
-
- KDE_CHECK_FOR_BAD_COMPILER
-
- if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
- if test "$kde_use_debug_code" != "no"; then
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
- else
- if test "$kde_use_debug_code" = "full"; then
- CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
- else
- CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
- fi
- fi
- KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
-
- dnl convenience compiler flags
- KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
- AC_SUBST(WOVERLOADED_VIRTUAL)
- else
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K3 $CXXFLAGS"
- else
- CXXFLAGS="-O2 $CXXFLAGS"
- fi
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
- fi
-
- if test "$kde_use_profiling" = "yes"; then
- KDE_CHECK_COMPILER_FLAG(pg,
- [
- CFLAGS="-pg $CFLAGS"
- CXXFLAGS="-pg $CXXFLAGS"
- ])
- fi
-
- if test "$kde_use_warnings" = "yes"; then
- if test "$GCC" = "yes"; then
- CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
- case $host in
- *-*-linux-gnu)
- CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
- CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
- KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
- KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
- ;;
- esac
- KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
- KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
- dnl ### FIXME: revert for KDE 4
- KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
- fi
- fi
-
- if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
- CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
- fi
-
- AC_ARG_ENABLE(pch,
- AC_HELP_STRING([--enable-pch],
- [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
- [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
-
- HAVE_GCC_VISIBILITY=0
- AC_SUBST([HAVE_GCC_VISIBILITY])
-
- if test "$GXX" = "yes"; then
- gcc_no_reorder_blocks=NO
- KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES])
- if test $kde_use_debug_code != "no" && \
- test $kde_use_debug_code != "full" && \
- test "YES" = "$gcc_no_reorder_blocks" ; then
- CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
- CFLAGS="$CFLAGS -fno-reorder-blocks"
- fi
- KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
- KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
- KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
- KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= )
- ENABLE_PERMISSIVE_FLAG="-fpermissive"
-
- if test "$kde_use_pch" = "yes"; then
- AC_MSG_CHECKING(whether gcc supports precompiling c header files)
- echo >conftest.h
- if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- AC_MSG_RESULT(yes)
- else
- kde_gcc_supports_pch=no
- AC_MSG_RESULT(no)
- fi
- if test "$kde_gcc_supports_pch" = "yes"; then
- AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
- if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- AC_MSG_RESULT(yes)
- else
- kde_gcc_supports_pch=no
- AC_MSG_RESULT(no)
- fi
- fi
- rm -f conftest.h conftest.h.gch
- fi
-
- KDE_CHECK_FOR_OPT_NOINLINE_MATCH
- if test "x$kde_cv_opt_noinline_match" = "xno" ; then
- CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
- fi
- fi
- AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
- if test "$CXX" = "KCC"; then
- dnl unfortunately we currently cannot disable exception support in KCC
- dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
- dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
- dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= )
-
- if test "$kde_use_pch" = "yes"; then
- dnl TODO: support --pch-dir!
- KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
- dnl the below works (but the dir must exist), but it's
- dnl useless for a whole package.
- dnl The are precompiled headers for each source file, so when compiling
- dnl from scratch, it doesn't make a difference, and they take up
- dnl around ~5Mb _per_ sourcefile.
- dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
- dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
- fi
- dnl this flag controls inlining. by default KCC inlines in optimisation mode
- dnl all implementations that are defined inside the class {} declaration.
- dnl because of templates-compatibility with broken gcc compilers, this
- dnl can cause excessive inlining. This flag limits it to a sane level
- KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
- KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
- KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
- KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
- dnl Some source files are shared between multiple executables
- dnl (or libraries) and some of those need template instantiations.
- dnl In that case KCC needs to compile those sources with
- dnl --one_instantiation_per_object. To make it easy for us we compile
- dnl _all_ objects with that flag (--one_per is a shorthand).
- KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
- fi
- AC_SUBST(USE_EXCEPTIONS)
- dnl obsolete macro - provided to keep things going
- USE_RTTI=
- AC_SUBST(USE_RTTI)
-
- case "$host" in
- *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
- *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
- *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
- *-*-solaris*)
- if test "$GXX" = yes; then
- libstdcpp=`$CXX -print-file-name=libstdc++.so`
- if test ! -f $libstdcpp; then
- AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
- fi
- fi
- ;;
- esac
-
- AC_VALIDIFY_CXXFLAGS
-
- AC_PROG_CXXCPP
-
- if test "$GCC" = yes; then
- NOOPT_CFLAGS=-O0
- fi
- KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
-
- AC_ARG_ENABLE(coverage,
- AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
- if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker="-lgcc"
- elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker=""
- else
- AC_MSG_ERROR([coverage with your compiler is not supported])
- fi
- CFLAGS="$CFLAGS $ac_coverage_compiler"
- CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
- LDFLAGS="$LDFLAGS $ac_coverage_linker"
- ])
-
- AC_SUBST(NOOPT_CXXFLAGS)
- AC_SUBST(NOOPT_CFLAGS)
- AC_SUBST(ENABLE_PERMISSIVE_FLAG)
-
- KDE_CHECK_NEW_LDFLAGS
- KDE_CHECK_FINAL
- KDE_CHECK_CLOSURE
- KDE_CHECK_NMCHECK
-
- ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
-])
-
-AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
- [
- AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- safe_CXXFLAGS=$CXXFLAGS
- safe_LDFLAGS=$LDFLAGS
- CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
- LDFLAGS="$LDFLAGS -shared -fPIC"
-
- AC_TRY_LINK(
- [
- /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
- #include <string>
- int some_function( void ) __attribute__ ((visibility("default")));
- int some_function( void )
- {
- std::string s("blafasel");
- return 0;
- }
- ], [/* elvis is alive */],
- kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
-
- CXXFLAGS=$safe_CXXFLAGS
- LDFLAGS=$safe_LDFLAGS
- AC_LANG_RESTORE
- ]
- )
-
- if test x$kde_cv_val_gcc_visibility_bug = xno; then
- CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
- fi
- ]
-)
-
-AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
-[
- AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
-
- AC_MSG_CHECKING([grepping for visibility push/pop in headers])
-
- if test "x$GXX" = "xyes"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_EGREP_CPP(
- [GCC visibility push],
- [ #include <exception>
- ],
- [
- AC_MSG_RESULT(yes)
- kde_stdc_visibility_patched=yes ],
- [
- AC_MSG_RESULT(no)
- AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for
- visibility support. Disabling -fvisibility=hidden])
-
- kde_stdc_visibility_patched=no ])
-
- AC_LANG_RESTORE
-
- kde_have_gcc_visibility=no
- KDE_CHECK_COMPILER_FLAG(fvisibility=hidden,
- [
- kde_have_gcc_visibility=yes
- dnl the whole toolchain is just a mess, gcc is just too buggy
- dnl to handle STL with visibility enabled. Lets reconsider
- dnl when gcc 4.2 is out or when things get fixed in the compiler.
- dnl Contact mueller@kde.org for details.
- AC_ARG_ENABLE(gcc-hidden-visibility,
- AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
- [kde_have_gcc_visibility=$enableval],
- [kde_have_gcc_visibility=no])
-
- AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- safe_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS $all_includes"
-
- AC_TRY_COMPILE(
- [
-#include <qglobal.h>
-#if Q_EXPORT - 0 != 0
-/* if this compiles, then Q_EXPORT is undefined */
-/* if Q_EXPORT is nonempty, this will break compilation */
-#endif
- ], [/* elvis is alive */],
- kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
-
- CXXFLAGS=$safe_CXXFLAGS
- AC_LANG_RESTORE
- ]
- )
-
- if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
- CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
- KDE_CHECK_VISIBILITY_GCC_BUG
- HAVE_GCC_VISIBILITY=1
- AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
- fi
- ])
- fi
-])
-
-AC_DEFUN([KDE_ADD_DEPENDENCIES],
-[
- [A]M_DEPENDENCIES(CC)
- [A]M_DEPENDENCIES(CXX)
-])
-
-dnl just a wrapper to clean up configure.in
-AC_DEFUN([KDE_PROG_LIBTOOL],
-[
-AC_REQUIRE([AC_CHECK_COMPILERS])
-AC_REQUIRE([AC_ENABLE_SHARED])
-AC_REQUIRE([AC_ENABLE_STATIC])
-
-AC_REQUIRE([AC_LIBTOOL_DLOPEN])
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-AC_OBJEXT
-AC_EXEEXT
-
-AM_PROG_LIBTOOL
-AC_LIBTOOL_CXX
-
-LIBTOOL_SHELL="/bin/sh ./libtool"
-# LIBTOOL="$LIBTOOL --silent"
-KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
-AC_SUBST(KDE_PLUGIN)
-
-# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
-KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
-AC_SUBST(KDE_CHECK_PLUGIN)
-
-# we patch configure quite some so we better keep that consistent for incremental runs
-AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
-])
-
-AC_DEFUN([KDE_CHECK_LIB64],
-[
- AC_ARG_ENABLE(libsuffix,
- AC_HELP_STRING([--enable-libsuffix],
- [/lib directory suffix (64,32,none,auto[=default])]),
- kdelibsuff=$enableval, kdelibsuff="auto")
-
- if test "$kdelibsuff" = "auto"; then
-
-cat > conftest.c << EOF
-#include <stdio.h>
-int main() {
- return 0;
-}
-EOF
- kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
- s,.*/lib\([[^\/]]*\)/.*,\1,
- p
-}'`
- rm -rf conftest.*
- fi
-
- if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
- kdelibsuff=
- fi
- if test -z "$kdelibsuff"; then
- AC_MSG_RESULT([not using lib directory suffix])
- AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
- else
- if test "$libdir" = '${exec_prefix}/lib'; then
- libdir="$libdir${kdelibsuff}"
- AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms
- fi
- AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
- AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
- fi
-])
-
-AC_DEFUN([KDE_CHECK_TYPES],
-[ AC_CHECK_SIZEOF(int, 4)dnl
- AC_CHECK_SIZEOF(short)dnl
- AC_CHECK_SIZEOF(long, 4)dnl
- AC_CHECK_SIZEOF(char *, 4)dnl
-])dnl
-
-dnl Not used - kept for compat only?
-AC_DEFUN([KDE_DO_IT_ALL],
-[
-AC_CANONICAL_SYSTEM
-AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE($1, $2)
-AM_DISABLE_LIBRARIES
-AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
-AC_CHECK_COMPILERS
-KDE_PROG_LIBTOOL
-AM_KDE_WITH_NLS
-AC_PATH_KDE
-])
-
-AC_DEFUN([AC_CHECK_RPATH],
-[
-AC_MSG_CHECKING(for rpath)
-AC_ARG_ENABLE(rpath,
- AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
- USE_RPATH=$enableval, USE_RPATH=yes)
-
-if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
-
- KDE_RPATH="-R \$(libdir)"
-
- if test "$kde_libraries" != "$libdir"; then
- KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
- fi
-
- if test -n "$qt_libraries"; then
- KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
- fi
- dnl $x_libraries is set to /usr/lib in case
- if test -n "$X_LDFLAGS"; then
- X_RPATH="-R \$(x_libraries)"
- KDE_RPATH="$KDE_RPATH $X_RPATH"
- fi
- if test -n "$KDE_EXTRA_RPATH"; then
- KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
- fi
-fi
-AC_SUBST(KDE_EXTRA_RPATH)
-AC_SUBST(KDE_RPATH)
-AC_SUBST(X_RPATH)
-AC_MSG_RESULT($USE_RPATH)
-])
-
-dnl Check for the type of the third argument of getsockname
-AC_DEFUN([AC_CHECK_SOCKLEN_T],
-[
- AC_MSG_CHECKING(for socklen_t)
- AC_CACHE_VAL(kde_cv_socklen_t,
- [
- AC_LANG_PUSH(C++)
- kde_cv_socklen_t=no
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- ],
- [
- socklen_t len;
- getpeername(0,0,&len);
- ],
- [
- kde_cv_socklen_t=yes
- kde_cv_socklen_t_equiv=socklen_t
- ])
- AC_LANG_POP(C++)
- ])
- AC_MSG_RESULT($kde_cv_socklen_t)
- if test $kde_cv_socklen_t = no; then
- AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
- AC_CACHE_VAL(kde_cv_socklen_t_equiv,
- [
- kde_cv_socklen_t_equiv=int
- AC_LANG_PUSH(C++)
- for t in int size_t unsigned long "unsigned long"; do
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- ],
- [
- $t len;
- getpeername(0,0,&len);
- ],
- [
- kde_cv_socklen_t_equiv="$t"
- break
- ])
- done
- AC_LANG_POP(C++)
- ])
- AC_MSG_RESULT($kde_cv_socklen_t_equiv)
- fi
- AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
- [type to use in place of socklen_t if not defined])
- AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
- [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
-])
-
-dnl This is a merge of some macros out of the gettext aclocal.m4
-dnl since we don't need anything, I took the things we need
-dnl the copyright for them is:
-dnl >
-dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-dnl This Makefile.in is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-dnl >
-dnl for this file it is relicensed under LGPL
-
-AC_DEFUN([AM_KDE_WITH_NLS],
- [
- dnl If we use NLS figure out what method
-
- AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
- [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
- AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- MSGFMT=$GMSGFMT
- AC_SUBST(GMSGFMT)
- AC_SUBST(MSGFMT)
-
- AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext programs is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
- AC_SUBST(XGETTEXT)
-
- ])
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# serial 1
-# Stephan Kulow: I appended a _KDE against name conflicts
-
-dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-
-AC_DEFUN([AM_LC_MESSAGES],
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
- fi
- fi])
-
-dnl From Jim Meyering.
-dnl FIXME: migrate into libit.
-
-AC_DEFUN([AM_FUNC_OBSTACK],
-[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
- [AC_TRY_LINK([#include "obstack.h"],
- [struct obstack *mem;obstack_free(mem,(char *) 0)],
- am_cv_func_obstack=yes,
- am_cv_func_obstack=no)])
- if test $am_cv_func_obstack = yes; then
- AC_DEFINE(HAVE_OBSTACK)
- else
- LIBOBJS="$LIBOBJS obstack.o"
- fi
-])
-
-dnl From Jim Meyering. Use this if you use the GNU error.[ch].
-dnl FIXME: Migrate into libit
-
-AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
-[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
- [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
- am_cv_lib_error_at_line=yes,
- am_cv_lib_error_at_line=no)])
- if test $am_cv_lib_error_at_line = no; then
- LIBOBJS="$LIBOBJS error.o"
- fi
- AC_SUBST(LIBOBJS)dnl
-])
-
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-# Stephan Kulow: I put a KDE in it to avoid name conflicts
-
-AC_DEFUN([AM_KDE_GNU_GETTEXT],
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([AM_KDE_WITH_NLS])dnl
- AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
-__argz_count __argz_stringify __argz_next])
-
- AC_MSG_CHECKING(for stpcpy)
- AC_CACHE_VAL(kde_cv_func_stpcpy,
- [
- kde_safe_cxxflags=$CXXFLAGS
- CXXFLAGS="-Werror"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([
- #include <string.h>
- ],
- [
- char buffer[200];
- stpcpy(buffer, buffer);
- ],
- kde_cv_func_stpcpy=yes,
- kde_cv_func_stpcpy=no)
- AC_LANG_RESTORE
- CXXFLAGS=$kde_safe_cxxflags
- ])
- AC_MSG_RESULT($kde_cv_func_stpcpy)
- if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
- AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
- fi
-
- AM_LC_MESSAGES
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- ])
-
-AC_DEFUN([AC_HAVE_XPM],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
- test -z "$XPM_INCLUDE" && XPM_INCLUDE=
-
- AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
- xpm_test=$withval, xpm_test="yes")
- if test "x$xpm_test" = xno; then
- ac_cv_have_xpm=no
- else
- AC_MSG_CHECKING(for XPM)
- AC_CACHE_VAL(ac_cv_have_xpm,
- [
- ac_save_ldflags="$LDFLAGS"
- ac_save_cflags="$CFLAGS"
- if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
- LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
- else
- LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
- fi
- CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
- test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
- AC_TRY_LINK([#include <X11/xpm.h>],[],
- ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
- LDFLAGS="$ac_save_ldflags"
- CFLAGS="$ac_save_cflags"
- ])dnl
-
- if test "$ac_cv_have_xpm" = no; then
- AC_MSG_RESULT(no)
- XPM_LDFLAGS=""
- XPMINC=""
- $2
- else
- AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
- if test "$XPM_LDFLAGS" = ""; then
- XPMLIB='-lXpm $(LIB_X11)'
- else
- XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
- fi
- if test "$XPM_INCLUDE" = ""; then
- XPMINC=""
- else
- XPMINC="-I$XPM_INCLUDE"
- fi
- AC_MSG_RESULT(yes)
- $1
- fi
- fi
- AC_SUBST(XPMINC)
- AC_SUBST(XPMLIB)
-])
-
-AC_DEFUN([AC_HAVE_DPMS],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
- test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
- DPMS_LIB=
-
- AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
- dpms_test=$withval, dpms_test="yes")
- if test "x$dpms_test" = xno; then
- ac_cv_have_dpms=no
- else
- AC_MSG_CHECKING(for DPMS)
- dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
- dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
- AC_CACHE_VAL(ac_cv_have_dpms,
- [
- if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
- AC_MSG_RESULT(no)
- ac_cv_have_dpms="no"
- else
- ac_save_ldflags="$LDFLAGS"
- ac_save_cflags="$CFLAGS"
- ac_save_libs="$LIBS"
- LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
- LIBS="-lX11 -lXext $LIBSOCKET"
- CFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
- AC_TRY_LINK([
- #include <X11/Xproto.h>
- #include <X11/X.h>
- #include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>
- int foo_test_dpms()
- { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
- ac_cv_have_dpms="yes", [
- LIBS="-lXdpms $LIBS"
- AC_TRY_LINK([
- #include <X11/Xproto.h>
- #include <X11/X.h>
- #include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>
- int foo_test_dpms()
- { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
- [
- ac_cv_have_dpms="-lXdpms"
- ],ac_cv_have_dpms="no")
- ])
- LDFLAGS="$ac_save_ldflags"
- CFLAGS="$ac_save_cflags"
- LIBS="$ac_save_libs"
- fi
- ])dnl
-
- if test "$ac_cv_have_dpms" = no; then
- AC_MSG_RESULT(no)
- DPMS_LDFLAGS=""
- DPMSINC=""
- $2
- else
- AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
- if test "$ac_cv_have_dpms" = "-lXdpms"; then
- DPMS_LIB="-lXdpms"
- fi
- if test "$DPMS_LDFLAGS" = ""; then
- DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
- else
- DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
- fi
- if test "$DPMS_INCLUDE" = ""; then
- DPMSINC=""
- else
- DPMSINC="-I$DPMS_INCLUDE"
- fi
- AC_MSG_RESULT(yes)
- $1
- fi
- fi
- ac_save_cflags="$CFLAGS"
- CFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
- AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
- [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
- AC_CHECK_DECL(DPMSCapable,
- AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
- [#include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>])
- AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
- [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
- AC_CHECK_DECL(DPMSInfo,
- AC_DEFINE(HAVE_DPMSINFO_PROTO),,
- [#include <X11/Xlib.h>
- #include <X11/extensions/dpms.h>])
- CFLAGS="$ac_save_cflags"
- AC_SUBST(DPMSINC)
- AC_SUBST(DPMSLIB)
-])
-
-AC_DEFUN([AC_HAVE_GL],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-
- test -z "$GL_LDFLAGS" && GL_LDFLAGS=
- test -z "$GL_INCLUDE" && GL_INCLUDE=
-
- AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
- gl_test=$withval, gl_test="yes")
- if test "x$kde_use_qt_emb" = "xyes"; then
- # GL and Qt Embedded is a no-go for now.
- ac_cv_have_gl=no
- elif test "x$gl_test" = xno; then
- ac_cv_have_gl=no
- else
- AC_MSG_CHECKING(for GL)
- AC_CACHE_VAL(ac_cv_have_gl,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_ldflags=$LDFLAGS
- ac_save_cxxflags=$CXXFLAGS
- ac_save_libs=$LIBS
- LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
- LIBS="$LIBS -lGL -lGLU"
- test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
- LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
- CXXFLAGS="$CFLAGS $X_INCLUDES"
- test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
- AC_TRY_LINK([#include <GL/gl.h>
-#include <GL/glu.h>
-], [],
- ac_cv_have_gl="yes", ac_cv_have_gl="no")
- AC_LANG_RESTORE
- LDFLAGS=$ac_save_ldflags
- CXXFLAGS=$ac_save_cxxflags
- LIBS=$ac_save_libs
- ])dnl
-
- if test "$ac_cv_have_gl" = "no"; then
- AC_MSG_RESULT(no)
- GL_LDFLAGS=""
- GLINC=""
- $2
- else
- AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
- if test "$GL_LDFLAGS" = ""; then
- GLLIB='-lGLU -lGL $(LIB_X11)'
- else
- GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
- fi
- if test "$GL_INCLUDE" = ""; then
- GLINC=""
- else
- GLINC="-I$GL_INCLUDE"
- fi
- AC_MSG_RESULT($ac_cv_have_gl)
- $1
- fi
- fi
- AC_SUBST(GLINC)
- AC_SUBST(GLLIB)
-])
-
-
- dnl shadow password and PAM magic - maintained by ossi@kde.org
-
-AC_DEFUN([KDE_PAM], [
- AC_REQUIRE([KDE_CHECK_LIBDL])
-
- want_pam=
- AC_ARG_WITH(pam,
- AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
- [ if test "x$withval" = "xyes"; then
- want_pam=yes
- pam_service=kde
- elif test "x$withval" = "xno"; then
- want_pam=no
- else
- want_pam=yes
- pam_service=$withval
- fi
- ], [ pam_service=kde ])
-
- use_pam=
- PAMLIBS=
- if test "x$want_pam" != xno; then
- AC_CHECK_LIB(pam, pam_start, [
- AC_CHECK_HEADER(security/pam_appl.h,
- [ pam_header=security/pam_appl.h ],
- [ AC_CHECK_HEADER(pam/pam_appl.h,
- [ pam_header=pam/pam_appl.h ],
- [
- AC_MSG_WARN([PAM detected, but no headers found!
-Make sure you have the necessary development packages installed.])
- ]
- )
- ]
- )
- ], , $LIBDL)
- if test -z "$pam_header"; then
- if test "x$want_pam" = xyes; then
- AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
- fi
- else
- AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
- PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
- use_pam=yes
-
- dnl darwin claims to be something special
- if test "$pam_header" = "pam/pam_appl.h"; then
- AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
- fi
-
- dnl test whether struct pam_message is const (Linux) or not (Sun)
- AC_MSG_CHECKING(for const pam_message)
- AC_EGREP_HEADER([struct pam_message], $pam_header,
- [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
- [AC_MSG_RESULT([const: Linux-type PAM])],
- [AC_MSG_RESULT([nonconst: Sun-type PAM])
- AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
- )],
- [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
- fi
- fi
-
- AC_SUBST(PAMLIBS)
-])
-
-dnl DEF_PAM_SERVICE(arg name, full name, define name)
-AC_DEFUN([DEF_PAM_SERVICE], [
- AC_ARG_WITH($1-pam,
- AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
- [ if test "x$use_pam" = xyes; then
- $3_PAM_SERVICE=$withval
- else
- AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
-You may want to enforce it by using --with-pam.])
- fi
- ],
- [ if test "x$use_pam" = xyes; then
- $3_PAM_SERVICE="$pam_service"
- fi
- ])
- if test -n "$$3_PAM_SERVICE"; then
- AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
- AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
- fi
- AC_SUBST($3_PAM_SERVICE)
-])
-
-AC_DEFUN([KDE_SHADOWPASSWD], [
- AC_REQUIRE([KDE_PAM])
-
- AC_CHECK_LIB(shadow, getspent,
- [ LIBSHADOW="-lshadow"
- ac_use_shadow=yes
- ],
- [ dnl for UnixWare
- AC_CHECK_LIB(gen, getspent,
- [ LIBGEN="-lgen"
- ac_use_shadow=yes
- ],
- [ AC_CHECK_FUNC(getspent,
- [ ac_use_shadow=yes ],
- [ ac_use_shadow=no ])
- ])
- ])
- AC_SUBST(LIBSHADOW)
- AC_SUBST(LIBGEN)
-
- AC_MSG_CHECKING([for shadow passwords])
-
- AC_ARG_WITH(shadow,
- AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
- [ if test "x$withval" != "xno"; then
- use_shadow=yes
- else
- use_shadow=no
- fi
- ], [
- use_shadow="$ac_use_shadow"
- ])
-
- if test "x$use_shadow" = xyes; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
- else
- AC_MSG_RESULT(no)
- LIBSHADOW=
- LIBGEN=
- fi
-
- dnl finally make the relevant binaries setuid root, if we have shadow passwds.
- dnl this still applies, if we could use it indirectly through pam.
- if test "x$use_shadow" = xyes ||
- ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
- case $host in
- *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
- SETUIDFLAGS="-m 4755 -o root";;
- *)
- SETUIDFLAGS="-m 4755";;
- esac
- fi
- AC_SUBST(SETUIDFLAGS)
-
-])
-
-AC_DEFUN([KDE_PASSWDLIBS], [
- AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
- AC_REQUIRE([KDE_PAM])
- AC_REQUIRE([KDE_SHADOWPASSWD])
-
- if test "x$use_pam" = "xyes"; then
- PASSWDLIBS="$PAMLIBS"
- else
- PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
- fi
-
- dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
- dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires
- dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
- dnl may need to read /etc/master.passwd).
- case $host in
- *-*-freebsd*)
- SETUIDFLAGS="-m 4755 -o root"
- ;;
- *)
- ;;
- esac
-
- AC_SUBST(PASSWDLIBS)
-])
-
-AC_DEFUN([KDE_CHECK_LIBDL],
-[
-AC_CHECK_LIB(dl, dlopen, [
-LIBDL="-ldl"
-ac_cv_have_dlfcn=yes
-])
-
-AC_CHECK_LIB(dld, shl_unload, [
-LIBDL="-ldld"
-ac_cv_have_shload=yes
-])
-
-AC_SUBST(LIBDL)
-])
-
-AC_DEFUN([KDE_CHECK_DLOPEN],
-[
-KDE_CHECK_LIBDL
-AC_CHECK_HEADERS(dlfcn.h dl.h)
-if test "$ac_cv_header_dlfcn_h" = "no"; then
- ac_cv_have_dlfcn=no
-fi
-
-if test "$ac_cv_header_dl_h" = "no"; then
- ac_cv_have_shload=no
-fi
-
-dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
-dnl (MM)
-AC_ARG_ENABLE(dlopen,
-AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
-enable_dlopen=$enableval,
-enable_dlopen=yes)
-
-# override the user's opinion, if we know it better ;)
-if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
- enable_dlopen=no
-fi
-
-if test "$ac_cv_have_dlfcn" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
-fi
-
-if test "$ac_cv_have_shload" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
-fi
-
-if test "$enable_dlopen" = no ; then
- test -n "$1" && eval $1
-else
- test -n "$2" && eval $2
-fi
-
-])
-
-AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
-[
-KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
-KDE_PROG_LIBTOOL
-AC_MSG_CHECKING([dynamic loading])
-eval "`egrep '^build_libtool_libs=' libtool`"
-if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
- dynamic_loading=yes
- AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
-else
- dynamic_loading=no
-fi
-AC_MSG_RESULT($dynamic_loading)
-if test "$dynamic_loading" = "yes"; then
- $1
-else
- $2
-fi
-])
-
-AC_DEFUN([KDE_ADD_INCLUDES],
-[
-if test -z "$1"; then
- test_include="Pix.h"
-else
- test_include="$1"
-fi
-
-AC_MSG_CHECKING([for libg++ ($test_include)])
-
-AC_CACHE_VAL(kde_cv_libgpp_includes,
-[
-kde_cv_libgpp_includes=no
-
- for ac_dir in \
- \
- /usr/include/g++ \
- /usr/include \
- /usr/unsupported/include \
- /opt/include \
- $extra_include \
- ; \
- do
- if test -r "$ac_dir/$test_include"; then
- kde_cv_libgpp_includes=$ac_dir
- break
- fi
- done
-])
-
-AC_MSG_RESULT($kde_cv_libgpp_includes)
-if test "$kde_cv_libgpp_includes" != "no"; then
- all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
-fi
-])
-])
-
-AC_DEFUN([KDE_CHECK_LIBPTHREAD],
-[
- dnl This code is here specifically to handle the
- dnl various flavors of threading library on FreeBSD
- dnl 4-, 5-, and 6-, and the (weird) rules around it.
- dnl There may be an environment PTHREAD_LIBS that
- dnl specifies what to use; otherwise, search for it.
- dnl -pthread is special cased and unsets LIBPTHREAD
- dnl below if found.
- LIBPTHREAD=""
-
- if test -n "$PTHREAD_LIBS"; then
- if test "x$PTHREAD_LIBS" = "x-pthread" ; then
- LIBPTHREAD="PTHREAD"
- else
- PTHREAD_LIBS_save="$PTHREAD_LIBS"
- PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
- AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
- KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
- LIBPTHREAD="$PTHREAD_LIBS_save"])
- PTHREAD_LIBS="$PTHREAD_LIBS_save"
- fi
- fi
-
- dnl Is this test really needed, in the face of the Tru64 test below?
- if test -z "$LIBPTHREAD"; then
- AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
- fi
-
- dnl This is a special Tru64 check, see BR 76171 issue #18.
- if test -z "$LIBPTHREAD" ; then
- AC_MSG_CHECKING([for pthread_create in -lpthread])
- kde_safe_libs=$LIBS
- LIBS="$LIBS -lpthread"
- AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
- AC_MSG_RESULT(yes)
- LIBPTHREAD="-lpthread"],[
- AC_MSG_RESULT(no)])
- LIBS=$kde_safe_libs
- fi
-
- dnl Un-special-case for FreeBSD.
- if test "x$LIBPTHREAD" = "xPTHREAD" ; then
- LIBPTHREAD=""
- fi
-
- AC_SUBST(LIBPTHREAD)
-])
-
-AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
-[
- USE_THREADS=""
- if test -z "$LIBPTHREAD"; then
- KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
- fi
-
- AH_VERBATIM(__svr_define, [
-#if defined(__SVR4) && !defined(__svr4__)
-#define __svr4__ 1
-#endif
-])
- case $host_os in
- solaris*)
- KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
- CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
- ;;
- freebsd*)
- CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
- ;;
- aix*)
- CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
- LIBPTHREAD="$LIBPTHREAD -lc_r"
- ;;
- linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
- if test "$CXX" = "KCC"; then
- CXXFLAGS="$CXXFLAGS --thread_safe"
- NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
- fi
- ;;
- *)
- ;;
- esac
- AC_SUBST(USE_THREADS)
- AC_SUBST(LIBPTHREAD)
-])
-
-AC_DEFUN([KDE_CHECK_THREADING],
-[
- AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
- AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
- dnl default is yes if libpthread is found and no if no libpthread is available
- if test -z "$LIBPTHREAD"; then
- if test -z "$USE_THREADS"; then
- kde_check_threading_default=no
- else
- kde_check_threading_default=yes
- fi
- else
- kde_check_threading_default=yes
- fi
- AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
- kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
- if test "x$kde_use_threading" = "xyes"; then
- AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
- fi
-])
-
-AC_DEFUN([KDE_TRY_LINK_PYTHON],
-[
-if test "$kde_python_link_found" = no; then
-
-if test "$1" = normal; then
- AC_MSG_CHECKING(if a Python application links)
-else
- AC_MSG_CHECKING(if Python depends on $2)
-fi
-
-AC_CACHE_VAL(kde_cv_try_link_python_$1,
-[
-kde_save_cflags="$CFLAGS"
-CFLAGS="$CFLAGS $PYTHONINC"
-kde_save_libs="$LIBS"
-LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
-kde_save_ldflags="$LDFLAGS"
-LDFLAGS="$LDFLAGS $PYTHONLIB"
-
-AC_TRY_LINK(
-[
-#include <Python.h>
-],[
- PySys_SetArgv(1, 0);
-],
- [kde_cv_try_link_python_$1=yes],
- [kde_cv_try_link_python_$1=no]
-)
-CFLAGS="$kde_save_cflags"
-LIBS="$kde_save_libs"
-LDFLAGS="$kde_save_ldflags"
-])
-
-if test "$kde_cv_try_link_python_$1" = "yes"; then
- AC_MSG_RESULT(yes)
- kde_python_link_found=yes
- if test ! "$1" = normal; then
- LIBPYTHON="$LIBPYTHON $2"
- fi
- $3
-else
- AC_MSG_RESULT(no)
- $4
-fi
-
-fi
-
-])
-
-AC_DEFUN([KDE_CHECK_PYTHON_DIR],
-[
-AC_MSG_CHECKING([for Python directory])
-
-AC_CACHE_VAL(kde_cv_pythondir,
-[
- if test -z "$PYTHONDIR"; then
- kde_cv_pythondir=/usr/local
- else
- kde_cv_pythondir="$PYTHONDIR"
- fi
-])
-
-AC_ARG_WITH(pythondir,
-AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
-[
- ac_python_dir=$withval
-], ac_python_dir=$kde_cv_pythondir
-)
-
-AC_MSG_RESULT($ac_python_dir)
-])
-
-AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
-[
-AC_REQUIRE([KDE_CHECK_LIBDL])
-AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
-AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
-
-if test -z "$1"; then
- version="1.5"
-else
- version="$1"
-fi
-
-AC_MSG_CHECKING([for Python$version])
-
-python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
-AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
-if test ! -r $python_incdir/Python.h; then
- AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
- python_incdir=$python_incdir/python$version
- if test ! -r $python_incdir/Python.h; then
- python_incdir=no
- fi
-fi
-
-PYTHONINC=-I$python_incdir
-
-python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
-AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
-if test ! -r $python_libdir/libpython$version.so; then
- AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
- if test ! -r $python_libdir/libpython$version.a; then
- AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
- python_libdir=$python_libdir/python$version/config
- if test ! -r $python_libdir/libpython$version.a; then
- python_libdir=no
- fi
- fi
-fi
-
-PYTHONLIB=-L$python_libdir
-kde_orig_LIBPYTHON=$LIBPYTHON
-if test -z "$LIBPYTHON"; then
- LIBPYTHON=-lpython$version
-fi
-
-AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
-python_moddir=$python_moddir/python$version
-if test ! -r $python_moddir/copy.py; then
- python_moddir=no
-fi
-
-PYTHONMODDIR=$python_moddir
-
-AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
-
-if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then
- LIBPYTHON=$kde_orig_LIBPYTHON
- test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
- test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
- $2
-else
- dnl Note: this test is very weak
- kde_python_link_found=no
- KDE_TRY_LINK_PYTHON(normal)
- KDE_TRY_LINK_PYTHON(m, -lm)
- KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
- KDE_TRY_LINK_PYTHON(tcl, -ltcl)
- KDE_TRY_LINK_PYTHON(db2, -ldb2)
- KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
- KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
- KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
- KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
- KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
- [AC_MSG_WARN([it seems, Python depends on another library.
- Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
- and contact the authors to let them know about this problem])
- ])
-
- LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
- AC_SUBST(PYTHONINC)
- AC_SUBST(PYTHONLIB)
- AC_SUBST(LIBPYTHON)
- AC_SUBST(PYTHONMODDIR)
- AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
-fi
-
-])
-
-
-AC_DEFUN([KDE_CHECK_PYTHON],
-[
- KDE_CHECK_PYTHON_INTERN("2.5",
- [KDE_CHECK_PYTHON_INTERN("2.4",
- [KDE_CHECK_PYTHON_INTERN("2.3",
- [KDE_CHECK_PYTHON_INTERN("2.2",
- [KDE_CHECK_PYTHON_INTERN("2.1",
- [KDE_CHECK_PYTHON_INTERN("2.0",
- [KDE_CHECK_PYTHON_INTERN($1, $2) ])
- ])
- ])
- ])
- ])
- ])
-])
-
-AC_DEFUN([KDE_CHECK_STL],
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
-
- AC_MSG_CHECKING([if C++ programs can be compiled])
- AC_CACHE_VAL(kde_cv_stl_works,
- [
- AC_TRY_COMPILE([
-#include <string>
-using namespace std;
-],[
- string astring="Hallo Welt.";
- astring.erase(0, 6); // now astring is "Welt"
- return 0;
-], kde_cv_stl_works=yes,
- kde_cv_stl_works=no)
-])
-
- AC_MSG_RESULT($kde_cv_stl_works)
-
- if test "$kde_cv_stl_works" = "yes"; then
- # back compatible
- AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
- else
- AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
-Check config.log for details - if you're using a Linux distribution you might miss
-a package named similar to libstdc++-dev.])
- fi
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([AC_FIND_QIMGIO],
- [AC_REQUIRE([AC_FIND_JPEG])
-AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_MSG_CHECKING([for qimgio])
-AC_CACHE_VAL(ac_cv_lib_qimgio,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-ac_save_LIBS="$LIBS"
-ac_save_CXXFLAGS="$CXXFLAGS"
-LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
-CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
-AC_TRY_RUN(dnl
-[
-#include <qimageio.h>
-#include <qstring.h>
-int main() {
- QString t = "hallo";
- t.fill('t');
- qInitImageIO();
-}
-],
- ac_cv_lib_qimgio=yes,
- ac_cv_lib_qimgio=no,
- ac_cv_lib_qimgio=no)
-LIBS="$ac_save_LIBS"
-CXXFLAGS="$ac_save_CXXFLAGS"
-AC_LANG_RESTORE
-])dnl
-if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
- LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
- AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
- AC_SUBST(LIBQIMGIO)
-else
- AC_MSG_RESULT(not found)
-fi
-])
-
-AC_DEFUN([AM_DISABLE_LIBRARIES],
-[
- AC_PROVIDE([AM_ENABLE_STATIC])
- AC_PROVIDE([AM_ENABLE_SHARED])
- enable_static=no
- enable_shared=yes
-])
-
-
-AC_DEFUN([AC_CHECK_UTMP_FILE],
-[
- AC_MSG_CHECKING([for utmp file])
-
- AC_CACHE_VAL(kde_cv_utmp_file,
- [
- kde_cv_utmp_file=no
-
- for ac_file in \
- \
- /var/run/utmp \
- /var/adm/utmp \
- /etc/utmp \
- ; \
- do
- if test -r "$ac_file"; then
- kde_cv_utmp_file=$ac_file
- break
- fi
- done
- ])
-
- if test "$kde_cv_utmp_file" != "no"; then
- AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
- $1
- AC_MSG_RESULT($kde_cv_utmp_file)
- else
- $2
- AC_MSG_RESULT([non found])
- fi
-])
-
-
-AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
-[
-
-DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
-TOPSUBDIRS=""
-
-if test ! -s $srcdir/subdirs; then
- dnl Note: Makefile.common creates subdirs, so this is just a fallback
- files=`cd $srcdir && ls -1`
- dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
- for i in $dirs; do
- echo $i >> $srcdir/subdirs
- done
-fi
-
-ac_topsubdirs=
-if test -s $srcdir/inst-apps; then
- ac_topsubdirs="`cat $srcdir/inst-apps`"
-elif test -s $srcdir/subdirs; then
- ac_topsubdirs="`cat $srcdir/subdirs`"
-fi
-
-for i in $ac_topsubdirs; do
- AC_MSG_CHECKING([if $i should be compiled])
- if test -d $srcdir/$i; then
- install_it="yes"
- for j in $DO_NOT_COMPILE; do
- if test $i = $j; then
- install_it="no"
- fi
- done
- else
- install_it="no"
- fi
- AC_MSG_RESULT($install_it)
- vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
- if test $install_it = "yes"; then
- TOPSUBDIRS="$TOPSUBDIRS $i"
- eval "$vari""_SUBDIR_included=yes"
- else
- eval "$vari""_SUBDIR_included=no"
- fi
-done
-
-AC_SUBST(TOPSUBDIRS)
-])
-
-AC_DEFUN([KDE_CHECK_NAMESPACES],
-[
-AC_MSG_CHECKING(whether C++ compiler supports namespaces)
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_TRY_COMPILE([
-],
-[
-namespace Foo {
- extern int i;
- namespace Bar {
- extern int i;
- }
-}
-
-int Foo::i = 0;
-int Foo::Bar::i = 1;
-],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_NAMESPACES)
-], [
-AC_MSG_RESULT(no)
-])
-AC_LANG_RESTORE
-])
-
-dnl ------------------------------------------------------------------------
-dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_CHECK_S_ISSOCK],
-[
-AC_MSG_CHECKING(for S_ISSOCK)
-AC_CACHE_VAL(ac_cv_have_s_issock,
-[
-AC_TRY_LINK(
-[
-#include <sys/stat.h>
-],
-[
-struct stat buff;
-int b = S_ISSOCK( buff.st_mode );
-],
-ac_cv_have_s_issock=yes,
-ac_cv_have_s_issock=no)
-])
-AC_MSG_RESULT($ac_cv_have_s_issock)
-if test "$ac_cv_have_s_issock" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
-fi
-
-AH_VERBATIM(_ISSOCK,
-[
-#ifndef HAVE_S_ISSOCK
-#define HAVE_S_ISSOCK
-#define S_ISSOCK(mode) (1==0)
-#endif
-])
-
-])
-
-dnl ------------------------------------------------------------------------
-dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
-[
-AC_MSG_CHECKING(for MAXPATHLEN)
-AC_CACHE_VAL(ac_cv_maxpathlen,
-[
-cat > conftest.$ac_ext <<EOF
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/param.h>
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-KDE_HELLO MAXPATHLEN
-
-EOF
-
-ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
-
-if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
- ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
-else
- ac_cv_maxpathlen=1024
-fi
-
-rm conftest.*
-
-])
-AC_MSG_RESULT($ac_cv_maxpathlen)
-AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
-])
-
-AC_DEFUN([KDE_CHECK_HEADER],
-[
- kde_safe_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $all_includes"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_CHECK_HEADER([$1], [$2], [$3], [$4])
- AC_LANG_RESTORE
- CPPFLAGS=$kde_safe_cppflags
-])
-
-AC_DEFUN([KDE_CHECK_HEADERS],
-[
- AH_CHECK_HEADERS([$1])
- AC_LANG_SAVE
- kde_safe_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $all_includes"
- AC_LANG_CPLUSPLUS
- AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
- CPPFLAGS=$kde_safe_cppflags
- AC_LANG_RESTORE
-])
-
-AC_DEFUN([KDE_FAST_CONFIGURE],
-[
- dnl makes configure fast (needs perl)
- AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
- with_fast_perl=$enableval, with_fast_perl=yes)
-])
-
-AC_DEFUN([KDE_CONF_FILES],
-[
- val=
- if test -f $srcdir/configure.files ; then
- val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
- fi
- CONF_FILES=
- if test -n "$val" ; then
- for i in $val ; do
- CONF_FILES="$CONF_FILES $i"
- done
- fi
- AC_SUBST(CONF_FILES)
-])dnl
-
-dnl This sets the prefix, for arts and kdelibs
-dnl Do NOT use in any other module.
-dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
-AC_DEFUN([KDE_SET_PREFIX_CORE],
-[
- unset CDPATH
- dnl make $KDEDIR the default for the installation
- AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
-
- if test "x$prefix" = "xNONE"; then
- prefix=$ac_default_prefix
- ac_configure_args="$ac_configure_args --prefix=$prefix"
- fi
- # And delete superfluous '/' to make compares easier
- prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
-
- kde_libs_prefix='$(prefix)'
- kde_libs_htmldir='$(kde_htmldir)'
- AC_SUBST(kde_libs_prefix)
- AC_SUBST(kde_libs_htmldir)
- KDE_FAST_CONFIGURE
- KDE_CONF_FILES
-])
-
-
-AC_DEFUN([KDE_SET_PREFIX],
-[
- unset CDPATH
- dnl We can't give real code to that macro, only a value.
- dnl It only matters for --help, since we set the prefix in this function anyway.
- AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
-
- KDE_SET_DEFAULT_BINDIRS
- if test "x$prefix" = "xNONE"; then
- dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
- else
- dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
- kde_save_PATH="$PATH"
- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
- PATH="$kde_save_PATH"
- fi
-
- kde_libs_prefix=`$KDECONFIG --prefix`
- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
- This means it has been moved since you installed it.
- This won't work. Please recompile kdelibs for the new prefix.
- ])
- fi
- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
-
- AC_MSG_CHECKING([where to install])
- if test "x$prefix" = "xNONE"; then
- prefix=$kde_libs_prefix
- AC_MSG_RESULT([$prefix (as returned by kde-config)])
- else
- dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
- given_prefix=$prefix
- AC_MSG_RESULT([$prefix (as requested)])
- fi
-
- # And delete superfluous '/' to make compares easier
- prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
- given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
-
- AC_SUBST(KDECONFIG)
- AC_SUBST(kde_libs_prefix)
- AC_SUBST(kde_libs_htmldir)
-
- KDE_FAST_CONFIGURE
- KDE_CONF_FILES
-])
-
-pushdef([AC_PROG_INSTALL],
-[
- dnl our own version, testing for a -p flag
- popdef([AC_PROG_INSTALL])
- dnl as AC_PROG_INSTALL works as it works we first have
- dnl to save if the user didn't specify INSTALL, as the
- dnl autoconf one overwrites INSTALL and we have no chance to find
- dnl out afterwards
- test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
- test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
- test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
- AC_PROG_INSTALL
-
- if test -z "$kde_save_INSTALL_given" ; then
- # OK, user hasn't given any INSTALL, autoconf found one for us
- # now we test, if it supports the -p flag
- AC_MSG_CHECKING(for -p flag to install)
- rm -f confinst.$$.* > /dev/null 2>&1
- echo "Testtest" > confinst.$$.orig
- ac_res=no
- if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
- if test -f confinst.$$.new ; then
- # OK, -p seems to do no harm to install
- INSTALL="${INSTALL} -p"
- ac_res=yes
- fi
- fi
- rm -f confinst.$$.*
- AC_MSG_RESULT($ac_res)
- fi
- dnl the following tries to resolve some signs and wonders coming up
- dnl with different autoconf/automake versions
- dnl e.g.:
- dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
- dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
- dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
- dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
- dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
- dnl install-@DIR@PROGRAMS targets to explicitly use that flag
- dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
- dnl INSTALL_SCRIPT, which breaks with automake <= 1.4
- dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure
- dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from
- dnl automake (due to broken Makefile.am or whatever) to install programs,
- dnl and so does not see the -s flag in automake > 1.4
- dnl to clean up that mess we:
- dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
- dnl which cleans KDE's program with automake > 1.4;
- dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
- dnl with automake<=1.4
- dnl note that dues to this sometimes two '-s' flags are used (if KDE
- dnl properly uses install-@DIR@PROGRAMS, but I don't care
- dnl
- dnl And to all this comes, that I even can't write in comments variable
- dnl names used by automake, because it is so stupid to think I wanted to
- dnl _use_ them, therefor I have written A_M_... instead of AM_
- dnl hmm, I wanted to say something ... ahh yes: Arghhh.
-
- if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
- INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
- fi
- if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
- INSTALL_SCRIPT='${INSTALL}'
- fi
-])dnl
-
-AC_DEFUN([KDE_LANG_CPLUSPLUS],
-[AC_LANG_CPLUSPLUS
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
-pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
-])
-
-pushdef([AC_LANG_CPLUSPLUS],
-[popdef([AC_LANG_CPLUSPLUS])
-KDE_LANG_CPLUSPLUS
-])
-
-AC_DEFUN([KDE_CHECK_LONG_LONG],
-[
-AC_MSG_CHECKING(for long long)
-AC_CACHE_VAL(kde_cv_c_long_long,
-[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_LINK([], [
- long long foo = 0;
- foo = foo+1;
- ],
- kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
- AC_LANG_RESTORE
-])
-AC_MSG_RESULT($kde_cv_c_long_long)
-if test "$kde_cv_c_long_long" = yes; then
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
-fi
-])
-
-AC_DEFUN([KDE_CHECK_LIB],
-[
- kde_save_LDFLAGS="$LDFLAGS"
- dnl AC_CHECK_LIB modifies LIBS, so save it here
- kde_save_LIBS="$LIBS"
- LDFLAGS="$LDFLAGS $all_libraries"
- case $host_os in
- aix*) LDFLAGS="-brtl $LDFLAGS"
- test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
- ;;
- esac
- AC_CHECK_LIB($1, $2, $3, $4, $5)
- LDFLAGS="$kde_save_LDFLAGS"
- LIBS="$kde_save_LIBS"
-])
-
-AC_DEFUN([KDE_JAVA_PREFIX],
-[
- dir=`dirname "$1"`
- base=`basename "$1"`
- list=`ls -1 $dir 2> /dev/null`
- for entry in $list; do
- if test -d $dir/$entry/bin; then
- case $entry in
- $base)
- javadirs="$javadirs $dir/$entry/bin"
- ;;
- esac
- elif test -d $dir/$entry/jre/bin; then
- case $entry in
- $base)
- javadirs="$javadirs $dir/$entry/jre/bin"
- ;;
- esac
- fi
- done
-])
-
-dnl KDE_CHEC_JAVA_DIR(onlyjre)
-AC_DEFUN([KDE_CHECK_JAVA_DIR],
-[
-
-AC_ARG_WITH(java,
-AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
-[ ac_java_dir=$withval
-], ac_java_dir=""
-)
-
-AC_MSG_CHECKING([for Java])
-
-dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
-if test "x$ac_java_dir" = "xno"; then
- kde_java_bindir=no
- kde_java_includedir=no
- kde_java_libjvmdir=no
- kde_java_libgcjdir=no
- kde_java_libhpidir=no
-else
- if test "x$ac_java_dir" = "x"; then
-
-
- dnl No option set -> collect list of candidate paths
- if test -n "$JAVA_HOME"; then
- KDE_JAVA_PREFIX($JAVA_HOME)
- fi
- KDE_JAVA_PREFIX(/usr/j2se)
- KDE_JAVA_PREFIX(/usr/lib/j2se)
- KDE_JAVA_PREFIX(/usr/j*dk*)
- KDE_JAVA_PREFIX(/usr/lib/j*dk*)
- KDE_JAVA_PREFIX(/opt/j*sdk*)
- KDE_JAVA_PREFIX(/usr/lib/java*)
- KDE_JAVA_PREFIX(/usr/java*)
- KDE_JAVA_PREFIX(/usr/java/j*dk*)
- KDE_JAVA_PREFIX(/usr/java/j*re*)
- KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
- KDE_JAVA_PREFIX(/usr/lib/SunJava*)
- KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
- KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
- KDE_JAVA_PREFIX(/opt/java*)
-
- kde_cv_path="NONE"
- kde_save_IFS=$IFS
- IFS=':'
- for dir in $PATH; do
- if test -d "$dir"; then
- javadirs="$javadirs $dir"
- fi
- done
- IFS=$kde_save_IFS
- jredirs=
-
- dnl Now javadirs contains a list of paths that exist, all ending with bin/
- for dir in $javadirs; do
- dnl Check for the java executable
- if test -x "$dir/java"; then
- sane_path=$(cd $dir; /bin/pwd)
- dnl And also check for a libjvm.so somewhere under there
- dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
- if test "$sane_path" != "/usr/bin"; then
- libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
- if test ! -f $libjvmdir/libjvm.so; then continue; fi
- jredirs="$jredirs $dir"
- fi
- fi
- done
-
- dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
- JAVAC=
- JAVA=
- kde_java_bindir=no
- for dir in $jredirs; do
- JAVA="$dir/java"
- kde_java_bindir=$dir
- if test -x "$dir/javac"; then
- JAVAC="$dir/javac"
- break
- fi
- done
-
- if test -n "$JAVAC"; then
- dnl this substitution might not work - well, we test for jni.h below
- kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
- else
- kde_java_includedir=no
- fi
- else
- dnl config option set
- kde_java_bindir=$ac_java_dir/bin
- if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
- kde_java_includedir=no
- else
- kde_java_includedir=$ac_java_dir/include
- fi
- fi
-fi
-
-dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
-if test "x$kde_java_bindir" != "xno"; then
-
- dnl Look for libjvm.so
- kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
- dnl Look for libgcj.so
- kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
- dnl Look for libhpi.so and avoid green threads
- kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
-
- dnl Now check everything's fine under there
- dnl the include dir is our flag for having the JDK
- if test -d "$kde_java_includedir"; then
- if test ! -x "$kde_java_bindir/javac"; then
- AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
- fi
- if test ! -x "$kde_java_bindir/javah"; then
- AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
- if test ! -x "$kde_java_bindir/jar"; then
- AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
- if test ! -r "$kde_java_includedir/jni.h"; then
- AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
- fi
-
- jni_includes="-I$kde_java_includedir"
- dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
- dnl and under linux here..
-
- dnl not needed for gcj
-
- if test "x$kde_java_libgcjdir" = "x"; then
- test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
- test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
- test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
- fi
-
- else
- JAVAC=
- jni_includes=
- fi
-
- if test "x$kde_java_libgcjdir" = "x"; then
- if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
- AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
- fi
- else
- if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
- AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
- fi
- fi
-
- if test ! -x "$kde_java_bindir/java"; then
- AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
- fi
-
- dnl not needed for gcj compile
-
- if test "x$kde_java_libgcjdir" = "x"; then
- if test ! -r "$kde_java_libhpidir/libhpi.so"; then
- AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
- fi
- fi
-
- if test -n "$jni_includes"; then
- dnl Check for JNI version
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_cxxflags_safe="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
-
- AC_TRY_COMPILE([
- #include <jni.h>
- ],
- [
- #ifndef JNI_VERSION_1_2
- Syntax Error
- #endif
- ],[ kde_jni_works=yes ],
- [ kde_jni_works=no ])
-
- if test $kde_jni_works = no; then
- AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
- You need to have Java Development Kit (JDK) version 1.2.
-
- Use --with-java to specify another location.
- Use --without-java to configure without java support.
- Or download a newer JDK and try again.
- See e.g. http://java.sun.com/products/jdk/1.2 ])
- fi
-
- CXXFLAGS="$ac_cxxflags_safe"
- AC_LANG_RESTORE
-
- dnl All tests ok, inform and subst the variables
-
- JAVAC=$kde_java_bindir/javac
- JAVAH=$kde_java_bindir/javah
- JAR=$kde_java_bindir/jar
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- if test "x$kde_java_libgcjdir" = "x"; then
- JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
- else
- JVMLIBS="-L$kde_java_libgcjdir -lgcj"
- fi
- AC_MSG_RESULT([java JDK in $kde_java_bindir])
-
- else
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- AC_MSG_RESULT([java JRE in $kde_java_bindir])
- fi
-elif test -d "/Library/Java/Home"; then
- kde_java_bindir="/Library/Java/Home/bin"
- jni_includes="-I/Library/Java/Home/include"
-
- JAVAC=$kde_java_bindir/javac
- JAVAH=$kde_java_bindir/javah
- JAR=$kde_java_bindir/jar
- JVMLIBS="-Wl,-framework,JavaVM"
-
- AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
- AC_MSG_RESULT([Apple Java Framework])
-else
- AC_MSG_RESULT([none found])
-fi
-
-AC_SUBST(JAVAC)
-AC_SUBST(JAVAH)
-AC_SUBST(JAR)
-AC_SUBST(JVMLIBS)
-AC_SUBST(jni_includes)
-
-# for backward compat
-kde_cv_java_includedir=$kde_java_includedir
-kde_cv_java_bindir=$kde_java_bindir
-])
-
-dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
-dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
-dnl big packages, m4_foreach is dog-slow. So use our own version of
-dnl it. (matz@kde.org)
-m4_define([mm_foreach],
-[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
-m4_define([mm_car], [[$1]])
-m4_define([mm_car2], [[$@]])
-m4_define([_mm_foreach],
-[m4_if(m4_quote($2), [], [],
- [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
- mm_car2(m4_shift($2)),
- [$3])])])
-m4_define([AC_FOREACH],
-[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
-
-AC_DEFUN([KDE_NEED_FLEX],
-[
-kde_libs_safe=$LIBS
-LIBS="$LIBS $USER_LDFLAGS"
-AM_PROG_LEX
-LIBS=$kde_libs_safe
-if test -z "$LEXLIB"; then
- AC_MSG_ERROR([You need to have flex installed.])
-fi
-AC_SUBST(LEXLIB)
-])
-
-AC_DEFUN([AC_PATH_QTOPIA],
-[
- dnl TODO: use AC_CACHE_VAL
-
- if test -z "$1"; then
- qtopia_minver_maj=1
- qtopia_minver_min=5
- qtopia_minver_pat=0
- else
- qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
- qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
- qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
- fi
-
- qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
- qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
-
- AC_REQUIRE([AC_PATH_QT])
-
- AC_MSG_CHECKING([for Qtopia])
-
- LIB_QTOPIA="-lqpe"
- AC_SUBST(LIB_QTOPIA)
-
- kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
-
- ac_qtopia_incdir=NO
-
- AC_ARG_WITH(qtopia-dir,
- AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
- [ ac_qtopia_incdir="$withval"/include] )
-
- qtopia_incdirs=""
- for dir in $kde_qtopia_dirs; do
- qtopia_incdirs="$qtopia_incdirs $dir/include"
- done
-
- if test ! "$ac_qtopia_incdir" = "NO"; then
- qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
- fi
-
- qtopia_incdir=""
- AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
- ac_qtopia_incdir="$qtopia_incdir"
-
- if test -z "$qtopia_incdir"; then
- AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
- fi
-
- qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
- qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
- qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
-
- qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
- qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
- if test "$qtopia_ver" -lt "$qtopia_minver"; then
- AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
-is required.])
- fi
-
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- ac_cxxflags_safe="$CXXFLAGS"
- ac_ldflags_safe="$LDFLAGS"
- ac_libs_safe="$LIBS"
-
- CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
- LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
- LIBS="$LIBS $LIB_QTOPIA $LIBQT"
-
- cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <qpe/qpeapplication.h>
-#include <qpe/version.h>
-
-int main( int argc, char **argv )
-{
- QPEApplication app( argc, argv );
- return 0;
-}
-EOF
-
- if AC_TRY_EVAL(ac_link) && test -s conftest; then
- rm -f conftest*
- else
- rm -f conftest*
- AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
-the end of config.log])
- fi
-
- CXXFLAGS="$ac_cxxflags_safe"
- LDFLAGS="$ac_ldflags_safe"
- LIBS="$ac_libs_safe"
-
- AC_LANG_RESTORE
-
- QTOPIA_INCLUDES="-I$qtopia_incdir"
- AC_SUBST(QTOPIA_INCLUDES)
-
- AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
-])
-
-
-AC_DEFUN([KDE_INIT_DOXYGEN],
-[
-AC_MSG_CHECKING([for Qt docs])
-kde_qtdir=
-if test "${with_qt_dir+set}" = set; then
- kde_qtdir="$with_qt_dir"
-fi
-
-AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
-AC_MSG_RESULT($QTDOCDIR)
-
-AC_SUBST(QTDOCDIR)
-
-KDE_FIND_PATH(dot, DOT, [], [])
-if test -n "$DOT"; then
- KDE_HAVE_DOT="YES"
-else
- KDE_HAVE_DOT="NO"
-fi
-AC_SUBST(KDE_HAVE_DOT)
-KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
-AC_SUBST(DOXYGEN)
-
-DOXYGEN_PROJECT_NAME="$1"
-DOXYGEN_PROJECT_NUMBER="$2"
-AC_SUBST(DOXYGEN_PROJECT_NAME)
-AC_SUBST(DOXYGEN_PROJECT_NUMBER)
-
-KDE_HAS_DOXYGEN=no
-if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
- KDE_HAS_DOXYGEN=yes
-fi
-AC_SUBST(KDE_HAS_DOXYGEN)
-
-])
-
-
-AC_DEFUN([AC_FIND_BZIP2],
-[
-AC_MSG_CHECKING([for bzDecompress in libbz2])
-AC_CACHE_VAL(ac_cv_lib_bzip2,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-kde_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
-kde_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(dnl
-[
-#define BZ_NO_STDIO
-#include<bzlib.h>
-],
- [ bz_stream s; (void) bzDecompress(&s); ],
- eval "ac_cv_lib_bzip2='-lbz2'",
- eval "ac_cv_lib_bzip2=no")
-LIBS="$kde_save_LIBS"
-CXXFLAGS="$kde_save_CXXFLAGS"
-AC_LANG_RESTORE
-])dnl
-AC_MSG_RESULT($ac_cv_lib_bzip2)
-
-if test ! "$ac_cv_lib_bzip2" = no; then
- BZIP2DIR=bzip2
-
- LIBBZ2="$ac_cv_lib_bzip2"
- AC_SUBST(LIBBZ2)
-
-else
-
- cxx_shared_flag=
- ld_shared_flag=
- KDE_CHECK_COMPILER_FLAG(shared, [
- ld_shared_flag="-shared"
- ])
- KDE_CHECK_COMPILER_FLAG(fPIC, [
- cxx_shared_flag="-fPIC"
- ])
-
- AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
- AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- kde_save_LIBS="$LIBS"
- LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
- kde_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
-
- AC_TRY_LINK(dnl
- [
- #define BZ_NO_STDIO
- #include<bzlib.h>
- ],
- [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
- eval "ac_cv_lib_bzip2_prefix='-lbz2'",
- eval "ac_cv_lib_bzip2_prefix=no")
- LIBS="$kde_save_LIBS"
- CXXFLAGS="$kde_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])dnl
-
- AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
-
- if test ! "$ac_cv_lib_bzip2_prefix" = no; then
- BZIP2DIR=bzip2
-
- LIBBZ2="$ac_cv_lib_bzip2_prefix"
- AC_SUBST(LIBBZ2)
-
- AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
- dnl else, we just ignore this
- fi
-
-fi
-AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
-])
-
-dnl ------------------------------------------------------------------------
-dnl Try to find the SSL headers and libraries.
-dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
-dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
-dnl ------------------------------------------------------------------------
-dnl
-AC_DEFUN([KDE_CHECK_SSL],
-[
-LIBSSL="-lssl -lcrypto"
-AC_REQUIRE([KDE_CHECK_LIB64])
-
-ac_ssl_includes=NO ac_ssl_libraries=NO
-ssl_libraries=""
-ssl_includes=""
-AC_ARG_WITH(ssl-dir,
- AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
- [ ac_ssl_includes="$withval"/include
- ac_ssl_libraries="$withval"/lib$kdelibsuff
- ])
-
-want_ssl=yes
-AC_ARG_WITH(ssl,
- AC_HELP_STRING([--without-ssl],[disable SSL checks]),
- [want_ssl=$withval])
-
-if test $want_ssl = yes; then
-
-AC_MSG_CHECKING(for OpenSSL)
-
-AC_CACHE_VAL(ac_cv_have_ssl,
-[#try to guess OpenSSL locations
-
- ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
- ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
- AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
- ac_ssl_includes="$ssl_incdir"
-
- ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
- if test ! "$ac_ssl_libraries" = "NO"; then
- ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
- fi
-
- test=NONE
- ssl_libdir=NONE
- for dir in $ssl_libdirs; do
- try="ls -1 $dir/libssl*"
- if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
- done
-
- ac_ssl_libraries="$ssl_libdir"
-
- ac_ldflags_safe="$LDFLAGS"
- ac_libs_safe="$LIBS"
-
- LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
- LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
-
- AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
- ac_ssl_rsaref="yes"
- ,
- ac_ssl_rsaref="no"
- )
-
- LDFLAGS="$ac_ldflags_safe"
- LIBS="$ac_libs_safe"
-
- if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
- have_ssl=no
- else
- have_ssl=yes;
- fi
-
- ])
-
- eval "$ac_cv_have_ssl"
-
- AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
-
- AC_MSG_CHECKING([whether OpenSSL uses rsaref])
- AC_MSG_RESULT($ac_ssl_rsaref)
-
- AC_MSG_CHECKING([for easter eggs])
- AC_MSG_RESULT([none found])
-
-else
- have_ssl=no
-fi
-
-if test "$have_ssl" = yes; then
- AC_MSG_CHECKING(for OpenSSL version)
- dnl Check for SSL version
- AC_CACHE_VAL(ac_cv_ssl_version,
- [
-
- cat >conftest.$ac_ext <<EOF
-#include <openssl/opensslv.h>
-#include <stdio.h>
- int main() {
-
-#ifndef OPENSSL_VERSION_NUMBER
- printf("ssl_version=\\"error\\"\n");
-#else
- if (OPENSSL_VERSION_NUMBER < 0x00906000)
- printf("ssl_version=\\"old\\"\n");
- else
- printf("ssl_version=\\"ok\\"\n");
-#endif
- return (0);
- }
-EOF
-
- ac_save_CPPFLAGS=$CPPFLAGS
- if test "$ac_ssl_includes" != "/usr/include"; then
- CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
- fi
-
- if AC_TRY_EVAL(ac_link); then
-
- if eval `./conftest 2>&5`; then
- if test $ssl_version = error; then
- AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
- else
- if test $ssl_version = old; then
- AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
- have_ssl=no
- fi
- fi
- ac_cv_ssl_version="ssl_version=$ssl_version"
- else
- AC_MSG_ERROR([Your system couldn't run a small SSL test program.
- Check config.log, and if you can't figure it out, send a mail to
- David Faure <faure@kde.org>, attaching your config.log])
- fi
-
- else
- AC_MSG_ERROR([Your system couldn't link a small SSL test program.
- Check config.log, and if you can't figure it out, send a mail to
- David Faure <faure@kde.org>, attaching your config.log])
- fi
- CPPFLAGS=$ac_save_CPPFLAGS
-
- ])
-
- eval "$ac_cv_ssl_version"
- AC_MSG_RESULT($ssl_version)
-fi
-
-if test "$have_ssl" != yes; then
- LIBSSL="";
-else
- AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
- ac_cv_have_ssl="have_ssl=yes \
- ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
-
-
- ssl_libraries="$ac_ssl_libraries"
- ssl_includes="$ac_ssl_includes"
-
- if test "$ac_ssl_rsaref" = yes; then
- LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref"
- fi
-
- if test $ssl_version = "old"; then
- AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
- fi
-fi
-
-SSL_INCLUDES=
-
-if test "$ssl_includes" = "/usr/include"; then
- if test -f /usr/kerberos/include/krb5.h; then
- SSL_INCLUDES="-I/usr/kerberos/include"
- fi
-elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
- SSL_INCLUDES="-I$ssl_includes"
-fi
-
-if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
- SSL_LDFLAGS=""
-else
- SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
-fi
-
-AC_SUBST(SSL_INCLUDES)
-AC_SUBST(SSL_LDFLAGS)
-AC_SUBST(LIBSSL)
-])
-
-AC_DEFUN([KDE_CHECK_STRLCPY],
-[
- AC_REQUIRE([AC_CHECK_STRLCAT])
- AC_REQUIRE([AC_CHECK_STRLCPY])
- AC_CHECK_SIZEOF(size_t)
- AC_CHECK_SIZEOF(unsigned long)
-
- AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
- AC_TRY_COMPILE(,[
- #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
- choke me
- #endif
- ],AC_MSG_RESULT([yes]),[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([
- Apparently on your system our assumption sizeof size_t == sizeof unsigned long
- does not apply. Please mail kde-devel@kde.org with a description of your system!
- ])
- ])
-])
-
-AC_DEFUN([KDE_CHECK_BINUTILS],
-[
- AC_MSG_CHECKING([if ld supports unversioned version maps])
-
- kde_save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
- echo "{ local: extern \"C++\" { foo }; };" > conftest.map
- AC_TRY_LINK([int foo;],
-[
-#ifdef __INTEL_COMPILER
-icc apparently does not support libtools version-info and version-script
-at the same time. Dunno where the bug is, but until somebody figured out,
-better disable the optional version scripts.
-#endif
-
- foo = 42;
-], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
- LDFLAGS="$kde_save_LDFLAGS"
- rm -f conftest.map
- AM_CONDITIONAL(include_VERSION_SCRIPT,
- [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
-
- AC_MSG_RESULT($kde_supports_versionmaps)
-])
-
-AC_DEFUN([AM_PROG_OBJC],[
-AC_CHECK_PROGS(OBJC, gcc, gcc)
-test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
-if test "x${OBJCFLAGS-unset}" = xunset; then
- OBJCFLAGS="-g -O2"
-fi
-AC_SUBST(OBJCFLAGS)
-_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
-])
-
-AC_DEFUN([KDE_CHECK_PERL],
-[
- KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
- AC_MSG_ERROR([No Perl found in your $PATH.
-We need perl to generate some code.])
- ])
- AC_SUBST(PERL)
-])
-
-AC_DEFUN([KDE_CHECK_LARGEFILE],
-[
-AC_SYS_LARGEFILE
-if test "$ac_cv_sys_file_offset_bits" != no; then
- CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
-fi
-
-if test "x$ac_cv_sys_large_files" != "xno"; then
- CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
-fi
-
-])
-
-dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
-dnl which allows to search for libs that get installed into the KDE prefix.
-dnl
-dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
-dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
-dnl also defines KSTUFF_PKG_ERRORS on error
-AC_DEFUN([KDE_PKG_CHECK_MODULES], [
-
- PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
- if test "$prefix" != "$kde_libs_prefix"; then
- PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
- fi
- export PKG_CONFIG_PATH
- PKG_CHECK_MODULES([$1],[$2],[$3],[$4])
-])
-
-
-dnl Check for PIE support in the compiler and linker
-AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
-[
- AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- safe_CXXFLAGS=$CXXFLAGS
- safe_LDFLAGS=$LDFLAGS
- CXXFLAGS="$CXXFLAGS -fPIE"
- LDFLAGS="$LDFLAGS -pie"
-
- AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
-
- CXXFLAGS=$safe_CXXFLAGS
- LDFLAGS=$safe_LDFLAGS
- AC_LANG_RESTORE
- ])
-
- AC_MSG_CHECKING(if enabling -pie/fPIE support)
-
- AC_ARG_ENABLE(pie,
- AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
- [kde_has_pie_support=$enableval],
- [kde_has_pie_support=detect])
-
- if test "$kde_has_pie_support" = "detect"; then
- kde_has_pie_support=$kde_cv_val_pie_support
- fi
-
- AC_MSG_RESULT([$kde_has_pie_support])
-
- KDE_USE_FPIE=""
- KDE_USE_PIE=""
-
- AC_SUBST([KDE_USE_FPIE])
- AC_SUBST([KDE_USE_PIE])
-
- if test "$kde_has_pie_support" = "yes"; then
- KDE_USE_FPIE="-fPIE"
- KDE_USE_PIE="-pie"
- fi
-])
diff --git a/libs/taglib/admin/am_edit b/libs/taglib/admin/am_edit
deleted file mode 100644
index 108eb67d5e..0000000000
--- a/libs/taglib/admin/am_edit
+++ /dev/null
@@ -1,2445 +0,0 @@
-#!/usr/bin/perl -w
-
-# Expands the specialised KDE tags in Makefile.in to (hopefully) valid
-# make syntax.
-# When called without file parameters, we work recursively on all Makefile.in
-# in and below the current subdirectory. When called with file parameters,
-# only those Makefile.in are changed.
-# The currently supported tags are
-#
-# {program}_METASOURCES
-# where you have a choice of two styles
-# {program}_METASOURCES = name1.moc name2.moc ... [\]
-# {program}_METASOURCES = AUTO
-# The second style requires other tags as well.
-#
-# To install icons :
-# KDE_ICON = iconname iconname2 ...
-# KDE_ICON = AUTO
-#
-# For documentation :
-# http://developer.kde.org/documentation/other/developer-faq.html
-#
-# and more new tags TBD!
-#
-# The concept (and base code) for this program came from automoc,
-# supplied by the following
-#
-# Matthias Ettrich <ettrich@kde.org> (The originator)
-# Kalle Dalheimer <kalle@kde.org> (The original implementator)
-# Harri Porten <porten@tu-harburg.de>
-# Alex Zepeda <jazepeda@pacbell.net>
-# David Faure <faure@kde.org>
-# Stephan Kulow <coolo@kde.org>
-# Dirk Mueller <mueller@kde.org>
-
-use Cwd;
-use File::Find;
-use File::Basename;
-
-# Prototype the functions
-sub initialise ();
-sub processMakefile ($);
-sub updateMakefile ();
-sub restoreMakefile ();
-
-sub removeLine ($$);
-sub appendLines ($);
-sub substituteLine ($$);
-
-sub findMocCandidates ();
-sub pruneMocCandidates ($);
-sub checkMocCandidates ();
-sub addMocRules ();
-sub findKcfgFile($);
-
-sub tag_AUTOMAKE ();
-sub tag_META_INCLUDES ();
-sub tag_METASOURCES ();
-sub tag_POFILES ();
-sub tag_DOCFILES ();
-sub tag_LOCALINSTALL();
-sub tag_IDLFILES();
-sub tag_UIFILES();
-sub tag_KCFGFILES();
-sub tag_SUBDIRS();
-sub tag_ICON();
-sub tag_CLOSURE();
-sub tag_NO_UNDEFINED();
-sub tag_NMCHECK();
-sub tag_DIST();
-sub tag_KDEINIT();
-
-# Some global globals...
-$verbose = 0; # a debug flag
-$thisProg = "$0"; # This programs name
-$topdir = cwd(); # The current directory
-@makefiles = (); # Contains all the files we'll process
-@foreignfiles = ();
-$start = (times)[0]; # some stats for testing - comment out for release
-$version = "v0.2";
-$errorflag = 0;
-$cppExt = "(cpp|cc|cxx|C|c\\+\\+)";
-$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)";
-$progId = "KDE tags expanded automatically by " . basename($thisProg);
-$automkCall = "\n";
-$printname = ""; # used to display the directory the Makefile is in
-$use_final = 1; # create code for --enable-final
-$cleantarget = "clean";
-$dryrun = 0;
-$pathoption = 0;
-$foreign_libtool = 0;
-
-while (defined ($ARGV[0]))
-{
- $_ = shift;
- if (/^--version$/)
- {
- print STDOUT "\n";
- print STDOUT basename($thisProg), " $version\n",
- "This is really free software, unencumbered by the GPL.\n",
- "You can do anything you like with it except sueing me.\n",
- "Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n",
- "Concept, design and unnecessary questions about perl\n",
- " by Matthias Ettrich <ettrich\@kde.org>\n\n",
- "Making it useful by Stephan Kulow <coolo\@kde.org> and\n",
- "Harri Porten <porten\@kde.org>\n",
- "Updated (Feb-1999), John Birch <jb.nz\@writeme.com>\n",
- "Fixes and Improvements by Dirk Mueller <mueller\@kde.org>\n",
- "Current Maintainer Stephan Kulow\n\n";
- exit 0;
- }
- elsif (/^--verbose$|^-v$/)
- {
- $verbose = 1; # Oh is there a problem...?
- }
- elsif (/^(?:-p|--path=)(.+)$/)
- {
- my $p = $1;
- $thisProg = $p . "/". basename($thisProg);
- warn ("$thisProg doesn't exist\n") if (!(-f $thisProg));
- $thisProg .= " -p".$p;
- $pathoption=1;
- }
- elsif (/^--help$|^-h$/)
- {
- print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n",
- "\n",
- "Patches dir/Makefile.in generated by automake\n",
- "(where dir can be an absolute or relative directory name)\n",
- "\n",
- " -v, --verbose verbosely list files processed\n",
- " -h, --help print this help, then exit\n",
- " --version print version number, then exit\n",
- " -p, --path= use the path to am_edit if the path\n",
- " called from is not the one to be used\n",
- " --no-final don't patch for --enable-final\n";
-
- exit 0;
- }
- elsif (/^--no-final$/)
- {
- $use_final = 0;
- $thisProg .= " --no-final";
- }
- elsif (/^--foreign-libtool$/)
- {
- $foreign_libtool = 1;
- $thisProg .= " --foreign-libtool";
- }
- elsif (/^-n$/)
- {
- $dryrun = 1;
- }
- else
- {
- # user selects what input files to check
- # add full path if relative path is given
- $_ = cwd()."/".$_ if (! /^\//);
- print "User wants $_\n" if ($verbose);
- push (@makefiles, $_);
- }
-}
-
-if ($thisProg =~ /^\// && !$pathoption )
-{
- print STDERR "Illegal full pathname call performed...\n",
- "The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n",
- "Please use option --path.\n";
- exit 1;
-}
-
-# Only scan for files when the user hasn't entered data
-if (!@makefiles)
-{
- print STDOUT "Scanning for Makefile.in\n" if ($verbose);
- find (\&add_makefile, cwd());
- #chdir('$topdir');
-} else {
- print STDOUT "Using input files specified by user\n" if ($verbose);
-}
-
-foreach $makefile (sort(@makefiles))
-{
- processMakefile ($makefile);
- last if ($errorflag);
-}
-
-# Just some debug statistics - comment out for release as it uses printf.
-printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start if ($verbose);
-
-exit $errorflag; # causes make to fail if erroflag is set
-
-#-----------------------------------------------------------------------------
-
-# In conjunction with the "find" call, this builds the list of input files
-sub add_makefile ()
-{
- push (@makefiles, $File::Find::name) if (/Makefile.in$/);
-}
-
-#-----------------------------------------------------------------------------
-
-# Processes a single make file
-# The parameter contains the full path name of the Makefile.in to use
-sub processMakefile ($)
-{
- # some useful globals for the subroutines called here
- local ($makefile) = @_;
- local @headerdirs = ('.');
- local $haveAutomocTag = 0;
- local $MakefileData = "";
-
- local $cxxsuffix = "KKK";
-
- local @programs = (); # lists the names of programs and libraries
- local $program = "";
-
- local @kdeinits = (); # lists the kdeinit targets
-
- local %realObjs = (); # lists the objects compiled into $program
- local %sources = (); # lists the sources used for $program
- local %finalObjs = (); # lists the objects compiled when final
- local %realname = (); # the binary name of program variable
- local %idlfiles = (); # lists the idl files used for $program
- local %globalmocs = ();# list of all mocfiles (in %mocFiles format)
- local %important = (); # list of files to be generated asap
- local %uiFiles = ();
- local %kcfgFiles = ();
-
- local $allidls = "";
- local $idl_output = "";# lists all idl generated files for cleantarget
- local $ui_output = "";# lists all uic generated files for cleantarget
- local $kcfg_output = "";# lists all kcfg generated files for cleantarget
-
- local %dependmocs = ();
-
- local $metasourceTags = 0;
- local $dep_files = "";
- local $dep_finals = "";
- local %target_adds = (); # the targets to add
- local %rule_adds = ();
- local $kdelang = "";
- local @cleanfiles = ();
- local $cleanMoc = "";
- local $closure_output = "";
-
- local %varcontent = ();
-
- $makefileDir = dirname($makefile);
- chdir ($makefileDir);
- $printname = $makefile;
- $printname =~ s/^\Q$topdir\E\///;
- $makefile = basename($makefile);
-
- print STDOUT "Processing makefile $printname\n" if ($verbose);
-
- # Setup and see if we need to do this.
- return if (!initialise());
-
- tag_AUTOMAKE (); # Allows a "make" to redo the Makefile.in
- tag_META_INCLUDES (); # Supplies directories for src locations
-
- foreach $program (@programs) {
- $sources_changed{$program} = 0;
- $dependmocs{$program} = "";
- $important{$program} = "";
- tag_IDLFILES(); # Sorts out idl rules
- tag_NO_UNDEFINED();
- tag_CLOSURE();
- tag_NMCHECK();
- tag_UIFILES(); # Sorts out ui rules
- tag_KCFGFILES(); # Sorts out kcfg rules
- tag_METASOURCES (); # Sorts out the moc rules
- if ($sources_changed{$program}) {
- my $lookup = $program . '_SOURCES\s*=[ \t]*(.*)';
-
- if($program =~ /libkdeinit_(.*)/) {
- my $prog = $1;
- substituteLine($prog . '_SOURCES\s*=[ \t]*(.*)',
- "${prog}_SOURCES = ${prog}_dummy.$cxxsuffix\n" .
- "libkdeinit_${prog}_SOURCES = " . $sources{$program});
- $sources{$prog} = "${prog}_dummy.$cxxsuffix";
- }
- else {
- substituteLine($lookup, "$program\_SOURCES=" . $sources{$program});
- }
- }
- if ($important{$program}) {
- local %source_dict = ();
- for $source (split(/[\034\s]+/, $sources{$program})) {
- $source_dict{$source} = 1;
- }
- for $source (@cleanfiles) {
- $source_dict{$source} = 0;
- }
- for $source (keys %source_dict) {
- next if (!$source);
- if ($source_dict{$source}) {
- # sanity check
- if (! -f $source) {
- print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n";
- } else {
- $target_adds{"\$(srcdir)/$source"} .= $important{$program};
- }
- }
- }
- }
- }
- if ($cleanMoc) {
- # Always add dist clean tag
- # Add extra *.moc.cpp files created for USE_AUTOMOC because they
- # aren't included in the normal *.moc clean rules.
- appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources ";
- }
-
- tag_DIST() unless ($kdeopts{"noautodist"});
-
- if ($idl_output) {
- appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-idl ";
- }
-
- if ($ui_output) {
- appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-ui ";
- }
-
- if ($kcfg_output) {
- appendLines ("$cleantarget-kcfg:\n\t-rm -f $kcfg_output\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-kcfg ";
- }
-
- if ($closure_output) {
- appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-closures ";
- }
-
- if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) {
- $kdelang = '$(KDE_LANG)'
- } else {
- $kdelang = '';
- }
-
- tag_POFILES (); # language rules for po directory
- tag_DOCFILES (); # language rules for doc directories
- tag_LOCALINSTALL(); # add $(DESTDIR) before all kde_ dirs
- tag_ICON();
- tag_SUBDIRS();
-
- my $tmp = "force-reedit:\n";
- $tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n";
- appendLines($tmp);
-
- make_bcheck_target();
- make_meta_classes();
- tag_COMPILE_FIRST();
- tag_FINAL() if (!$kdeopts{"nofinal"});
-
- my $final_lines = "final:\n\t\$(MAKE) ";
- my $final_install_lines = "final-install:\n\t\$(MAKE) ";
- my $nofinal_lines = "no-final:\n\t\$(MAKE) ";
- my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) ";
-
- foreach $program (@programs) {
- my $lookup = $program . '_OBJECTS\s*=[ \t]*.*';
- my $new = "";
- my @list = split(/[\034\s]+/, $realObjs{$program});
- if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) {
- $new .= "$program\_final\_OBJECTS = " . $finalObjs{$program};
- $new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program};
- $new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)";
- $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)";
-
- $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
- $final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
- $nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" ";
- $nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" ";
- } else {
- $new = "$program\_OBJECTS = " . $realObjs{$program};
- }
- if($MakefileData =~ m/\n$lookup/) {
- substituteLine ($lookup, $new);
- }
- else {
- appendLines("$new\n");
- }
- }
- appendLines($final_lines . "all-am\n");
- appendLines($final_install_lines . "install-am\n");
- appendLines($nofinal_lines . "all-am\n");
- appendLines($nofinal_install_lines . "install-am\n");
-
- my $lookup = '(\@\S+\@)?DEP_FILES\s*=[ \t]*(.*)';
- if ($MakefileData =~ /\n$lookup/) {
- my $condition = $1;
- my $depfiles = $2;
- my $workfiles;
-
- if ($dep_finals) {
- # Add the conditions on every line, since
- # there may be line continuations in the list.
- $workfiles = "$dep_files $dep_finals $depfiles";
- $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g;
- $lines = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n";
- $workfiles = "$dep_files $depfiles";
- $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g;
- $lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles";
- } else {
- $workfiles = "$dep_files $depfiles";
- $workfiles =~ s/\034/\034$condition\t/g;
- $lines = $condition . "DEP_FILES = $workfiles";
- }
- substituteLine($lookup, $lines);
- }
-
- # new recursive targets
- $target_adds{ "nmcheck" } .= ""; # always create nmcheck target
- $target_adds{ "nmcheck-am" } .= "nmcheck";
- $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
- if ($MakefileData =~ /\n$lookup/) {
- substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive");
- }
-
- $cvs_lines = "kde-rpo-clean:\n";
- $cvs_lines .= "\t-rm -f *.rpo\n";
- appendLines($cvs_lines);
- $target_adds{"clean"} .= "kde-rpo-clean ";
-
- my %target_dels = ("install-data-am" => "");
-
- # some strange people like to do a install-exec, and expect that also
- # all modules are installed. automake doesn't know this, so we need to move
- # this here from install-data to install-exec.
- if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) {
-# $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES ";
-# don't use $target_adds here because we need to append the dependency, not
-# prepend it. Fixes #44342 , when a module depends on a lib in the same dir
-# and libtool needs it during relinking upon install (Simon)
- my $lookup = "install-exec-am:([^\n]*)";
- if($MakefileData =~ /\n$lookup\n/) {
- substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES");
- }
- $target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES ";
- $target_adds{"install-data-am"} .= " ";
- }
-
- my $lines = "";
-
- foreach $add (keys %target_adds) {
- my $lookup = quotemeta($add) . ':([^\n]*)';
- if ($MakefileData =~ /\n$lookup\n/) {
- my $newlines = $1;
- my $oldlines = $lookup;
- if (defined $target_dels{$add}) {
- foreach $del (split(' ', $target_dels{$add})) {
- $newlines =~ s/\s*$del\s*/ /g;
- }
- }
- substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines);
- } else {
- $lines .= "$add: " . $target_adds{$add} . "\n";
- }
- }
-
- appendLines($lines) if ($lines);
-
- $lines = join("\n", values %rule_adds);
- appendLines($lines) if ($lines);
-
- my $found = 1;
-
- while ($found) {
- if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) {
- my $stuff_before = $1;
- my $stuff_after = $2;
- my $lookup = quotemeta("$1\$(CXXFLAGS)$2");
- my $replacement = "$1\$(KCXXFLAGS)$2";
- $MakefileData =~ s/$lookup/$replacement/;
- $lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/;
- $replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after";
- next if ($stuff_before =~ /\$\(KDE_CXXFLAGS\)/ or $stuff_after =~ /\$\(KDE_CXXFLAGS\)/);
- substituteLine($lookup, $replacement);
- } else {
- $found = 0;
- }
- }
-
- if($foreign_libtool == 0) {
- $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))';
-
- if ($MakefileData =~ m/$lookup/ ) {
- $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
- }
-
- $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)';
- if ($MakefileData =~ m/$lookup/ ) {
- $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
- }
- }
-
- $MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g;
-
- $lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)';
- if ($MakefileData =~ m/\n$lookup\n/) {
- substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2");
- }
-
- # Always update the Makefile.in
- updateMakefile ();
- return;
-}
-
-#-----------------------------------------------------------------------------
-
-# Beware: This procedure is not complete. E.g. it also parses lines
-# containing a '=' in rules (for instance setting shell vars). For our
-# usage this us enough, though.
-sub read_variables ()
-{
- while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) {
- $varcontent{$1} = $2;
- }
-}
-
-# Check to see whether we should process this make file.
-# This is where we look for tags that we need to process.
-# A small amount of initialising on the tags is also done here.
-# And of course we open and/or create the needed make files.
-sub initialise ()
-{
- if (! -r "Makefile.am") {
- print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose);
- return 0;
- }
-
- # Checking for files to process...
-
- open (FILEIN, $makefile) || die "Can't open $makefileDir/$makefile: $!\n";
- # perl bug in 5.8.0: in utf8 mode it badly screws up
- binmode(FILEIN, ":bytes") if ($] >= 5.008);
- # Read the file
- # stat(FILEIN)[7] might look more elegant, but is slower as it
- # requires stat'ing the file
- seek(FILEIN, 0, 2);
- my $fsize = tell(FILEIN);
- seek(FILEIN, 0, 0);
- read FILEIN, $MakefileData, $fsize;
- close FILEIN;
- print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d);
-
- # Remove the line continuations, but keep them marked
- # Note: we lose the trailing spaces but that's ok.
- # Don't mangle line-leading spaces (usually tabs)
- # since they're important.
- $MakefileData =~ s/\\\s*\n/\034/g;
-
- # If we've processed the file before...
- restoreMakefile () if ($MakefileData =~ /$progId/);
-
- foreach $dir (@foreignfiles) {
- if (substr($makefileDir,0,length($dir)) eq $dir) {
- return 0;
- }
- }
-
- %kdeopts = ();
- $kdeopts{"foreign"} = 0;
- $kdeopts{"qtonly"} = 0;
- $kdeopts{"noautodist"} = 0;
- $kdeopts{"foreign-libtool"} = $foreign_libtool;
- $kdeopts{"nofinal"} = !$use_final; # default
-
- read_variables();
-
- if ($MakefileData =~ /\nKDE_OPTIONS\s*=[ \t]*([^\n]*)\n/) {
- my $kde_options_str = $1;
- local @kde_options = split(/[\034\s]+/, $kde_options_str);
- if (grep(/^foreign$/, @kde_options)) {
- push(@foreignfiles, $makefileDir . "/");
- return 0; # don't touch me
- }
- for $opt (@kde_options) {
- if (!defined $kdeopts{$opt}) {
- print STDERR "Warning: unknown option $opt in $printname\n";
- } else {
- $kdeopts{$opt} = 1;
- }
- }
- }
-
- # Look for the tags that mean we should process this file.
- $metasourceTags = 0;
- $metasourceTags++ while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g);
-
- my $pofileTag = 0;
- $pofileTag++ while ($MakefileData =~ /\nPOFILES\s*=/g);
- if ($pofileTag > 1)
- {
- print STDERR "Error: Only one POFILES tag allowed\n";
- $errorflag = 1;
- }
-
- while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) {
- my $suffixes_str = $1;
- my @list=split(' ', $suffixes_str);
- foreach $ext (@list) {
- if ($ext =~ /^\.$cppExt$/) {
- $cxxsuffix = $ext;
- $cxxsuffix =~ s/\.//g;
- print STDOUT "will use suffix $cxxsuffix\n" if ($verbose);
- last;
- }
- }
- }
-
- tag_KDEINIT();
-
- while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034 \t]*([^\n]*)\n/g) {
-
- my $program = $1;
- my $objs = $2; # safe them
-
- my $ocv = 0;
-
- my @objlist = split(/[\034\s]+/, $objs);
- foreach $obj (@objlist) {
- if ($obj =~ /(\S*)\$\((\S+)\)/ ) {
- my $pre = $1;
- my $variable = $2;
- if ($pre eq '' && exists($varcontent{$variable})) {
- my @addlist = split(/[\034\s]+/, $varcontent{$variable});
- push(@objlist, @addlist);
- } elsif ($variable !~ 'OBJEXT' && $variable !~ /am__objects_\d+/ ) {
- $ocv = 1;
- }
- }
- }
-
- next if ($ocv);
- next if ($program =~ /^am_libkdeinit_/);
-
- $program =~ s/^am_// if ($program =~ /^am_/);
-
- my $sourceprogram = $program;
- $sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/);
-
- print STDOUT "found program $program\n" if ($verbose);
- push(@programs, $program);
-
- $realObjs{$program} = $objs;
-
- if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=[ \t]*(.*)\n/) {
- $sources{$program} = $1;
- }
- else {
- $sources{$program} = "";
- print STDERR "found program with no _SOURCES: $program\n";
- }
-
- my $realprogram = $program;
- $realprogram =~ s/_/./g; # unmask to regexp
- if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) {
- $realname{$program} = $1;
- } else {
- # not standard Makefile - nothing to worry about
- $realname{$program} = "";
- }
- }
-
- my $lookup = 'DEPDIR\s*=.*';
- if ($MakefileData !~ /\n$lookup/) {
- $lookup = 'bindir\s*=[ \t]*.*';
- substituteLine($lookup, "DEPDIR = .deps\n$1") if ($MakefileData =~ /\n($lookup)/);
- }
-
- my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES');
- foreach $mark (@marks) {
- while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
- my $clean_str = $2;
- foreach $file (split('[\034\s]+', $clean_str)) {
- $file =~ s/\.\///;
- push(@cleanfiles, $file);
- }
- }
- }
-
- my $localTag = 0;
- $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/);
-
- return (!$errorflag);
-}
-
-#-----------------------------------------------------------------------------
-
-# Gets the list of user defined directories - relative to $srcdir - where
-# header files could be located.
-sub tag_META_INCLUDES ()
-{
- my $lookup = '[^=\n]*META_INCLUDES\s*=[ \t]*(.*)';
- return 1 if ($MakefileData !~ /($lookup)\n/);
- print STDOUT "META_INCLUDE processing <$1>\n" if ($verbose);
-
- my $headerStr = $2;
- removeLine ($lookup, $1);
-
- my @headerlist = split(/[\034\s]+/, $headerStr);
-
- foreach $dir (@headerlist)
- {
- $dir =~ s#\$\(srcdir\)#.#;
- if (! -d $dir)
- {
- print STDERR "Warning: $dir can't be found. ",
- "Must be a relative path to \$(srcdir)\n";
- }
- else
- {
- push (@headerdirs, $dir);
- }
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_FINAL()
-{
- my @final_names = ();
-
- foreach $program (@programs) {
-
- if ($sources{$program} =~ /\(/) {
- print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose);
- next;
- }
-
- my $mocs = ""; # Moc files (in this program)
- my $moc_cpp_added = 0; # If we added some .moc.cpp files, due to
- # no other .cpp file including the .moc one.
-
- my @progsources = split(/[\034\s]+/, $sources{$program});
- my %shash = ();
- @shash{@progsources} = 1; # we are only interested in the existence
- my %sourcelist = ();
- my %extradeps = ();
-
- foreach $source (@progsources) {
- my $suffix = $source;
- $suffix =~ s/^.*\.([^\.]+)$/$1/;
-
- $sourcelist{$suffix} .= "$source ";
- }
- foreach my $mocFile (keys (%globalmocs))
- {
- my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
- if (defined ($cppFile)) {
- $mocs .= " $mocFile.moc" if exists $shash{$cppFile};
- } else {
- $sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix ";
- $moc_cpp_added = 1;
- }
- }
-
- # scan for extra given dependencies and add them to our target
- while ($MakefileData =~ /\n\s*(\S+)\.(?:lo|o)\s*:([^\n]*)/g) {
- $extradeps{$1} = $2;
- }
-
- foreach $suffix (keys %sourcelist) {
- # See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions)
- my $suffix_is_cxx = 0;
- if($suffix =~ /($cppExt)$/) {
- $cxxsuffix = $1;
- $suffix_is_cxx = 1;
- }
-
- my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added;
-
- my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix});
-
- if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) {
-
- # we support IDL on our own
- if ($suffix eq "skel" || $suffix =~ /^stub/
- || $suffix =~ /^signals/ # obsolete, remove in KDE-4
- || $suffix eq "h" || $suffix eq "ui"
- || $suffix eq "kcfgc" ) {
- next;
- }
-
- foreach $file (@sourcelist) {
- $file =~ s/\Q$suffix\E$//;
-
- $finalObjs{$program} .= $file;
- if ($program =~ /_la$/) {
- $finalObjs{$program} .= "lo ";
- } else {
- $finalObjs{$program} .= "o ";
- }
- }
- next; # suffix
- }
-
- my $source_deps = "";
- foreach $source (@sourcelist) {
- if (-f $source) {
- $source_deps .= " \$(srcdir)/$source";
- } else {
- $source_deps .= " $source";
- }
- my $plainsource = $source;
- $plainsource =~ s/\.$cppExt$//;
- $source_deps .= " " . $extradeps{$plainsource} if (exists($extradeps{$plainsource}));
- }
-
- $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs) . "\n";
- $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n";
- $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n";
- $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n";
- $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n";
- $handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n";
- $handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n";
- $handling .= "\tdone; \\\n";
- $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n";
- $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n";
-
- appendLines($handling);
-
- push(@final_names, "$program.all_$suffix.$suffix");
- my $finalObj = "$program.all_$suffix.";
- if ($program =~ /_la$/) {
- $finalObj .= "lo";
- } else {
- $finalObj .= "o";
- }
- $finalObjs{$program} .= $finalObj . " ";
- }
- }
-
- if (!$kdeopts{"nofinal"} && @final_names >= 1) {
- # add clean-final target
- my $lines = "$cleantarget-final:\n";
- $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names);
- appendLines($lines);
- $target_adds{"$cleantarget-am"} .= "$cleantarget-final ";
-
- foreach $finalfile (@final_names) {
- $finalfile =~ s/\.[^.]*$/.P/;
- $dep_finals .= " \$(DEPDIR)/$finalfile";
- }
- }
-}
-
-sub tag_KDEINIT()
-{
- my @progs = ();
- my $ltlibs = "";
- my $lookup = 'kdeinit_LTLIBRARIES\s*=[ \t]*(.*)';
-
- if ($MakefileData =~ m/\n$lookup/) {
- @kdeinits = split(/[\034\s]+/, $1);
- my $lines = "";
- foreach my $kdeinit (@kdeinits) {
- if ($kdeinit =~ m/\.la$/) {
- $kdeinit =~ s/\.la$//;
- push(@progs, $kdeinit);
-
- $lines .= "\n${kdeinit}.la.$cxxsuffix:\n";
- $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}.la.$cxxsuffix; \\\n";
- $lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n";
-
- $lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n";
- $lines .= "\techo '#include <kdemacros.h>' > ${kdeinit}_dummy.$cxxsuffix; \\\n";
- $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' >> ${kdeinit}_dummy.$cxxsuffix; \\\n";
- $lines .= "\techo 'extern \"C\" KDE_EXPORT int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n";
-
- push(@cleanfiles, "${kdeinit}.la.$cxxsuffix");
- push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix");
-
- # add dependency
- $dep_files .= " \$(DEPDIR)/${kdeinit}.la.Po" if($dep_files !~/${kdeinit}.la.Po/ );
- $dep_files .= " \$(DEPDIR)/${kdeinit}_dummy.Plo" if($dep_files !~/${kdeinit}_dummy.Plo/ );
-
- # make library
- $lookup = $kdeinit . '_la_LIBADD\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $libadd = $1;
- substituteLine($lookup, "${kdeinit}_la_LIBADD = libkdeinit_${kdeinit}.la");
- appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n");
- }
- appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = -no-undefined -avoid-version \$(all_libraries)\n");
-
- # add library dependencies
- $lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $libdeps = $1;
- substituteLine($lookup, "${kdeinit}_la_DEPENDENCIES = libkdeinit_${kdeinit}.la");
- appendLines("libkdeinit_${kdeinit}_la_DEPENDENCIES = $libdeps\n");
- }
-
- # make library objects
- $lookup = "am_${kdeinit}_la_OBJECTS" . '\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $libobjects = $1;
- substituteLine($lookup, "am_${kdeinit}_la_OBJECTS = ${kdeinit}_dummy.lo");
- appendLines("am_libkdeinit_${kdeinit}_la_OBJECTS = $libobjects\n");
- my $prog = "libkdeinit_${kdeinit}_la";
- push(@programs, $prog);
- $realObjs{$prog} = $libobjects;
- $realname{$prog} = "libkdeinit_${kdeinit}.la";
- }
- $target_adds{"libkdeinit_${kdeinit}.la"} = "\$(libkdeinit_${kdeinit}_la_OBJECTS) \$(libkdeinit_${kdeinit}_la_DEPENDENCIES)\n" .
- "\t\$(CXXLINK) -rpath \$(libdir) \$(libkdeinit_${kdeinit}_la_LDFLAGS) ".
- "\$(libkdeinit_${kdeinit}_la_OBJECTS) " .
- "\$(libkdeinit_${kdeinit}_la_LIBADD) " .
- "\$(LIBS)\n";
-
- # make libkdeinit sources
- $lookup = $kdeinit . '_la_SOURCES\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $srces = $1;
- $sources_changed{"libkdeinit_${kdeinit}_la"} = 1;
- $sources{"libkdeinit_${kdeinit}_la"} = $srces;
- }
-
- # make libkdeinit metasources
- $lookup = $kdeinit . '_la_METASOURCES\s*=[ \t]*(.*)';
- substituteLine($lookup, "libkdeinit_${kdeinit}_la_METASOURCES = $1")
- if($MakefileData =~ m/\n$lookup/);
-
-=cut
- # make binary sources
- $lookup = $kdeinit. '_SOURCES\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- substituteLine($lookup, "${kdeinit}_SOURCES = ${kdeinit}.la.$cxxsuffix");
- $lookup = 'SOURCES\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $srces = $1;
- $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
- $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
- substituteLine($lookup, "SOURCES = $srces");
- }
- $lookup = 'DIST_SOURCES\s*=[ \t](.*)';
- if($MakefileData =~ m/\n$lookup/) {
- my $srces = $1;
- $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
- $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
- substituteLine($lookup, "DIST_SOURCES = $srces");
- }
- }
-
- # make binary objects / libs
- $lookup = $kdeinit . '_OBJECTS\s*=[ \t]*.*';
- if($MakefileData =~ m/\n$lookup/) {
- $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
- substituteLine("${kdeinit}_LDFLAGS\\s*=.*", "${kdeinit}_LDFLAGS = \$(all_libraries)");
- substituteLine("${kdeinit}_LDADD\\s*=.*", "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la");
- substituteLine("${kdeinit}_DEPENDENCIES\\s*=.*", "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la");
- }
-=cut
- # add binary
- push(@programs, $kdeinit);
- $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
- $realname{$kdeinit} = $kdeinit;
- $sources{$kdeinit} = "${kdeinit}.la.$cxxsuffix";
-
- $lines .= "${kdeinit}_LDFLAGS = \$(KDE_RPATH) -no-undefined \$(all_libraries)\n";
- $lines .= "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la\n";
- $lines .= "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la\n";
-
- $target_adds{"${kdeinit}\$(EXEEXT)"} =
- "\$(${kdeinit}_OBJECTS) \$(${kdeinit}_DEPENDENCIES)\n" .
- "\t\@rm -f ${kdeinit}\$(EXEEXT)\n" .
- "\t\$(CXXLINK) \$(${kdeinit}_LDFLAGS) \$(${kdeinit}_OBJECTS) \$(${kdeinit}_LDADD) \$(LIBS)\n";
-
- $ltlibs .= " libkdeinit_${kdeinit}.la";
- }
- }
- appendLines($lines);
-
- # add libkdeinit target
- $lookup = 'lib_LTLIBRARIES\s*=[ \t]*(.*)';
- if($MakefileData =~ m/\n$lookup/) {
- substituteLine($lookup, "lib_LTLIBRARIES = $1 $ltlibs");
- }
- else {
- print STDERR
- "Error: lib_LTLIBRARIES missing in $printname (required for kdeinit_LTLIBRARIES).\n";
- $errorflag = 1;
- }
- }
-
- if($#progs >= 0) {
- if($MakefileData !~ m/\nbin_PROGRAMS\s*=/) {
- print STDERR "Error: bin_PROGRAMS missing in $printname (required for kdeinit_LTLIBRARIES).\n";
- $errorflag = 1;
- }
- else {
- # add our new progs to SOURCES, DIST_SOURCES and bin_PROGRAMS
- my $progsources = "";
- my $progexes = "";
- foreach my $p (@progs) {
- $progsources .= "\$(${p}_SOURCES) ";
- $progexes .= "${p}\$(EXEEXT) ";
- }
- $lookup = 'SOURCES\s*=[ \t]*(.*)';
- if($MakefileData =~ /\n$lookup/) {
- substituteLine($lookup, "SOURCES = $1 $progsources");
- }
- $lookup = 'DIST_SOURCES\s*=[ \t]*(.*)';
- if($MakefileData =~ /\n$lookup/) {
- substituteLine($lookup, "DIST_SOURCES = $1 $progsources");
- }
- # bin_PROGRAMS is complicated, as it exists twice, so we do a little
- # magic trick here
- $lookup = 'PROGRAMS\s*=[ \t]*(.*)';
- if ($MakefileData =~ /\n$lookup/) {
- substituteLine($lookup, "bin_PROGRAMS += $progexes\nPROGRAMS = $1");
- }
- }
- }
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_COMPILE_FIRST()
-{
- foreach $program (@programs) {
- my $lookup = "$program" . '_COMPILE_FIRST\s*=[ \t]*(.*)';
- if ($MakefileData =~ m/\n$lookup\n/) {
- my $compilefirst_str = $1;
- my @compilefirst = split(/[\034\s]+/, $compilefirst_str);
- my @progsources = split(/[\034\s]+/, $sources{$program});
- my %donesources = ();
- foreach $source (@progsources) {
- my @deps = ();
- my $sdeps = "";
- if (-f $source) {
- $sdeps = "\$(srcdir)/$source";
- } else {
- $sdeps = "$source";
- }
- foreach $depend (@compilefirst) {
- next if ($source eq $depend);
- # avoid cyclic dependencies
- next if defined($donesources{$depend});
- push @deps, $depend;
- }
- $target_adds{$sdeps} .= join(' ', @deps) . ' ' if (@deps);
- $donesources{$source} = 1;
- }
- }
- }
-}
-
-#-----------------------------------------------------------------------------
-
-
-# Organises the list of headers that we'll use to produce moc files
-# from.
-sub tag_METASOURCES ()
-{
- local @newObs = (); # here we add to create object files
- local @depend = (); # here we add to create moc files
- local $mocExt = ".moc";
- local %mocFiles = ();
-
- my $line = "";
- my $postEqual = "";
-
- my $lookup;
- my $found = "";
- if ($metasourceTags > 1) {
- $lookup = $program . '_METASOURCES\s*=\s*(.*)';
- return 1 if ($MakefileData !~ /\n($lookup)\n/);
- $found = $1;
- } else {
- $lookup = $program . '_METASOURCES\s*=\s*(.*)';
- if ($MakefileData !~ /\n($lookup)\n/) {
- $lookup = 'METASOURCES\s*=\s*(.*)';
- return 1 if ($MakefileData !~ /\n($lookup)\n/);
- $found = $1;
- $metasourceTags = 0; # we can use the general target only once
- } else {
- $found = $1;
- }
- }
- print STDOUT "METASOURCE processing <$found>)\n" if ($verbose);
-
- $postEqual = $found;
- $postEqual =~ s/[^=]*=//;
-
- removeLine ($lookup, $found);
-
- # Always find the header files that could be used to "moc"
- return 1 if (findMocCandidates ());
-
- if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/)
- {
- print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+);
- $mocExt = ".moc.$cxxsuffix";
- $haveAutomocTag = 1;
- }
- else
- {
- # Not automoc so read the list of files supplied which
- # should be .moc files.
-
- $postEqual =~ tr/\034/ /;
-
- # prune out extra headers - This also checks to make sure that
- # the list is valid.
- pruneMocCandidates ($postEqual);
- }
-
- checkMocCandidates ();
-
- if (@newObs) {
- my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o ";
- $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext;
- $dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix";
- foreach $file (@newObs) {
- $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/);
- }
- }
- if (@depend) {
- $dependmocs{$program} .= " ";
- $dependmocs{$program} .= join('.moc ', @depend) . ".moc";
- $dependmocs{$program} .= " ";
- }
- addMocRules ();
- @globalmocs{keys %mocFiles}=values %mocFiles;
-}
-
-#-----------------------------------------------------------------------------
-
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_AUTOMAKE ()
-{
- my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)';
- return 1 if ($MakefileData !~ /\n($lookup)\n/);
- print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose);
-
- my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname";
-
- # automake 1.8.x adds another automake call. *sigh*
- $newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/;
- substituteLine ($lookup, $newLine);
- $automkCall = $1;
-
- $lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)';
- if ($MakefileData =~ /\n($lookup)\n/) {
- $newLine = "\tcd \$(srcdir) && rm -f configure\n";
- $newLine .= "\tcd \$(top_srcdir) && \$(MAKE) -f admin/Makefile.common configure";
- substituteLine ($lookup, $newLine);
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub handle_TOPLEVEL()
-{
- my $pofiles = "";
- my @restfiles = ();
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if (-d $entry);
-
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/);
-
- if ($entry =~ /\.po$/) {
- next;
- }
- push(@restfiles, $entry);
- }
- closedir (THISDIR);
-
- if (@restfiles) {
- $target_adds{"install-data-am"} .= "install-nls-files ";
- $lines = "install-nls-files:\n";
- $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n";
- for $file (@restfiles) {
- $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
- }
- $target_adds{"uninstall"} .= "uninstall-nls-files ";
- $lines .= "uninstall-nls-files:\n";
- for $file (@restfiles) {
- $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
- }
- appendLines($lines);
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_SUBDIRS ()
-{
- if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) {
- return 1;
- }
-
- my $subdirs = ".";
-
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./);
- if (-d $entry && -f $entry . "/Makefile.am") {
- $subdirs .= " $entry";
- next;
- }
- }
- closedir (THISDIR);
-
- substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs");
- return 0;
-}
-
-sub tag_IDLFILES ()
-{
- my @psources = split(/[\034\s]+/, $sources{$program});
- my $dep_lines = "";
- my @cppFiles = ();
-
- foreach $source (@psources) {
- my $skel = ($source =~ m/\.skel$/);
- my $stub = ($source =~ m/\.stub$/);
- my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4
-
- if ($stub || $skel || $signals) {
-
- my $qs = quotemeta($source);
- $sources{$program} =~ s/$qs//;
- $sources_changed{$program} = 1;
-
- $source =~ s/\.(stub|skel|signals)$//;
- my $sourcename;
-
- if ($skel) {
- $sourcename = "$source\_skel";
- } elsif ($stub) {
- $sourcename = "$source\_stub";
- } else {
- $sourcename = "$source\_signals";
- }
-
- my $sourcedir = '';
- if (-f "$makefileDir/$source.h") {
- $sourcedir = '$(srcdir)/';
- } else {
- if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) {
- $sourcedir = $1;
- $sourcedir .= "/" if ($sourcedir !~ /\/$/);
- }
- }
-
- if ($allidls !~ /$source\_kidl/) {
-
- $use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/);
- $dcopidl = $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)";
-
- $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n";
- $dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n";
-
- $allidls .= $source . "_kidl ";
- }
-
- if ($allidls !~ /$sourcename/) {
-
- $dep_lines_tmp = "";
-
- if ($skel) {
- $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n";
- $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n";
- } elsif ($stub) {
- $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n";
- } else { # signals - obsolete, remove in KDE 4
- $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n";
- }
-
- if ($stub || $signals) {
- $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h ";
- $dep_lines .= "$sourcename.h: $source.kidl\n";
- $dep_lines .= $dep_lines_tmp;
- }
-
- $allidls .= $sourcename . " ";
- }
-
- $idlfiles{$program} .= $sourcename . " ";
-
- if ($program =~ /_la$/) {
- $realObjs{$program} .= " $sourcename.lo";
- } else {
- $realObjs{$program} .= " $sourcename.\$(OBJEXT)";
- }
- $sources{$program} .= " $sourcename.$cxxsuffix";
- $sources_changed{$program} = 1;
- $important{$program} .= "$sourcename.h " if (!$skel);
- $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl ";
- push(@cleanfiles, "$sourcename.$cxxsuffix");
- push(@cleanfiles, "$sourcename.h");
- push(@cleanfiles, "$sourcename.kidl");
- $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/);
- }
- }
- if ($dep_lines) {
- appendLines($dep_lines);
- }
-
- if (0) {
- my $lookup = "($program)";
- $lookup .= '(|\$\(EXEEXT\))';
- $lookup =~ s/\_/./g;
- $lookup .= ":(.*..$program\_OBJECTS..*)";
- # $lookup = quotemeta($lookup);
- if ($MakefileData =~ /\n$lookup\n/) {
-
- my $line = "$1$2: ";
- foreach $file (split(' ', $idlfiles{$program})) {
- $line .= "$file.$cxxsuffix ";
- }
- $line .= $3;
- substituteLine($lookup, $line);
- } else {
- print STDERR "no built dependency found $lookup\n";
- }
- }
-}
-
-sub tag_UIFILES ()
-{
- my @psources = split(/[\034\s]+/, $sources{$program});
- my @depFiles = ();
-
- foreach $source (@psources) {
-
- if ($source =~ m/\.ui$/) {
-
- print STDERR "adding UI file $source\n" if ($verbose);
-
- my $qs = quotemeta($source);
- $sources{$program} =~ s/$qs//;
- $sources_changed{$program} = 1;
-
- $source =~ s/\.ui$//;
-
- my $sourcedir = '';
- if (-f "$makefileDir/$source.ui") {
- $sourcedir = '$(srcdir)/';
- }
-
- if (!$uiFiles{$source}) {
-
- my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n";
- $dep_lines .= "\trm -f $source.$cxxsuffix\n";
- if (!$kdeopts{"qtonly"}) {
- $dep_lines .= "\techo '#include <kdialog.h>' > $source.$cxxsuffix\n";
- $dep_lines .= "\techo '#include <klocale.h>' >> $source.$cxxsuffix\n";
- my ($mangled_source) = $source;
- $mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage
- $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n";
- $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n";
- $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n";
- } else {
- $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n";
- }
- $dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n";
- $dep_lines .= "$source.h: $sourcedir$source.ui\n";
- $dep_lines .= "\trm -rf $source.h;\n";
- if (!$kdeopts{"qtonly"}) {
- $dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g\" >> $source.h ;\n";
- } else {
- $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n";
- }
- $dep_lines .= "$source.moc: $source.h\n";
- $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n";
-
- $rule_adds{"$source.$cxxsuffix"} = $dep_lines;
-
- $uiFiles{$source} = 1;
- $dependmocs{$program} .= " $source.moc";
- $globalmocs{$source} = "\035$source.h\035$source.cpp";
- }
-
- if ($program =~ /_la$/) {
- $realObjs{$program} .= " $source.lo";
- } else {
- $realObjs{$program} .= " $source.\$(OBJEXT)";
- }
- $sources{$program} .= " $source.$cxxsuffix";
- $sources_changed{$program} = 1;
- $important{$program} .= "$source.h ";
- $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc ";
- push(@cleanfiles, "$source.$cxxsuffix");
- push(@cleanfiles, "$source.h");
- push(@cleanfiles, "$source.moc");
- $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
- }
- }
-}
-
-sub tag_KCFGFILES ()
-{
- my @psources = split(/[\034\s]+/, $sources{$program});
- my @depFiles = ();
-
- foreach $source (@psources) {
-
- if ($source =~ m/\.kcfgc$/) {
-
- print STDERR "adding KCFG file $source\n" if ($verbose);
-
- my $qs = quotemeta($source);
- $sources{$program} =~ s/$qs//;
- $sources_changed{$program} = 1;
-
- $source =~ s/\.kcfgc$//;
-
- my $sourcedir = '';
- if (-f "$makefileDir/$source.kcfgc") {
- $sourcedir = '$(srcdir)/';
- }
-
- if (!$kcfgFiles{$source}) {
- $kcfg = "$program.kcfg";
- findKcfgFile("$source.kcfgc");
-
- my $fixsuffix = "";
- $fixsuffix = "else mv $source.cpp $source.$cxxsuffix ; "
- unless "cpp" eq $cxxsuffix;
-
- my $dep_lines = "$source.$cxxsuffix: $source.h\n";
- $dep_lines .= "$source.h: $sourcedir$kcfg $sourcedir$source.kcfgc \$(KCFG_DEPENDENCIES)\n";
- $dep_lines .= "\t\$(KCONFIG_COMPILER) $sourcedir$kcfg $sourcedir$source.kcfgc; ret=\$\$?; \\\n";
- $dep_lines .= "\tif test \"\$\$ret\" != 0; then rm -f $source.h ; exit \$\$ret ; $fixsuffix fi\n\n";
-
- $rule_adds{"$source.$cxxsuffix"} = $dep_lines;
-
- $kcfgFiles{$source} = 1;
- }
-
- if ($program =~ /_la$/) {
- $realObjs{$program} .= " $source.lo";
- } else {
- $realObjs{$program} .= " $source.\$(OBJEXT)";
- }
- $sources{$program} .= " $source.$cxxsuffix";
- $sources_changed{$program} = 1;
- $important{$program} .= "$source.h ";
- $kcfg_output .= "\\\n\t$source.$cxxsuffix $source.h ";
- push(@cleanfiles, "$source.$cxxsuffix");
- push(@cleanfiles, "$source.h");
- $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
- }
- }
-}
-
-sub tag_ICON()
-{
- my $lookup = '([^\s]*)_ICON\s*=[ \t]*(.*)';
- my $install = "";
- my $uninstall = "";
-
- while ($MakefileData =~ /\n$lookup/g) {
- my $destdir;
- if ($1 eq "KDE") {
- $destdir = "kde_icondir";
- } else {
- $destdir = $1 . "dir";
- }
- my $iconauto = ($2 =~ /AUTO\s*$/);
- my @appnames = ();
- if ( ! $iconauto ) {
- my $appicon_str = $2;
- my @_appnames = split(" ", $appicon_str);
- print STDOUT "KDE_ICON processing <@_appnames>\n" if ($verbose);
- foreach $appname (@_appnames) {
- push(@appnames, quotemeta($appname));
- }
- } else {
- print STDOUT "KDE_ICON processing <AUTO>\n" if ($verbose);
- }
-
- my @files = ();
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
- next if (! -f $entry);
- if ( $iconauto )
- {
- push(@files, $entry)
- if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/);
- } else {
- foreach $appname (@appnames) {
- push(@files, $entry)
- if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/);
- }
- }
- }
- closedir (THISDIR);
-
- my %directories = ();
-
- foreach $file (@files) {
- my $newfile = $file;
- my $prefix = $file;
- $prefix =~ s/\.(png|xpm|mng|svg|svgz)$//;
- my $appname = $prefix;
- $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
- $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
- $appname = quotemeta($appname);
- $prefix =~ s/$appname$//;
- $prefix =~ s/-$//;
-
- $prefix = 'lo16-app' if ($prefix eq 'mini');
- $prefix = 'lo32-app' if ($prefix eq 'lo');
- $prefix = 'hi48-app' if ($prefix eq 'large');
- $prefix .= '-app' if ($prefix =~ m/^...$/);
-
- my $type = $prefix;
- $type =~ s/^.*-([^-]+)$/$1/;
- $prefix =~ s/^(.*)-[^-]+$/$1/;
-
- my %type_hash =
- (
- 'action' => 'actions',
- 'app' => 'apps',
- 'device' => 'devices',
- 'filesys' => 'filesystems',
- 'mime' => 'mimetypes'
- );
-
- if (! defined $type_hash{$type} ) {
- print STDERR "unknown icon type $type in $printname ($file)\n";
- next;
- }
-
- my %dir_hash =
- (
- 'los' => 'locolor/16x16',
- 'lom' => 'locolor/32x32',
- 'him' => 'hicolor/32x32',
- 'hil' => 'hicolor/48x48',
- 'lo16' => 'locolor/16x16',
- 'lo22' => 'locolor/22x22',
- 'lo32' => 'locolor/32x32',
- 'hi16' => 'hicolor/16x16',
- 'hi22' => 'hicolor/22x22',
- 'hi32' => 'hicolor/32x32',
- 'hi48' => 'hicolor/48x48',
- 'hi64' => 'hicolor/64x64',
- 'hi128' => 'hicolor/128x128',
- 'hisc' => 'hicolor/scalable',
- 'cr16' => 'crystalsvg/16x16',
- 'cr22' => 'crystalsvg/22x22',
- 'cr32' => 'crystalsvg/32x32',
- 'cr48' => 'crystalsvg/48x48',
- 'cr64' => 'crystalsvg/64x64',
- 'cr128' => 'crystalsvg/128x128',
- 'crsc' => 'crystalsvg/scalable'
- );
-
- $newfile =~ s@.*-($appname\.(png|xpm|mng|svgz|svg?))@$1@;
-
- if (! defined $dir_hash{$prefix}) {
- print STDERR "unknown icon prefix $prefix in $printname\n";
- next;
- }
-
- my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type};
- if ($newfile =~ /-[^\.]/) {
- my $tmp = $newfile;
- $tmp =~ s/^([^-]+)-.*$/$1/;
- $dir = $dir . "/" . $tmp;
- $newfile =~ s/^[^-]+-//;
- }
-
- if (!defined $directories{$dir}) {
- $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n";
- $directories{$dir} = 1;
- }
-
- $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
- $uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
-
- }
- }
-
- if (length($install)) {
- $target_adds{"install-data-am"} .= "install-kde-icons ";
- $target_adds{"uninstall-am"} .= "uninstall-kde-icons ";
- appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall);
- }
-}
-
-sub handle_POFILES($$)
-{
- my @pofiles = split(" ", $_[0]);
- my $lang = $_[1];
-
- # Build rules for creating the gmo files
- my $tmp = "";
- my $allgmofiles = "";
- my $pofileLine = "POFILES =";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- $tmp .= "$1.gmo: $pofile\n";
- $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n";
- $tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n";
- $allgmofiles .= " $1.gmo";
- $pofileLine .= " $1.po";
- }
- appendLines ($tmp);
- my $lookup = 'POFILES\s*=([^\n]*)';
- if ($MakefileData !~ /\n$lookup/) {
- appendLines("$pofileLine\nGMOFILES =$allgmofiles");
- } else {
- substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles");
- }
-
- if ($allgmofiles) {
-
- # Add the "clean" rule so that the maintainer-clean does something
- appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n");
-
- $target_adds{"maintainer-clean"} .= "clean-nls ";
-
- $lookup = 'DISTFILES\s*=[ \t]*(.*)';
- if ($MakefileData =~ /\n$lookup/) {
- $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1";
- substituteLine ($lookup, $tmp);
- }
- }
-
- $target_adds{"install-data-am"} .= "install-nls ";
-
- $tmp = "install-nls:\n";
- if ($lang) {
- $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n";
- }
- $tmp .= "\t\@for base in ";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- $tmp .= "$1 ";
- }
-
- $tmp .= "; do \\\n";
- if ($lang) {
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
- $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
- $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
- $tmp .= "\t fi ;\\\n";
- } else {
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
- $tmp .= "\t \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n";
- $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
- $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
- $tmp .= "\t fi ;\\\n";
- }
- $tmp .= "\tdone\n\n";
- appendLines ($tmp);
-
- $target_adds{"uninstall"} .= "uninstall-nls ";
-
- $tmp = "uninstall-nls:\n";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- if ($lang) {
- $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n";
- } else {
- $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n";
- }
- }
- appendLines($tmp);
-
- $target_adds{"all"} .= "all-nls ";
-
- $tmp = "all-nls: \$(GMOFILES)\n";
-
- appendLines($tmp);
-
- $target_adds{"distdir"} .= "distdir-nls ";
-
- $tmp = "distdir-nls:\$(GMOFILES)\n";
- $tmp .= "\tfor file in \$(POFILES); do \\\n";
- $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n";
- $tmp .= "\tdone\n";
- $tmp .= "\tfor file in \$(GMOFILES); do \\\n";
- $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n";
- $tmp .= "\tdone\n";
-
- appendLines ($tmp);
-
- if (!$lang) {
- appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n");
- }
-
-}
-
-#-----------------------------------------------------------------------------
-
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_POFILES ()
-{
- my $lookup = 'POFILES\s*=([^\n]*)';
- return 1 if ($MakefileData !~ /\n$lookup/);
- print STDOUT "POFILES processing <$1>\n" if ($verbose);
-
- my $tmp = $1;
-
- # make sure these are all gone.
- if ($MakefileData =~ /\n\.po\.gmo:\n/)
- {
- print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n";
- return 1;
- }
-
- # Either find the pofiles in the directory (AUTO) or use
- # only the specified po files.
- my $pofiles = "";
- if ($tmp =~ /^\s*AUTO\s*$/)
- {
- opendir (THISDIR, ".");
- $pofiles = join(" ", grep(/\.po$/, readdir(THISDIR)));
- closedir (THISDIR);
- print STDOUT "pofiles found = $pofiles\n" if ($verbose);
- if (-f "charset" && -f "kdelibs/kdelibs.po") {
- handle_TOPLEVEL();
- }
- }
- else
- {
- $tmp =~ s/\034/ /g;
- $pofiles = $tmp;
- }
- return 1 if (!$pofiles); # Nothing to do
-
- handle_POFILES($pofiles, $kdelang);
-
- return 0;
-}
-
-sub helper_LOCALINSTALL($)
-{
- my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t";
- my $copy = $MakefileData;
- $copy =~ s/\n/\035/g;
- if ($copy =~ /($lookup.*)$/) {
-
- $install = $1;
- $install =~ s/\035$_[0] *:[^\035]*\035//;
- my $emptyline = 0;
- while (! $emptyline ) {
- if ($install =~ /([^\035]*)\035(.*)/) {
- local $line = $1;
- $install = $2;
- if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) {
- $emptyline = 1;
- } else {
- replaceDestDir($line);
- }
- } else {
- $emptyline = 1;
- }
- }
- }
-
-}
-
-sub tag_LOCALINSTALL ()
-{
- helper_LOCALINSTALL('install-exec-local');
- helper_LOCALINSTALL('install-data-local');
- helper_LOCALINSTALL('uninstall-local');
-
- return 0;
-}
-
-sub replaceDestDir($) {
- local $line = $_[0];
-
- if ( $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/
- || $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/
- || $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/)
- {
- $line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/);
- }
-
- if ($line ne $_[0]) {
- $_[0] = quotemeta $_[0];
- substituteLine($_[0], $line);
- }
-}
-
-#---------------------------------------------------------------------------
-# libtool is very hard to persuade it could use -Wl,--no-undefined for making
-# -no-undefined actually work
-# append $(KDE_NO_UNFINED) after every -no-undefined in LDFLAGS
-# this may go away if libtool ever does this on its own
-sub tag_NO_UNDEFINED () {
- return if ($program !~ /_la$/);
-
- my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
- $MakefileData =~ m/$lookup/;
- return if (!defined($1));
- return if ($1 !~ /CXXLINK/);
-
- if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ ) {
- return;
- }
-
- $lookup = $program . '\_LDFLAGS(\s*)=(.*)-no-undefined(.*)';
- if ($MakefileData =~ /\n$lookup\n/) {
- my $replace = $program . "\_LDFLAGS$1=$2-no-undefined \$(KDE_NO_UNDEFINED)$3";
- substituteLine($lookup, $replace);
- }
-}
-
-sub tag_CLOSURE () {
- return if ($program !~ /_la$/);
-
- my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
- $MakefileData =~ m/$lookup/;
- return if (!defined($1));
- return if ($1 !~ /CXXLINK/);
-
- if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ &&
- $MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) {
- print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun);
- return;
- }
-
- my $closure = $realname{$program} . ".closure";
- my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n";
- $lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n";
- $lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n";
- $lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n";
- $lines .= "\t\@rm -f $program\_closure.* $closure\n";
- $lines .= "\t\@echo \"timestamp\" > $closure\n";
- $lines .= "\n";
- appendLines($lines);
- $lookup = $realname{$program} . ": (.*)";
- if ($MakefileData =~ /\n$lookup\n/) {
- $lines = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1";
- $lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1";
- substituteLine($lookup, $lines);
- }
- $closure_output .= " $closure";
-}
-
-sub tag_NMCHECK () {
- return if ($program !~ /_la$/);
- my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
- $MakefileData =~ m/$lookup/;
- my $linkcmd = $1;
- return if (!defined($1));
- return if ($linkcmd !~ /CXXLINK/ && $linkcmd !~ /LINK/);
-
- $lookup = $program . '_NMCHECK\s*=([^\n]*)';
- if( $MakefileData !~ m/\n$lookup\n/ ) {
- return;
- }
- my $allowed = $1;
- $allowed =~ s/^ *//;
- $lookup = $program . '_NMCHECKWEAK\s*=([^\n]*)';
- my $weak = "";
- my $is_weak = 0;
- if( $MakefileData =~ m/\n$lookup\n/ ) {
- $weak = $1;
- $is_weak = 1;
- }
- $weak =~ s/^ *//;
-
- if( $is_weak )
- {
- $weak = '--allowweak=\'' . $weak . '\' ';
- }
- my $nmline = "\@KDE_USE_NMCHECK_TRUE@\t\@\$(MAKE) \$(AM_MAKEFLAGS) nmcheck_$realname{$program} || ( rm -f $realname{$program}; exit 1 )";
- $lookup = '(\t\$\(CXXLINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
- if( $MakefileData =~ /\n$lookup\n/ ) {
- my $oldstuff = $1;
- substituteLine( $lookup, $oldstuff . "\n" . $nmline );
- }
- $lookup = '(\t\$\(LINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
- if( $MakefileData =~ /\n$lookup\n/ ) {
- my $oldstuff = $1;
- substituteLine( $lookup, $oldstuff . "\n" . $nmline );
- }
- $nmline = "\@\$(top_srcdir)/admin/nmcheck $realname{$program} \'$allowed\' $weak";
- appendLines( "\nnmcheck_$realname{$program}: $realname{$program} \n\t$nmline\n" );
- $target_adds{ "nmcheck" } .= "nmcheck_$realname{$program} ";
-}
-
-sub tag_DIST () {
- my %foundfiles = ();
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
- next if (! -f $entry);
- next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/);
- next if ($entry =~ /\.all_$cppExt\.$cppExt$/);
- $foundfiles{$entry} = 1;
- }
- closedir (THISDIR);
-
- # doing this for MAINTAINERCLEANFILES would be wrong
- my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS');
- foreach $mark (@marks) {
- while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
- my $cleanfiles_str = $2;
- foreach $file (split('[\034\s]+', $cleanfiles_str)) {
- $file =~ s/\.\///;
- $foundfiles{$file} = 0 if (defined $foundfiles{$file});
- }
- }
- }
- my @files = ("Makefile", "config.cache", "config.log", "stamp-h",
- "stamp-h1", "stamp-h1", "config.h", "Makefile",
- "config.status", "config.h", "libtool", "core" );
- foreach $file (@files) {
- $foundfiles{$file} = 0 if (defined $foundfiles{$file});
- }
-
- my $KDE_DIST = "";
- foreach $file (keys %foundfiles) {
- if ($foundfiles{$file} == 1) {
- $KDE_DIST .= "$file ";
- }
- }
- if ($KDE_DIST) {
- print "KDE_DIST $printname $KDE_DIST\n" if ($verbose);
-
- my $lookup = 'DISTFILES\s*=[ \t]*(.*)';
- if ($MakefileData =~ /\n$lookup/) {
- substituteLine($lookup, "DISTFILES = $1 \$(KDE_DIST)");
- appendLines("KDE_DIST=$KDE_DIST\n");
- }
- }
-}
-
-#-----------------------------------------------------------------------------
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_DOCFILES ()
-{
- $target_adds{"all"} .= "docs-am ";
-
- my $lookup = 'KDE_DOCS\s*=[ \t]*([^\n]*)';
- goto nodocs if ($MakefileData !~ /\n$lookup/);
- print STDOUT "KDE_DOCS processing <$1>\n" if ($verbose);
-
- my $tmp = $1;
-
- # Either find the files in the directory (AUTO) or use
- # only the specified po files.
- my $files = "";
- my $appname = $tmp;
- $appname =~ s/^(\S*)\s*.*$/$1/;
- if ($appname =~ /AUTO/) {
- $appname = basename($makefileDir);
- if ("$appname" eq "en") {
- print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n";
- exit(1);
- }
- }
-
- if ($tmp !~ / - /)
- {
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2");
- next if (! -f $entry);
- $files .= "$entry ";
- }
- closedir (THISDIR);
- print STDOUT "docfiles found = $files\n" if ($verbose);
- }
- else
- {
- $tmp =~ s/\034/ /g;
- $tmp =~ s/^\S*\s*-\s*//;
- $files = $tmp;
- }
- goto nodocs if (!$files); # Nothing to do
-
- if ($files =~ /(^| )index\.docbook($| )/) {
-
- my $lines = "";
- my $lookup = 'MEINPROC\s*=';
- if ($MakefileData !~ /\n($lookup)/) {
- $lines = "MEINPROC=/\$(kde_bindir)/meinproc\n";
- }
- $lookup = 'KDE_XSL_STYLESHEET\s*=';
- if ($MakefileData !~ /\n($lookup)/) {
- $lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n";
- }
- $lookup = '\nindex.cache.bz2:';
- if ($MakefileData !~ /\n($lookup)/) {
- $lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n";
- $lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; fi\n";
- $lines .= "\n";
- }
-
- $lines .= "docs-am: index.cache.bz2\n";
- $lines .= "\n";
- $lines .= "install-docs: docs-am install-nls\n";
- $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
- $lines .= "\t\@if test -f index.cache.bz2; then \\\n";
- $lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
- $lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
- $lines .= "\telif test -f \$(srcdir)/index.cache.bz2; then \\\n";
- $lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
- $lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
- $lines .= "\tfi\n";
- $lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
- $lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
-
- $lines .= "\n";
- $lines .= "uninstall-docs:\n";
- $lines .= "\t-rm -rf \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
- $lines .= "\n";
- $lines .= "clean-docs:\n";
- $lines .= "\t-rm -f index.cache.bz2\n";
- $lines .= "\n";
- $target_adds{"install-data-am"} .= "install-docs ";
- $target_adds{"uninstall"} .= "uninstall-docs ";
- $target_adds{"clean-am"} .= "clean-docs ";
- appendLines ($lines);
- } else {
- appendLines("docs-am: $files\n");
- }
-
- $target_adds{"install-data-am"} .= "install-nls ";
- $target_adds{"uninstall"} .= "uninstall-nls ";
-
- $tmp = "install-nls:\n";
- $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
- $tmp .= "\t\@for base in $files; do \\\n";
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\t \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\tdone\n";
- if ($appname eq 'common') {
- $tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n";
- $tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n";
- $tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n";
- $tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n";
- $tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n";
- $tmp .= "\t case \" $files \" in \\\n";
- $tmp .= "\t *\" \$\$p \"*) ;; \\\n";
- $tmp .= "\t *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n";
- $tmp .= "\t esac ; \\\n";
- $tmp .= "\tdone ; fi ; true\n";
- }
- $tmp .= "\n";
- $tmp .= "uninstall-nls:\n";
- $tmp .= "\tfor base in $files; do \\\n";
- $tmp .= "\t rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\tdone\n\n";
- appendLines ($tmp);
-
- $target_adds{"distdir"} .= "distdir-nls ";
-
- $tmp = "distdir-nls:\n";
- $tmp .= "\tfor file in $files; do \\\n";
- $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n";
- $tmp .= "\tdone\n";
-
- appendLines ($tmp);
-
- return 0;
-
- nodocs:
- appendLines("docs-am:\n");
- return 1;
-}
-
-#-----------------------------------------------------------------------------
-# Find headers in any of the source directories specified previously, that
-# are candidates for "moc-ing".
-sub findMocCandidates ()
-{
- foreach $dir (@headerdirs)
- {
- my @list = ();
- opendir (SRCDIR, "$dir");
- @hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR);
- closedir SRCDIR;
- foreach $hf (@hFiles)
- {
- next if ($hf =~ /^\.\#/);
- $hf =~ /(.*)\.[^\.]*$/; # Find name minus extension
- next if ($uiFiles{$1});
- open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n";
- my $hfsize = 0;
- seek(HFIN, 0, 2);
- $hfsize = tell(HFIN);
- seek(HFIN, 0, 0);
- read HFIN, $hfData, $hfsize;
- close HFIN;
- # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT
- # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b).
- if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) {
- push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s; ## reject "// Q_OBJECT"
- }
- }
- # The assoc array of root of headerfile and header filename
- foreach $hFile (@list)
- {
- $hFile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- if ($mocFiles{$1})
- {
- print STDERR "Warning: Multiple header files found for $1\n";
- next; # Use the first one
- }
- $mocFiles{$1} = "$dir\035$hFile"; # Add relative dir
- }
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-# The programmer has specified a moc list. Prune out the moc candidates
-# list that we found based on looking at the header files. This generates
-# a warning if the programmer gets the list wrong, but this doesn't have
-# to be fatal here.
-sub pruneMocCandidates ($)
-{
- my %prunedMoc = ();
- local @mocList = split(' ', $_[0]);
-
- foreach $mocname (@mocList)
- {
- $mocname =~ s/\.moc$//;
- if ($mocFiles{$mocname})
- {
- $prunedMoc{$mocname} = $mocFiles{$mocname};
- }
- else
- {
- my $print = $makefileDir;
- $print =~ s/^\Q$topdir\E\\//;
- # They specified a moc file but we can't find a header that
- # will generate this moc file. That's possible fatal!
- print STDERR "Warning: No moc-able header file for $print/$mocname\n";
- }
- }
-
- undef %mocFiles;
- %mocFiles = %prunedMoc;
-}
-
-#-----------------------------------------------------------------------------
-
-# Finds the cpp files (If they exist).
-# The cpp files get appended to the header file separated by \035
-sub checkMocCandidates ()
-{
- my @cppFiles;
- my $cpp2moc; # which c++ file includes which .moc files
- my $moc2cpp; # which moc file is included by which c++ files
-
- return unless (keys %mocFiles);
- opendir(THISDIR, ".") || return;
- @cppFiles = grep { /.+\.$cppExt$/o && !/.+\.moc\.$cppExt$/o
- && !/.+\.all_$cppExt\.$cppExt$/o
- && !/^\./ } readdir(THISDIR);
- closedir THISDIR;
- return unless (@cppFiles);
- my $files = join (" ", @cppFiles);
- $cpp2moc = {};
- $moc2cpp = {};
- foreach $cxxf (@cppFiles)
- {
- open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n";
- seek(CXXFIN, 0, 2);
- my $cxxfsize = tell(CXXFIN);
- seek(CXXFIN, 0, 0);
- read CXXFIN, $cxxfData, $cxxfsize;
- close CXXFIN;
- while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) {
- $cpp2moc->{$cxxf}->{$1} = 1;
- $moc2cpp->{$1}->{$cxxf} = 1;
- }
- }
- foreach my $mocFile (keys (%mocFiles))
- {
- @cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}};
- if (@cppFiles == 1) {
- $mocFiles{$mocFile} .= "\035" . $cppFiles[0];
- push(@depend, $mocFile);
- } elsif (@cppFiles == 0) {
- push (@newObs, $mocFile); # Produce new object file
- next if ($haveAutomocTag); # This is expected...
- # But this is an error we can deal with - let them know
- print STDERR
- "Warning: No c++ file that includes $mocFile.moc\n";
- } else {
- # We can't decide which file to use, so it's fatal. Although as a
- # guess we could use the mocFile.cpp file if it's in the list???
- print STDERR
- "Error: Multiple c++ files that include $mocFile.moc\n";
- print STDERR "\t",join ("\t", @cppFiles),"\n";
- $errorflag = 1;
- delete $mocFiles{$mocFile};
- # Let's continue and see what happens - They have been told!
- }
- }
-}
-
-#-----------------------------------------------------------------------------
-
-# Add the rules for generating moc source from header files
-# For Automoc output *.moc.cpp but normally we'll output *.moc
-# (We must compile *.moc.cpp separately. *.moc files are included
-# in the appropriate *.cpp file by the programmer)
-sub addMocRules ()
-{
- my $cppFile;
- my $hFile;
-
- foreach $mocFile (keys (%mocFiles))
- {
- undef $cppFile;
- ($dir, $hFile, $cppFile) = split ("\035", $mocFiles{$mocFile}, 3);
- $dir =~ s#^\.#\$(srcdir)#;
- if (defined ($cppFile))
- {
- $cppFile =~ s,\.[^.]*$,,;
- $target_adds{"$cppFile.o"} .= "$mocFile.moc ";
- $target_adds{"$cppFile.lo"} .= "$mocFile.moc ";
- appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n");
- $cleanMoc .= " $mocFile.moc";
- appendLines ("mocs: $mocFile.moc\n");
- }
- else
- {
- appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n");
- $cleanMoc .= " $mocFile$mocExt";
- appendLines ("mocs: $mocFile$mocExt\n");
- }
- }
-}
-
-sub make_bcheck_target()
-{
- my $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
- my $bcheckdep = "bcheck-am";
- $bcheckdep = "bcheck-recursive" if ($MakefileData =~ /\n$lookup/);
-
- my $headers= "";
- $headers = $1 if($MakefileData =~ /\nHEADERS\s*=[ \t]*(.+)/);
- $headers =~ s/\$\((?:noinst|EXTRA)_HEADERS\)//g;
-
- $target_adds{"clean-am"} .= "clean-bcheck ";
-
- my $t = "clean-bcheck: \n" .
- "\trm -f *.bchecktest.cc *.bchecktest.cc.class a.out\n\n" .
- "bcheck: $bcheckdep\n\n" .
- "bcheck-am:\n" .
- "\t\@for i in $headers; do \\\n" .
- "\t if test \$(srcdir)/\$\$i -nt \$\$i.bchecktest.cc; then \\\n" .
- "\t echo \"int main() {return 0;}\" > \$\$i.bchecktest.cc ; \\\n" .
- "\t echo \"#include \\\"\$\$i\\\"\" >> \$\$i.bchecktest.cc ; \\\n" .
- "\t echo \"\$\$i\"; \\\n" .
- "\t if ! ";
- $t .= $cxxsuffix eq "KKK" ?
- "\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(CXXFLAGS) \$(KDE_CXXFLAGS) " :
- "\$(CXXCOMPILE) ";
- $t .= " --dump-class-hierarchy -c \$\$i.bchecktest.cc; then \\\n" .
- "\t rm -f \$\$i.bchecktest.cc; exit 1; \\\n" .
- "\t fi ; \\\n" .
- "\t echo \"\" >> \$\$i.bchecktest.cc.class; \\\n" .
- "\t perl \$(top_srcdir)/admin/bcheck.pl \$\$i.bchecktest.cc.class || { rm -f \$\$i.bchecktest.cc; exit 1; }; \\\n" .
- "\t rm -f a.out; \\\n" .
- "\t fi ; \\\n" .
- "\tdone\n";
- appendLines("$t\n");
-}
-
-sub make_meta_classes ()
-{
- return if ($kdeopts{"qtonly"});
-
- my $cppFile;
- my $hFile;
- my $moc_class_headers = "";
- foreach $program (@programs) {
- my $mocs = "";
- my @progsources = split(/[\034\s]+/, $sources{$program});
- my @depmocs = split(' ', $dependmocs{$program});
- my %shash = (), %mhash = ();
- @shash{@progsources} = 1; # we are only interested in the existence
- @mhash{@depmocs} = 1;
-
- print STDOUT "program=$program\n" if ($verbose);
- print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose);
- print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose);
- print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose);
- foreach my $mocFile (keys (%globalmocs))
- {
- my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
- if (defined ($cppFile))
- {
- $mocs .= " $mocFile.moc" if exists $shash{$cppFile};
- }
- else
- {
- # Bah. This is the case, if no C++ file includes the .moc
- # file. We make a .moc.cpp file for that. Unfortunately this
- # is not included in the %sources hash, but rather is mentioned
- # in %dependmocs. If the user wants to use AUTO he can't just
- # use an unspecific METAINCLUDES. Instead he must use
- # program_METAINCLUDES. Anyway, it's not working real nicely.
- # E.g. Its not clear what happens if user specifies two
- # METAINCLUDES=AUTO in the same Makefile.am.
- $mocs .= " $mocFile.moc.$cxxsuffix"
- if exists $mhash{$mocFile.".moc.$cxxsuffix"};
- }
- }
- if ($mocs) {
- print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose);
- }
- print STDOUT "\n" if $verbose;
- }
- if ($moc_class_headers) {
- appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes ";
- }
-}
-
-#-----------------------------------------------------------------------------
-
-sub updateMakefile ()
-{
- return if ($dryrun);
-
- open (FILEOUT, "> $makefile")
- || die "Could not create $makefile: $!\n";
-
- $MakefileData =~ s/\034/\\\n/g; # Restore continuation lines
- # Append our $progId line, _below_ the "generated by automake" line
- # because automake-1.6 relies on the first line to be his own.
- my $progIdLine = "\# $progId - " . '$Revision: 483858 $ '."\n";
- if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) {
- warn "automake line not found in $makefile\n";
- # Fallback: first line
- print FILEOUT $progIdLine;
- };
- print FILEOUT $MakefileData;
- close FILEOUT;
-}
-
-#-----------------------------------------------------------------------------
-
-# The given line needs to be removed from the makefile
-# Do this by adding the special "removed line" comment at the line start.
-sub removeLine ($$)
-{
- my ($lookup, $old) = @_;
-
- $old =~ s/\034/\\\n#>- /g; # Fix continuation lines
- $MakefileData =~ s/\n$lookup/\n#>\- $old/;
-}
-
-#-----------------------------------------------------------------------------
-
-# Replaces the old line with the new line
-# old line(s) are retained but tagged as removed. The new line(s) have the
-# "added" tag placed before it.
-sub substituteLine ($$)
-{
- my ($lookup, $new) = @_;
-
- if ($MakefileData =~ /\n($lookup)/) {
- $old = $1;
- $old =~ s/\034/\\\n#>\- /g; # Fix continuation lines
- my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
- $new =~ s/\\\n/\034/g;
- $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/;
- } else {
- warn "Warning: substitution of \"$lookup\" in $printname failed\n";
- }
-}
-
-#-----------------------------------------------------------------------------
-
-# Slap new lines on the back of the file.
-sub appendLines ($)
-{
- my ($new) = @_;
- my $copynew = $new;
- my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
- $new =~ s/\\\n/\034/g; # Fix continuation lines
- $MakefileData .= "\n#>\+ $newCount\n$new";
-}
-
-#-----------------------------------------------------------------------------
-
-# Restore the Makefile.in to the state it was before we fiddled with it
-sub restoreMakefile ()
-{
- $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g;
- # Restore removed lines
- $MakefileData =~ s/([\n\034])#>\- /$1/g;
- # Remove added lines
- while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/)
- {
- my $newCount = $1;
- my $removeLines = "";
- while ($newCount--) {
- $removeLines .= "[^\n\034]*([\n\034]|)";
- }
- $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/;
- }
-}
-
-#-----------------------------------------------------------------------------
-
-# find the .kcfg file listed in the .kcfgc file
-sub findKcfgFile($)
-{
- my ($kcfgf) = @_;
- open (KCFGFIN, $kcfgf) || die "Could not open $kcfgf: $!\n";
- seek(KCFGFIN, 0, 2);
- my $kcfgfsize = tell(KCFGFIN);
- seek(KCFGFIN, 0, 0);
- read KCFGFIN, $kcfgfData, $kcfgfsize;
- close KCFGFIN;
- if(($kcfgfData =~ m/^File=(.*\.kcfg)/gm)) {
- $kcfg = $1;
- }
-}
diff --git a/libs/taglib/admin/bcheck.pl b/libs/taglib/admin/bcheck.pl
deleted file mode 100644
index cca973efd5..0000000000
--- a/libs/taglib/admin/bcheck.pl
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/perl -w
-
-use DB_File;
-use Fcntl ':flock';
-
-if (!defined($ARGV[0])) {
- print "usage: requires .class dump as parameter!\n";
- exit;
-}
-
-sub bailout
-{
- untie %bcheckdb if(defined(%bcheckdb));
-
- if(defined(MYLOCK)) {
- flock MYLOCK, LOCK_UN;
- close(MYLOCK);
- }
-
- print @_;
- exit 5;
-}
-
-sub ask_user
-{
- my ($dbkey, $dbchunk) = @_;
-
- if (defined($ENV{"BCHECK_UPDATE"})) {
- $bcheckdb{$dbkey} = $dbchunk;
- return;
- }
-
- &bailout("BC problem detected") if (! -t STDIN);
-
- print "(I)gnore / (Q)uit / (U)pdate: ";
-
- my $key;
- while(defined(read STDIN, $key, 1)) {
- $key = lc($key);
-
- print "got: >$key<\n";
-
- return if ($key eq 'i');
-
- &bailout("BC problem. aborted") if ($key eq 'q');
-
- if ($key eq 'u') {
- $bcheckdb{$dbkey} = $dbchunk;
- return;
- }
- print "\n(I)gnore / (Q)uit / (U)pdate: ";
- }
-}
-
-sub diff_chunk($$)
-{
- my ($oldl, $newl) = @_;
- my @old = split /^/m, $oldl;
- my @new = split /^/m, $newl;
- my $haschanges = 0;
- my $max = $#old > $#new ? $#old : $#new;
-
- die "whoops. key different" if ($old[0] ne $new[0]);
-
- if ($#old != $#new) {
- warn ("Structural difference.\n");
- print @old;
- print "-----------------------------------------------\n";
- print @new;
- $haschanges = 1;
- return $haschanges;
- }
-
- print $old[0];
-
- my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
-
- my $c = 1;
- while ($c < $max) {
- my ($o, $n) = ($old[$c], $new[$c]);
- chomp $o;
- chomp $n;
- $c++;
- next if ($o eq $n);
-
- if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
- next if ($n eq "$1$class$2");
- }
-
- $haschanges = 1;
-
- print "-$o\n+$n\n\n";
- }
-
- return $haschanges;
-}
-
-local $dblock = $ENV{"HOME"} . "/bcheck.lock";
-my $dbfile = $ENV{"HOME"} . "/bcheck.db";
-my $cdump = $ARGV[0];
-
-die "file $cdump is not readable: $!" if (! -f $cdump);
-
-# make sure the advisory lock exists
-open(MYLOCK, ">$dblock");
-print MYLOCK "";
-
-flock MYLOCK, LOCK_EX;
-
-tie %bcheckdb, 'DB_File', $dbfile;
-
-my $chunk = "";
-
-open (IN, "<$cdump") or die "cannot open $cdump: $!";
-while (<IN>) {
-
- chop;
-
- s/0x[0-9a-fA-F]+/0x......../g;
- s/base size=/size=/g;
- s/\(\)\s*$//g;
- s/base align=/align=/g;
-
- $chunk .= $_ . "\n";
-
- if(/^\s*$/) {
- my @lines = split /^/m, $chunk;
- my $key = $lines[0];
- chomp $key;
-
- if($key !~ /<anonymous struct>/ &&
- $key !~ /<anonymous union>/) {
- if(defined($bcheckdb{$key})) {
- my $dbversion = $bcheckdb{$key};
-
- if($dbversion ne $chunk) {
- &ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
- }
- }
- else {
- $bcheckdb{$key} = $chunk;
- print "NEW: $key\n";
- }
- }
-
- $chunk = "";
- next;
- }
-
-}
-close(IN);
-
-untie %bcheckdb;
-flock MYLOCK, LOCK_UN;
-close(MYLOCK);
-
-exit 0;
diff --git a/libs/taglib/admin/compile b/libs/taglib/admin/compile
deleted file mode 100755
index 1b1d232169..0000000000
--- a/libs/taglib/admin/compile
+++ /dev/null
@@ -1,142 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
-
-scriptversion=2005-05-14.22
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, 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.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-case $1 in
- '')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
-esac
-
-ofile=
-cfile=
-eat=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we strip `-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no `-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # `.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/admin/conf.change.pl b/libs/taglib/admin/conf.change.pl
deleted file mode 100644
index 129d759288..0000000000
--- a/libs/taglib/admin/conf.change.pl
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/usr/bin/env perl
-
-# this script patches a config.status file, to use our own perl script
-# in the main loop
-# we do it this way to circumvent hacking (and thereby including)
-# autoconf function (which are GPL) into our LGPL acinclude.m4.in
-# written by Michael Matz <matz@kde.org>
-# adapted by Dirk Mueller <mueller@kde.org>
-#
-# This file is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-
-# You should have received a copy of the GNU Library General Public License
-# along with this library; see the file COPYING.LIB. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-
-# we have to change two places
-# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
-# later autoconf's
-# 2. the big main loop which patches all Makefile.in's
-
-use strict;
-use File::Basename;
-
-my $ac_aux_dir = dirname($0);
-my ($flag);
-my $ac_version = 0;
-my $vpath_seen = 0;
-$flag = 0;
-
-while (<>) {
-# usage of $flag: 0 -- we have seen nothing yet
-# 1 -- we are in (1)
-# 2 -- we have ended (1)
-# 3 -- we are in (2)
-# 4 -- we ended (2)
-
- if ($flag == 4) {
- print;
- } elsif ($flag == 0) {
-# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
-# ends with (excluding) "CONFIG_FILE=..."
-# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
-# but instead the (2) directly follow (1)
- if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
- $flag = 1;
- if ($1 eq 'lines') {
- # lets hope its different with 2141,
- # wasn't able to verify that
- if ($2 eq '48') {
- $ac_version = 250;
- }
- else {
- $ac_version = 2141;
- }
- } elsif ($1 eq 'cmds') {
- $ac_version = 213;
- }
- # hmm, we don't know the autoconf version, but we try anyway
- } else {
- print;
- }
- } elsif ($flag == 1) {
- if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
- print;
- $flag = 2;
- } elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
- $flag = 3;
- }
- } elsif ($flag == 2) {
-# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
-# end with: "rm -f conftest.s\*"
-# on autoconf 250, it ends with '# CONFIG_HEADER section'
-#
-# gg: if a post-processing commands section is found first,
-# stop there and insert a new loop to honor the case/esac.
-# (pattern: /^\s+#\sRun the commands associated with the file./)
-
- if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
- $flag = 3;
- } else {
- print;
- }
- } elsif ($flag == 3) {
- if (/^\s*rm\s+-f\s+conftest/ ) {
- $flag = 4;
- &insert_main_loop();
- } elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
- $flag = 4;
- &insert_main_loop();
- #die "hhhhhhh";
- if ($ac_version != 2141) {
- print STDERR "hmm, don't know autoconf version\n";
- }
- } elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
- $flag = 4;
- my $commands = defined $2;
- &insert_main_loop();
- $commands && insert_command_loop();
- if($ac_version != 250) {
- print STDERR "hmm, something went wrong :-(\n";
- }
- } elsif (/VPATH/ ) {
- $vpath_seen = 1;
- }
- }
-}
-
-die "wrong input (flag != 4)" unless $flag == 4;
-print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
-
-sub insert_main_loop {
-
- if ($ac_version == 250) {
- &insert_main_loop_250();
- }
- else {
- &insert_main_loop_213();
- }
-}
-
-sub insert_main_loop_250 {
-
- print <<EOF;
- #echo Doing the fast build of Makefiles -- autoconf $ac_version
-EOF
- if ($vpath_seen) {
- print <<EOF;
- # VPATH subst was seen in original config.status main loop
- echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
-EOF
- }
- print <<EOF;
- rm -f \$tmp/subs.files
- for ac_file in .. \$CONFIG_FILES ; do
- if test "x\$ac_file" != x..; then
- echo \$ac_file >> \$tmp/subs.files
- fi
- done
- if test -f \$tmp/subs.files ; then
- perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
- fi
- rm -f \$tmp/subs.files
-
-fi
-EOF
- return;
-}
-
-sub insert_main_loop_213 {
- print <<EOF;
-#echo Doing the fast build of Makefiles -- autoconf $ac_version
-if test "x\$ac_cs_root" = "x" ; then
- ac_cs_root=conftest
-fi
-EOF
- if ($vpath_seen) {
- print <<EOF;
-# VPATH subst was seen in original config.status main loop
-echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
-EOF
- }
- print <<EOF;
-rm -f \$ac_cs_root.sacfiles
-for ac_file in .. \$CONFIG_FILES ; do
- if test "x\$ac_file" != x..; then
- echo \$ac_file >> \$ac_cs_root.sacfiles
- fi
-done
-if test -f \$ac_cs_root.sacfiles ; then
- perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
-fi
-rm -f \$ac_cs_root.s*
-
-EOF
- return;
-}
-
-sub insert_command_loop {
- print <<EOF;
- for ac_file in .. \$CONFIG_FILES ; do
-EOF
-}
diff --git a/libs/taglib/admin/config.guess b/libs/taglib/admin/config.guess
deleted file mode 100755
index 4f0f63f17c..0000000000
--- a/libs/taglib/admin/config.guess
+++ /dev/null
@@ -1,1464 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-06-30'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. 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 <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #ifdef __INTEL_COMPILER
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- *86) UNAME_PROCESSOR=i686 ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
-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 <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
-and
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libs/taglib/admin/config.pl b/libs/taglib/admin/config.pl
deleted file mode 100644
index c2b0517d38..0000000000
--- a/libs/taglib/admin/config.pl
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/usr/bin/env perl
-# a script for use by autoconf to make the Makefiles
-# from the Makefile.in's
-#
-# the original autoconf mechanism first splits all substitutions into groups
-# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
-# (so around 2-3 times per Makefile.in). So this takes forever, as sed
-# has to recompile the regexps every time.
-#
-# this script does better. It changes all Makefile.ins in one process.
-# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
-#
-# written by Michael Matz <matz@kde.org>
-# adapted by Dirk Mueller <mueller@kde.org>
-
-# This file is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-
-# You should have received a copy of the GNU Library General Public License
-# along with this library; see the file COPYING.LIB. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-
-use strict;
-
-use File::Path;
-
-my $ac_subs=$ARGV[0];
-my $ac_sacfiles = $ARGV[1];
-my $ac_given_srcdir=$ARGV[2];
-my $ac_given_INSTALL=$ARGV[3];
-
-my @comp_match;
-my @comp_subs;
-
-#print "ac_subs=$ac_subs\n";
-#print "ac_sacfiles=$ac_sacfiles\n";
-#print "ac_given_srcdir=$ac_given_srcdir\n";
-#print "ac_given_INSTALL=$ac_given_INSTALL\n";
-
-my $configure_input;
-my ($srcdir, $top_srcdir);
-my $INSTALL;
-my $bad_perl = ($] < 5.005);
-my $created_file_count = 0;
-
-open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
-my @subs = <CF>;
-my $pat;
-close(CF);
-chomp @subs;
-@comp_match=();
-@comp_subs=();
-
-if ($bad_perl) {
- print "Using perl older than version 5.005\n";
- foreach $pat (@subs) {
- if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
- || ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
- || ($pat =~ m/s,([^,]*),(.*),;t/)
- || ($pat =~ m%s/([^/]*)/([^/]*)/g% )
- || ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
- ) {
- # form : s%bla%blubb%g
- # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
- # or s,bla,blubb,;t t (autoconf 2.52)
- my $srch = $1;
- my $repl = $2;
- $repl =~ s/\\(.)/$1/g;
- push @comp_subs, make_closure($srch, $repl);
-
- } elsif ( ($pat =~ /%([^%]*)%d/ )
- || ($pat =~ m%/([^/]*)/d% )
- ) {
- push @comp_subs, make_closure($1, "");
- } else {
- die "Uhh. Malformed pattern in $ac_subs ($pat)"
- unless ( $pat =~ /^\s*$/ ); # ignore white lines
- }
- }
-} else {
- foreach $pat (@subs) {
- if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
- ($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
- ($pat =~ /s,([^,]*),(.*),;t/) ) {
- # form : s%bla%blubb%g
- # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
- # or s,bla,blubb,;t t (autoconf 2.52)
- my $srch = $1;
- my $repl = $2;
- push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
- $repl =~ s/\\(.)/$1/g;
- push @comp_subs, $repl;
- } elsif ( ($pat =~ /%([^%]*)%d/ )
- || ($pat =~ m%/([^/]*)/d% )
- ) {
- push @comp_match, eval "qr/\Q$1\E/";
- push @comp_subs, "";
- } else {
- die "Uhh. Malformed pattern in $ac_subs ($pat)"
- unless ( $pat =~ /^\s*$/ ); # ignore white lines
- }
- }
-}
-undef @subs;
-
-# read the list of files to be patched, form:
-# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
-
-open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
-my @ac_files = <CF>;
-close(CF);
-chomp @ac_files;
-
-
-my $ac_file;
-foreach $ac_file (@ac_files) {
- next if $ac_file =~ /\.\./;
- next if $ac_file =~ /^\s*$/;
- my $ac_file_in;
- my ($ac_dir, $ac_dots, $ac_dir_suffix);
-
- if ($ac_file =~ /.*:.*/ ) {
- ($ac_file_in = $ac_file) =~ s%[^:]*:%%;
- $ac_file =~ s%:.*%%;
- } else {
- $ac_file_in = $ac_file.".in";
- }
-
-# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-# Remove last slash and all that follows it. Not all systems have dirname.
- ($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
- if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
-# The file is in a subdirectory.
- if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
- ($ac_dir_suffix = $ac_dir) =~ s%^./%%;
- $ac_dir_suffix="/".$ac_dir_suffix;
-# A "../" for each directory in $ac_dir_suffix.
- ($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
- } else {
- $ac_dir_suffix="";
- $ac_dots="";
- }
-
- if ($ac_given_srcdir eq ".") {
- $srcdir=".";
- if ($ac_dots) {
- ( $top_srcdir = $ac_dots) =~ s%/$%%;
- } else { $top_srcdir="."; }
- } elsif ($ac_given_srcdir =~ m%^/%) {
- $srcdir=$ac_given_srcdir.$ac_dir_suffix;
- $top_srcdir = $ac_given_srcdir;
- } else {
- $srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
- $top_srcdir = $ac_dots.$ac_given_srcdir;
- }
-
- if ($ac_given_INSTALL) {
- if ($ac_given_INSTALL =~ m%^/% ) {
- $INSTALL = $ac_given_INSTALL;
- } else {
- $INSTALL = $ac_dots.$ac_given_INSTALL;
- }
- }
-
- print "fast creating $ac_file\n";
- unlink $ac_file;
- my $ac_comsub="";
- my $fname=$ac_file_in;
- $fname =~ s%.*/%%;
- $configure_input="$ac_file. Generated from $fname by config.pl.";
-
- my $ac_file_inputs;
- ($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
- $ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
-
- patch_file($ac_file, $ac_file_inputs);
- ++$created_file_count;
-}
-
-print "config.pl: fast created $created_file_count file(s).\n";
-
-sub patch_file {
- my ($outf, $infiles) = @_;
- my $filedata;
- my @infiles=split(' ', $infiles);
- my $i=0;
- my $name;
-
- foreach $name (@infiles) {
- if (open(CF, "< $name")) {
- while (<CF>) {
- $filedata .= $_;
- }
- close(CF);
- } else {
- print STDERR "can't open $name: $!"."\n";
- }
- }
-
- $filedata =~ s%\@configure_input\@%$configure_input%g;
- $filedata =~ s%\@srcdir\@%$srcdir%g;
- $filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
- $filedata =~ s%\@INSTALL\@%$INSTALL%g;
-
- if ($bad_perl) {
- while ($i <= $#comp_subs) {
- my $ref = $comp_subs[$i];
- &$ref(\$filedata);
- $i++;
- }
- } else {
- while ($i <= $#comp_match) {
- $filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
- $i++;
- }
- }
- open(CF, "> $outf") || die "can't create $outf: $!";
- print CF $filedata;
- close(CF);
-}
-
-sub make_closure {
- my ($pat, $sub) = @_;
- my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
- if ($@) {
- print "can't create CODE: $@\n";
- }
- return $ret;
-}
diff --git a/libs/taglib/admin/config.sub b/libs/taglib/admin/config.sub
deleted file mode 100755
index 2ef284295d..0000000000
--- a/libs/taglib/admin/config.sub
+++ /dev/null
@@ -1,1575 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-07-01'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches@gnu.org>. 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 <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -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 \
- | bfin \
- | 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 | m32rle | m68000 | m68k | m88k | maxq | mcore \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64vr | mips64vrel \
- | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | ms1 \
- | msp430 \
- | ns16k | ns32k \
- | 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 | sparc64b | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b \
- | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
- | we32k \
- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
- basic_machine=$basic_machine-unknown
- ;;
- m32c)
- 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-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | 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-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | ms1-* \
- | msp430-* \
- | none-* | np1-* | 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-* | sparc64b-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tron-* \
- | v850-* | v850e-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa-* \
- | ymp-* \
- | z8k-*)
- ;;
- m32c-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16c)
- basic_machine=cr16c-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- 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
- ;;
- 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
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- 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
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | 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* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* | -skyos*)
- # 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-dietlibc)
- os=-linux-dietlibc
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -aros*)
- os=-aros
- ;;
- -kaos*)
- os=-kaos
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-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
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libs/taglib/admin/configure.in.bot.end b/libs/taglib/admin/configure.in.bot.end
deleted file mode 100644
index 1bc030b1eb..0000000000
--- a/libs/taglib/admin/configure.in.bot.end
+++ /dev/null
@@ -1,45 +0,0 @@
-# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
-if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
- # And if so, warn when they don't match
- if test "$kde_libs_prefix" != "$given_prefix"; then
- # And if kde doesn't know about the prefix yet
- echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
- if test $? -ne 0; then
- echo ""
- echo "Warning: you chose to install this package in $given_prefix,"
- echo "but KDE was found in $kde_libs_prefix."
- echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
- echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
- echo "Then restart KDE."
- echo ""
- fi
- fi
-fi
-
-if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
- echo ""
- echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
- echo "was not included. Therefore, GCC symbol visibility support remains disabled."
- echo ""
- echo "For better performance, consider including the Qt visibility supporting patch"
- echo "located at:"
- echo ""
- echo "http://bugs.kde.org/show_bug.cgi?id=109386"
- echo ""
- echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
- echo "everything will continue to work just fine without it."
- echo ""
-fi
-
-if test "$all_tests" = "bad"; then
- if test ! "$cache_file" = "/dev/null"; then
- echo ""
- echo "Please remove the file $cache_file after changing your setup"
- echo "so that configure will find the changes next time."
- echo ""
- fi
-else
- echo ""
- echo "Good - your configure finished. Start make now"
- echo ""
-fi
diff --git a/libs/taglib/admin/configure.in.min b/libs/taglib/admin/configure.in.min
deleted file mode 100644
index 0dfe378950..0000000000
--- a/libs/taglib/admin/configure.in.min
+++ /dev/null
@@ -1,57 +0,0 @@
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-dnl Boston, MA 02110-1301, USA.
-
-# Original Author was Kalle@kde.org
-# I lifted it in some mater. (Stephan Kulow)
-# I used much code from Janos Farkas
-
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(acinclude.m4) dnl a source file from your sub dir
-
-dnl This is so we can use kde-common
-AC_CONFIG_AUX_DIR(admin)
-
-dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
-unset CDPATH
-
-dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_SYSTEM
-dnl Perform program name transformation
-AC_ARG_PROGRAM
-
-dnl Automake doc recommends to do this only here. (Janos)
-AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
-
-KDE_SET_PREFIX
-
-dnl generate the config header
-AM_CONFIG_HEADER(config.h) dnl at the distribution this done
-
-dnl Checks for programs.
-AC_CHECK_COMPILERS
-AC_ENABLE_SHARED(yes)
-AC_ENABLE_STATIC(no)
-KDE_PROG_LIBTOOL
-
-dnl for NLS support. Call them in this order!
-dnl WITH_NLS is for the po files
-AM_KDE_WITH_NLS
-
-dnl KDE_USE_QT
-AC_PATH_KDE
diff --git a/libs/taglib/admin/cvs.sh b/libs/taglib/admin/cvs.sh
deleted file mode 100644
index 007f069f72..0000000000
--- a/libs/taglib/admin/cvs.sh
+++ /dev/null
@@ -1,661 +0,0 @@
-#! /bin/sh
-#
-# cvs.sh
-#
-# This file contains support code from Makefile.common
-# It defines a shell function for each known target
-# and then does a case to call the correct function.
-
-unset MAKEFLAGS
-
-call_and_fix_autoconf()
-{
- $AUTOCONF || exit 1
- if test -r configure.in.in ; then
- perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
- \\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
- \\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
- \\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
- \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
- fi
-}
-
-strip_makefile()
-{
- if test ! -f $makefile_wo; then
- perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
- fi
-}
-
-check_autotool_versions()
-{
-required_autoconf_version="2.53 or newer"
-AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
-case $AUTOCONF_VERSION in
- Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
- "" )
- echo "*** AUTOCONF NOT FOUND!."
- echo "*** KDE requires autoconf $required_autoconf_version"
- exit 1
- ;;
- * )
- echo "*** YOU'RE USING $AUTOCONF_VERSION."
- echo "*** KDE requires autoconf $required_autoconf_version"
- exit 1
- ;;
-esac
-
-AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
-case $AUTOHEADER_VERSION in
- Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
- "" )
- echo "*** AUTOHEADER NOT FOUND!."
- echo "*** KDE requires autoheader $required_autoconf_version"
- exit 1
- ;;
- * )
- echo "*** YOU'RE USING $AUTOHEADER_VERSION."
- echo "*** KDE requires autoheader $required_autoconf_version"
- exit 1
- ;;
-esac
-
-AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
-required_automake_version="1.6.1 or newer"
-case $AUTOMAKE_STRING in
- automake*1.5d* | automake*1.5* | automake*1.5-* )
- echo "*** YOU'RE USING $AUTOMAKE_STRING."
- echo "*** KDE requires automake $required_automake_version"
- exit 1
- ;;
- automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
- echo "*** $AUTOMAKE_STRING found."
- UNSERMAKE=no
- ;;
- "" )
- echo "*** AUTOMAKE NOT FOUND!."
- echo "*** KDE requires automake $required_automake_version"
- exit 1
- ;;
- *unsermake* ) :
- echo "*** YOU'RE USING UNSERMAKE."
- echo "*** GOOD LUCK!! :)"
- UNSERMAKE=unsermake
- ;;
- * )
- echo "*** YOU'RE USING $AUTOMAKE_STRING."
- echo "*** KDE requires automake $required_automake_version"
- exit 1
- ;;
-esac
-unset required_automake_version
-}
-
-cvs()
-{
-check_autotool_versions
-acinclude_m4
-
-### Make new subdirs and configure.in.
-### The make calls could be optimized away here,
-### with a little thought.
-if test -r configure.in.in; then
- rm -f configure.in
- echo "*** Creating list of subdirectories"
- create_subdirs
-
- if test -r Makefile.am.in; then
- echo "*** Creating Makefile.am"
- if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
- else
- Makefile_am
- fi
- fi
- configure_files
- echo "*** Creating configure.in"
- if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
- else
- configure_in
- fi
-fi
-
-echo "*** Creating aclocal.m4"
-$ACLOCAL $ACLOCALFLAGS || exit 1
-echo "*** Creating configure"
-call_and_fix_autoconf
-
-if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
- echo "*** Creating config.h template"
- $AUTOHEADER || exit 1
- touch config.h.in
-fi
-
-echo "*** Creating Makefile templates"
-$AUTOMAKE || exit 1
-
-if test "$UNSERMAKE" = no; then
- echo "*** Postprocessing Makefile templates"
- perl -w admin/am_edit || exit 1
-fi
-
-if egrep "^cvs-local:" $makefile_am >/dev/null; then \
- strip_makefile
- $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
-fi
-
-echo "*** Creating date/time stamp"
-touch stamp-h.in
-
-echo "*** Finished"
-echo " Don't forget to run ./configure"
-echo " If you haven't done so in a while, run ./configure --help"
-}
-
-dist()
-{
-check_autotool_versions
-
-###
-### First build all of the files necessary to do just "make"
-###
-acinclude_m4
-if test -r configure.in.in; then
- rm -f configure.in
- create_subdirs
-
- if test -r Makefile.am.in; then
- if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
- else
- Makefile_am
- fi
- fi
- configure_files
- if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
- else
- configure_in
- fi
-fi
-$ACLOCAL $ACLOCALFLAGS
-if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
- echo "*** Creating config.h template"
- $AUTOHEADER || exit 1
- touch config.h.in
-fi
-$AUTOMAKE --foreign || exit 1
-if test "$UNSERMAKE" = no; then
- echo "*** Postprocessing Makefile templates"
- perl -w admin/am_edit || exit 1
-fi
-call_and_fix_autoconf
-touch stamp-h.in
-if grep "^cvs-local:" $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo cvs-local top_srcdir=.
-fi
-
-###
-### Then make messages
-###
-if test -d po; then
- LIST=`find ./po -name "*.po"`
- for i in $LIST; do
- file2=`echo $i | sed -e "s#\.po#\.gmo#"`
- msgfmt -o $file2 $i || touch $file2
- done
-fi
-if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
- strip_makefile
- $MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
-fi
-}
-
-subdir_dist()
-{
-$ACLOCAL $ACLOCALFLAGS
-$AUTOHEADER
-touch config.h.in
-$AUTOMAKE
-AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
-case $AUTOMAKE_STRING in
- *unsermake* ) :
- ;;
- *)
- perl -w ../admin/am_edit --path=../admin
-esac
-call_and_fix_autoconf
-touch stamp-h.in
-}
-
-configure_in()
-{
-rm -f configure.in configure.in.new
-kde_use_qt_param=
-test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
-list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
-: > configure.in.new
-for file in $list; do
- echo "dnl =======================================================" >> configure.in.new
- echo "dnl FILE: $file" >> configure.in.new
- echo "dnl =======================================================" >> configure.in.new
- echo "" >> configure.in.new
- cat $file >> configure.in.new
-done
-echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
-if test -f Makefile.am.in; then
- subdirs=`cat subdirs`
- for dir in $subdirs; do
- vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
- echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
- if test -f "$dir/configure.in"; then
- echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
- echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
- echo "fi" >> configure.in.new
- fi
- done
-fi
-
-echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
-
-if test -f inst-apps; then
- topleveldirs=`cat inst-apps`
-else
- topleveldirs=
- for dir in `ls -1d * | sort`; do
- if test "$dir" != "debian" && test -d $dir; then
- topleveldirs="$topleveldirs $dir"
- fi
- done
-fi
-
-for topleveldir in $topleveldirs; do
- if test -f $topleveldir/configure.in; then
- continue
- fi
- if test -f $topleveldir/Makefile.am; then :; else
- continue
- fi
-
- mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
- sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
- for i in $mfs; do
- echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
- done
-done
-
-files=`cat configure.files`
-list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
-for file in $list; do
- echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
-done
-
-midfiles=`cat configure.files | fgrep "configure.in.mid"`
-test -n "$midfiles" && cat $midfiles >> configure.in.new
-
-echo "AC_OUTPUT" >> configure.in.new
-modulename=
-if test -f configure.in.in; then
- if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
- kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
- fi
- if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
- line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
- if test -n "$line"; then
- modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
- VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
- fi
- sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
- configure.in.new > configure.in && mv configure.in configure.in.new
- fi
-fi
-if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
- VERSION="\"3.5.8\""
-fi
-if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
- modulename=`pwd`;
- modulename=`basename $modulename`
- esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
- modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
-
-fi
-if test -n "$kde_use_qt_param"; then
- sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
- configure.in.new > configure.in && mv configure.in configure.in.new
-fi
-sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
- sed -e "s#@VERSION@#$VERSION#" > configure.in
-botfiles=`cat configure.files | egrep "configure.in.bot"`
-test -n "$botfiles" && cat $botfiles >> configure.in
-cat $admindir/configure.in.bot.end >> configure.in
-rm -f configure.in.new
-}
-
-configure_files()
-{
-echo "*** Creating configure.files"
-admindir=NO
-for i in . .. ../.. ../../..; do
- if test -x $i/admin; then admindir=$i/admin; break; fi
-done
-rm -f configure.files
-touch configure.files
-if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
- echo $admindir/configure.in.min >> configure.files
-fi
-test -f configure.in.in && echo configure.in.in >> configure.files
-# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
-if test -f inst-apps; then
- inst=`cat inst-apps`
- list=""
- for i in $inst; do
- list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
- sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
- done
-else
- list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
- sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
-fi
-for i in $list; do if test -f $i && test `dirname $i` != "." ; then
- echo $i >> configure.files
-fi; done
-test -f configure.in.mid && echo configure.in.mid >> configure.files
-test -f configure.in.bot && echo configure.in.bot >> configure.files
-if test ! -s configure.files; then
- echo "There are no files to build a configure. Please check your checkout."
- exit 1
-fi
-}
-
-create_subdirs()
-{
-if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
- # as many modules contain rules to create subdirs without any
- # dependencies make won't create it unless there is no file.
- # so we check if that's a dummy rule or one that works
- rm -f subdirs.cvs.sh.$$
- if test -f subdirs; then
- mv subdirs subdirs.cvs.sh.$$
- fi
- strip_makefile
- $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
- if test -f subdirs.cvs.sh.$$; then
- if test -s subdirs; then
- rm subdirs.cvs.sh.$$
- else
- mv subdirs.cvs.sh.$$ subdirs
- fi
- fi
-else
- subdirs
-fi
-}
-
-subdirs()
-{
-dirs=
-idirs=
-if test -f inst-apps; then
- idirs=`cat inst-apps`
-else
- idirs=`ls -1 | sort`
-fi
-
-compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
-compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
-for i in $idirs; do
- if test -f $i/Makefile.am; then
- case " $compilefirst $compilelast " in
- *" $i "*) ;;
- *) dirs="$dirs $i"
- esac
- fi
-done
-
-: > ./_SUBDIRS
-
-for d in $compilefirst; do
- echo $d >> ./_SUBDIRS
-done
-
-(for d in $dirs; do
- list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
- for s in $list; do
- echo $s $d
- done
- list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
- for s in $list; do
- echo $d $s
- done
- echo $d $d
-done ) | tsort >> ./_SUBDIRS
-
-for d in $compilelast; do
- echo $d >> ./_SUBDIRS
-done
-
-if test -r subdirs && cmp -s subdirs _SUBDIRS; then
- rm -f _SUBDIRS
-fi
-test -r _SUBDIRS && mv _SUBDIRS subdirs || true
-}
-
-Makefile_am()
-{
-if test -f Makefile.am.in; then
- compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
- compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
-
- idirs=
- dirs=
- if test -f inst-apps; then
- idirs=`cat inst-apps`
- else
- idirs=`cat subdirs`
- fi
- for i in $idirs; do
- case " $compilefirst $compilelast " in
- *" $i "*) ;;
- *) dirs="$dirs $i"
- esac
- done
-
- adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
- if echo "$adds" | fgrep "*" >/dev/null ; then
- adds=`ls -d -1 $adds 2>/dev/null`
- fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
- str='$(top_srcdir)/acinclude.m4:'
- for add in $adds; do
- str="$str \$(top_srcdir)/$add"
- done
- echo $str >> Makefile.am.in.adds
- else
- cat Makefile.am.in > Makefile.am.in.adds
- fi
-
- cat Makefile.am.in.adds | \
- sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
- sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
- echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
- rm Makefile.am.in.adds
-fi
-}
-
-acinclude_m4()
-{
- echo "*** Creating acinclude.m4"
- adds=
- if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
- strip_makefile
- rm -f acinclude.m4
- adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
- if echo $adds | fgrep "*" >/dev/null ; then
- adds=`ls -d -1 $adds 2>/dev/null`
- else
- $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
- fi
- else
- rm -f acinclude.m4
- fi
- # if it wasn't created up to now, then we do it better
- if test ! -f acinclude.m4; then
- cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
- fi
-}
-
-package_merge()
-{
-catalogs=$POFILES
-for cat in $catalogs; do
- msgmerge -o $cat.new $cat $PACKAGE.pot
- if test -s $cat.new; then
- grep -v "\"POT-Creation" $cat.new > $cat.new.2
- grep -v "\"POT-Creation" $cat >> $cat.new.1
- if diff $cat.new.1 $cat.new.2; then
- rm $cat.new
- else
- mv $cat.new $cat
- fi
- rm -f $cat.new.1 $cat.new.2
- fi
-done
-}
-
-extract_messages()
-{
-podir=${podir:-$PWD/po}
-files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
-dirs=`for i in $files; do echo \`dirname $i\`; done`
-tmpname="$PWD/messages.log"
-if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
-if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
-export EXTRACTRC PREPARETIPS
-
-for subdir in $dirs; do
- test -z "$VERBOSE" || echo "Making messages in $subdir"
- (cd $subdir
- if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
- $EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
- else
- candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
- if test -n "$candidates"; then
- echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
- fi
- fi
- if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
- echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
- else echo " " > _translatorinfo.cpp
- fi
- perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
-
- kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
- if ! test -f $kdepotpath; then
- kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
- fi
-
- $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
- XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
- exit_code=$?
- if test "$exit_code" != 0; then
- echo "make exit code: $exit_code"
- fi
- ) 2>&1 | grep -v '^make\[1\]' > $tmpname
- test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
- test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
- rm -f $subdir/_translatorinfo.cpp
- rm -f $subdir/_transMakefile
-done
-rm -f $tmpname
-}
-
-package_messages()
-{
-rm -rf po.backup
-mkdir po.backup
-
-for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
- egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
- cat po/$i > po.backup/backup_$i
- touch -r po/$i po.backup/backup_$i
- rm po/$i
-done
-
-extract_messages
-
-for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
- test -f po/$i || echo "disappeared: $i"
-done
-for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
- sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
- #msgmerge -q -o po/$i po/$i po/$i
- egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
- if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
- echo "will update $i"
- else
- if test -f po.backup/backup_$i; then
- test -z "$VERBOSE" || echo "I'm restoring $i"
- mv po.backup/backup_$i po/$i
- rm po.backup/$i
- else
- echo "will add $i"
- fi
- fi
-done
-rm -f temp.pot
-rm -rf po.backup
-}
-
-# Make sure that sorting is always done the same way
-LC_ALL=C
-export LC_ALL
-unset LANG || :
-unset LC_CTYPE || :
-unset LANGUAGE || :
-
-unset CDPATH || :
-admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
-test "x$admindir" = "x$0" && admindir=.
-
-test "x$MAKE" = x && MAKE=make
-makefile_am=Makefile.am
-makefile_wo=Makefile.am.wo
-if test -f Makefile.am.in; then
- makefile_am=Makefile.am.in
- makefile_wo=Makefile.am.in.wo
- rm -f $makefile_wo
-fi
-
-# Call script to find autoconf and friends. Uses eval since the script outputs
-# sh-compatible code.
-eval `$admindir/detect-autoconf.pl`
-
-###
-### Main
-###
-
-arg=`echo $1 | tr .- __`
-case $arg in
- cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
- cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
- configure ) call_and_fix_autoconf ;;
- * ) echo "Usage: cvs.sh <target>"
- echo "Target can be one of:"
- echo " cvs svn dist"
- echo " configure.in configure.files"
- echo " package-merge package-messages"
- echo ""
- echo "Usage: anything but $1"
- exit 1 ;;
-esac
-
-if test -f $makefile_wo; then
- rm $makefile_wo
-fi
-
-exit 0
diff --git a/libs/taglib/admin/debianrules b/libs/taglib/admin/debianrules
deleted file mode 100755
index 25897f2e39..0000000000
--- a/libs/taglib/admin/debianrules
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/perl -w
-
-use Shell qw(mv cp mkdir rm) ;
-use File::Find;
-use Cwd;
-
-$origPwd = `pwd`;
-chomp $origPwd;
-
-$kde_prefix = "/usr";
-$sysconfdir = "/etc";
-$kde_includedir = "$kde_prefix/include/kde";
-$infodir = "$kde_prefix/share/info";
-$mandir = "$kde_prefix/share/man";
-$qtdir = "/usr/share/qt3";
-
-$kde_cgidir = "$kde_prefix/lib/cgi-bin";
-$kde_confdir = "$sysconfdir/kde3";
-$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
-
-if (defined $ENV{DEB_BUILD_OPTIONS} &&
- $ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
- $enable_debug="--enable-debug=full";
-} else {
- $enable_debug="--disable-debug";
-}
-
-if (@ARGV && $ARGV[0] eq 'echodirs') {
- print STDOUT "export kde_prefix=$kde_prefix\n";
- print STDOUT "export sysconfdir=$sysconfdir\n";
- print STDOUT "export kde_includedir=$kde_includedir\n";
- print STDOUT "export infodir=$infodir\n";
- print STDOUT "export mandir=$mandir\n";
- print STDOUT "export qtdir=$qtdir\n";
-
- print STDOUT "export kde_cgidir=$kde_cgidir\n";
- print STDOUT "export kde_confdir=$kde_confdir\n";
- print STDOUT "export kde_htmldir=$kde_htmldir\n";
-
- print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
-
- exit
-}
diff --git a/libs/taglib/admin/depcomp b/libs/taglib/admin/depcomp
deleted file mode 100755
index 04701da536..0000000000
--- a/libs/taglib/admin/depcomp
+++ /dev/null
@@ -1,530 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2005-07-09.11
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by `PROGRAMS ARGS'.
- object Object file output by `PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputing dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
- # dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> $depfile
- echo >> $depfile
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts `$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
- if test "$libtool" = yes; then
- "$@" -Wc,-M
- else
- "$@" -M
- fi
- stat=$?
-
- if test -f "$tmpdepfile"; then :
- else
- stripped=`echo "$stripped" | sed 's,^.*/,,'`
- tmpdepfile="$stripped.u"
- fi
-
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
-
- if test -f "$tmpdepfile"; then
- outname="$stripped.o"
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-icc)
- # Intel's C compiler understands `-MD -MF file'. However on
- # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want:
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using \ :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
-
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mecanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove `-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for `:'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
- "$@" $dashmflag |
- sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove `-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- "$@" || exit $?
- IFS=" "
- for arg
- do
- case "$arg" in
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/admin/deps.am b/libs/taglib/admin/deps.am
deleted file mode 100644
index e8f5015889..0000000000
--- a/libs/taglib/admin/deps.am
+++ /dev/null
@@ -1,19 +0,0 @@
-$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
- @cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
-
-$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
- @cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
-
-$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
- @cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
-
-$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
- @cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
-
-$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
- @cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
-
-# defining default rules for files that may not be present
-$(top_srcdir)/Makefile.am.in:
-$(CONF_FILES):
-
diff --git a/libs/taglib/admin/detect-autoconf.pl b/libs/taglib/admin/detect-autoconf.pl
deleted file mode 100755
index 6b592ea8e9..0000000000
--- a/libs/taglib/admin/detect-autoconf.pl
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/usr/bin/env perl
-
-# Try to locate best version of auto*
-# By Michael Pyne <michael.pyne@kdemail.net>
-#
-# Copyright (c) 2005.
-# This code is public domain. You may use it however you like (including
-# relicensing).
-
-# Emulate the 'which' program.
-sub which
-{
- my $prog = shift;
- my @paths = split(/:/, $ENV{'PATH'});
-
- for $path (@paths)
- {
- return "$path/$prog" if -x "$path/$prog";
- }
-
- return "";
-}
-
-# Subroutine to lexicographically compare two version strings, a and b.
-# If a > b, 1 is returned.
-# If a == b, 0 is returned.
-# If a < b, -1 is returned.
-#
-# If the strings are of uneven number length then the shorter string is
-# prepended by enough zeroes to make the two string lengths equal in order to
-# allow an accurate comparison. Note that the zero-padding only occurs in
-# between version separators (i.e. 1.6 and 1.10, results in 1.06 vs. 1.10).
-# Parts of the version ending in -foo (or any other text) are not considered
-# when doing the compare. (i.e. 2.53a vs 2.53 doesn't end up in 2.53a vs.
-# 2.053)
-sub compareVersions
-{
- my ($a, $b) = @_;
-
- # Split the strings up by '.' (version separator) and start comparing digit
- # length.
-
- my @aParts = split(/\./, $a);
- my @bParts = split(/\./, $b);
-
- # Make the arrays equal in length by adding missing zeroes to the end of the
- # version.
- push @aParts, '0' while scalar @aParts < scalar @bParts;
- push @bParts, '0' while scalar @bParts < scalar @aParts;
-
- # Now compare each individual portion.
- for (my $i = 0; $i < scalar @aParts; ++$i)
- {
- # Make sure that any portion that has numbers is contiguous. I'm sure
- # there's a technique for saving stuff like 2.52a2 but I don't feel
- # like implementing it.
- if ($aParts[$i] !~ /^[^\d]*\d+[^\d]*$/ or
- $bParts[$i] !~ /^[^\d]*\d+[^\d]*$/)
- {
- die "Not able to compare $a to $b!\n";
- }
-
- my ($aDigits) = ($aParts[$i] =~ /(\d+)/);
- my ($bDigits) = ($bParts[$i] =~ /(\d+)/);
-
- # Perl is $MODERATELY_INSULTING_TERM, don't remove the parentheses in
- # the delta calculation below.
- my $delta = (length $aDigits) - (length $bDigits);
- if ($delta < 0) # b is longer
- {
- my $replacement = ('0' x (-$delta)) . $aDigits;
- $aParts[$i] =~ s/$aDigits/$replacement/;
- }
- elsif ($delta > 0) # a is longer
- {
- my $replacement = ('0' x $delta) . $bDigits;
- $bParts[$i] =~ s/$bDigits/$replacement/;
- }
- }
-
- # Arrays now have standardized version components, let's re-merge them
- # to strings to do the compare.
- my $newA = join('.', @aParts);
- my $newB = join('.', @bParts);
-
- return 1 if ($newA gt $newB);
- return -1 if ($newA lt $newB);
- return 0;
-}
-
-# Subroutine to determine the highest installed version of the given program,
-# searching from the given paths.
-sub findBest
-{
- my ($program, @paths) = @_;
- my $best_version_found = '0'; # Deliberately a string.
- my %versions;
- my %minimumVersions = (
- 'autoconf' => '2.5',
- 'automake' => '1.6',
- );
- my $sgn; # Used for compareVersions results.
-
- # Allow user to use environment variable to override search.
- return $ENV{uc $program} if $ENV{uc $program};
-
- for $prefix (@paths)
- {
- @files = glob "$prefix/$program*";
- for $file (@files)
- {
- # Don't check non-executable scripts.
- next unless -x $file;
-
- ($version) = $file =~ /$prefix\/$program-?(.*)$/;
-
- # Don't check the -wrapper ones (or any other non program one).
- # The real deal should start with a version number, or have no
- # suffix at all.
- next if $version =~ /^[^\d]/;
-
- # Special case some programs to make sure it has a minimum version.
- if (not $version and exists $minimumVersions{$program})
- {
- my $min_version = $minimumVersions{$program};
- my $versionOutput = `$program --version 2>/dev/null | head -n 1`;
-
- # If we can't run the script to get the version it likely won't work later.
- next unless $versionOutput;
-
- # Use number.number for version (we don't need the excess in general).
- ($versionOutput) = ($versionOutput =~ /(\d+\.\d+)/);
-
- # compareVersions returns -1 if the left argument is less than
- # the right argument. It can also die for invalid input so
- # wrap with eval.
- eval {
- $sgn = compareVersions($versionOutput, $min_version);
- };
-
- # $@ would be set if an error was encountered.
- if ($@ or not $versionOutput or $sgn == -1) {
- next;
- }
- }
-
- # If no version suffix then use it in favor of a versioned autotool
- # since the ever-popular WANT_AUTOFOO should then work (in theory).
- return $file unless $version;
-
- # Emulate 'which', and abort if we've already seen this version.
- next if exists $versions{$version};
-
- # Save filename of program.
- $versions{$version} = $file;
-
- # Use string comparison so that e.g. 253a will be > 253 but < 254.
- # See above about the need for eval.
- eval {
- $sgn = compareVersions($version, $best_version_found);
- };
-
- if (not $@ and $sgn == 1)
- {
- $best_version_found = $version;
- }
- }
- }
-
- return $versions{$best_version_found};
-}
-
-# Find an appropriate "which" program for later use by the shell script calling
-# us.
-sub findWhich
-{
- for $candidate ('type -p', 'which', 'type')
- {
- $test = `$candidate sh 2>/dev/null`;
- chomp $test;
-
- return $candidate if -x $test;
- }
-}
-
-# Uses which() to find a program unless the user provided its path in the
-# environment (the upper case program name is searched).
-sub findProgram
-{
- $suffix = ""; # For use if @_ has only one param.
- my ($program, $suffix) = @_;
-
- return $ENV{uc $program} if $ENV{uc $program};
- return which("$program$suffix");
-}
-
-# SCRIPT STARTS.
-
-# Search in path.
-@paths = split(/:/, $ENV{'PATH'});
-
-# Make sure at least /usr/bin and /usr/local/bin are in this search.
-unshift @paths, '/usr/local/bin' unless grep $_ eq '/usr/local/bin', @paths;
-unshift @paths, '/usr/bin' unless grep $_ eq '/usr/bin', @paths;
-
-$autoconf = findBest('autoconf', @paths);
-($autoconf_suffix) = $autoconf =~ /.*autoconf(.*)$/;
-
-# Find matching autoconf companions.
-$autoheader = findProgram('autoheader', $autoconf_suffix);
-$autom4te = findProgram('autom4te', $autoconf_suffix);
-
-# Get best automake, and look for unsermake to possibly override it.
-$automake = findBest('automake', @paths);
-$unsermake = "";
-# backward compatible: if $UNSERMAKE points to a path, use it
-$unsermake = findProgram('unsermake') if (defined($ENV{'UNSERMAKE'}) and $ENV{'UNSERMAKE'} =~ /\//);
-# new compatible: if it says 'yes', use the one from path
-$unsermake = which('unsermake') if ($ENV{'UNSERMAKE'} ne 'no');
-
-($automake_suffix) = $automake =~ /.*automake(.*)$/;
-
-# Use unsermake if we found it.
-$automake = "$unsermake -c" if $unsermake;
-
-# Find matching automake companions.
-$aclocal = findProgram('aclocal', $automake_suffix);
-
-$which = findWhich();
-
-# Make sure we have all of the needed programs.
-for $i (qw'autoconf autoheader autom4te automake aclocal')
-{
- unless(${$i})
- {
- print "# Unable to find $i!!\n";
- exit 1;
- }
-}
-
-# Print results in eval-able form.
-print <<EOF;
-AUTOCONF="$autoconf"
-AUTOHEADER="$autoheader"
-AUTOM4TE="$autom4te"
-
-AUTOMAKE="$automake"
-ACLOCAL="$aclocal"
-
-WHICH="$which"
-
-export AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE ACLOCAL WHICH
-EOF
-
-exit 0;
-
-# vim: set noet ts=8 sw=4:
diff --git a/libs/taglib/admin/doxygen.sh b/libs/taglib/admin/doxygen.sh
deleted file mode 100644
index 3e233d705d..0000000000
--- a/libs/taglib/admin/doxygen.sh
+++ /dev/null
@@ -1,883 +0,0 @@
-#! /bin/sh
-#
-# doxygen.sh Copyright (C) 2005 by Adriaan de Groot
-# Based on some code from Doxyfile.am, among other things.
-# License: GPL version 2.
-# See file COPYING in kdelibs for details.
-
-echo "*** doxygen.sh"
-
-# Recurse handling is a little complicated, since normally
-# subdir (given on the command-line) processing doesn't recurse
-# but you can force it to do so.
-recurse=1
-recurse_given=NO
-use_modulename=1
-cleanup=YES
-
-while test -n "$1" ; do
-case "x$1" in
-"x--no-cleanup" )
- cleanup=NO
- ;;
-"x--no-recurse" )
- recurse=0
- recurse_given=YES
- ;;
-"x--recurse" )
- recurse=1
- recurse_given=YES
- ;;
-"x--no-modulename" )
- use_modulename=0
- ;;
-"x--modulename" )
- use_modulename=1
- ;;
-"x--help" )
- echo "doxygen.sh usage:"
- echo "doxygen.sh [--no-recurse] [--no-modulename] <srcdir> [<subdir>]"
- exit 2
- ;;
-x--doxdatadir=* )
- DOXDATA=`echo $1 | sed -e 's+--doxdatadir=++'`
- ;;
-x--installdir=*)
- PREFIX=`echo $1 | sed -e 's+--installdir=++'`
- ;;
-x--* )
- echo "Unknown option: $1"
- exit 1
- ;;
-* )
- top_srcdir="$1"
- break
- ;;
-esac
-shift
-done
-
-
-### Sanity check the mandatory "top srcdir" argument.
-if test -z "$top_srcdir" ; then
- echo "Usage: doxygen.sh <top_srcdir>"
- exit 1
-fi
-if test ! -d "$top_srcdir" ; then
- echo "top_srcdir ($top_srcdir) is not a directory."
- exit 1
-fi
-
-### Normalize top_srcdir so it is an absolute path.
-if expr "x$top_srcdir" : "x/" > /dev/null ; then
- # top_srcdir is absolute already
- :
-else
- top_srcdir=`cd "$top_srcdir" 2> /dev/null && pwd`
- if test ! -d "$top_srcdir" ; then
- echo "top_srcdir ($top_srcdir) is not a directory."
- exit 1
- fi
-fi
-
-
-
-### Sanity check and guess QTDOCDIR.
-if test -z "$QTDOCDIR" ; then
- if test -z "$QTDIR" ; then
- for i in /usr/X11R6/share/doc/qt/html
- do
- QTDOCDIR="$i"
- test -d "$QTDOCDIR" && break
- done
- else
- for i in share/doc/qt/html doc/html
- do
- QTDOCDIR="$QTDIR/$i"
- test -d "$QTDOCDIR" && break
- done
- fi
-fi
-if test -z "$QTDOCDIR" || test ! -d "$QTDOCDIR" ; then
- if test -z "$QTDOCDIR" ; then
- echo "* QTDOCDIR could not be guessed."
- else
- echo "* QTDOCDIR does not name a directory."
- fi
- if test -z "$QTDOCTAG" ; then
- echo "* QTDOCDIR set to \"\""
- QTDOCDIR=""
- else
- echo "* But I'll use $QTDOCDIR anyway because of QTDOCTAG."
- fi
-fi
-
-### Get the "top srcdir", also its name, and handle the case that subdir "."
-### is given (which would be top_srcdir then, so it's equal to none-given
-### but no recursion either).
-###
-# top_srcdir="$1" # Already set by options processing
-module_name=`basename "$top_srcdir"`
-subdir="$2"
-if test "x." = "x$subdir" ; then
- subdir=""
- if test "x$recurse_given" = "xNO" ; then
- recurse=0
- fi
-fi
-if test "x" != "x$subdir" ; then
- # If no recurse option given explicitly, default to
- # no recurse when processing subdirs given on the command-line.
- if test "x$recurse_given" = "xNO" ; then
- recurse=0
- fi
-fi
-
-if test -z "$DOXDATA" || test ! -d "$DOXDATA" ; then
- if test -n "$DOXDATA" ; then
- echo "* \$DOXDATA is '$DOXDATA' which does not name a directory"
- fi
- DOXDATA="$top_srcdir/doc/common"
-fi
-
-if test ! -d "$DOXDATA" ; then
- echo "* \$DOXDATA does not name a directory ( or is unset ), tried \"$DOXDATA\""
- exit 1
-fi
-
-if test -n "$PREFIX" && test ! -d "$PREFIX" ; then
- echo "* \$PREFIX does not name a directory, tried \"$PREFIX\""
- echo "* \$PREFIX is disabled."
- PREFIX=""
-fi
-
-### We need some values from top-level files, which
-### are not preserved between invocations of this
-### script, so factor it out for easy use.
-create_doxyfile_in()
-{
- eval `grep 'VERSION="' "$top_srcdir/admin/cvs.sh"`
- echo "PROJECT_NUMBER = $VERSION" > Doxyfile.in
- grep '^KDE_INIT_DOXYGEN' "$top_srcdir/configure.in.in" | \
- sed -e 's+[^[]*\[\([^]]*\)+PROJECT_NAME = "\1"+' \
- -e 's+].*++' >> Doxyfile.in
-}
-
-apidoxdir="$module_name"-apidocs
-test "x$use_modulename" = "x0" && apidoxdir="apidocs"
-
-### If we're making the top subdir, create the structure
-### for the apidox and initialize it. Otherwise, just use the
-### structure assumed to be there.
-if test -z "$subdir" ; then
- if test ! -d "$apidoxdir" ; then
- mkdir "$apidoxdir" > /dev/null 2>&1
- fi
- cd "$apidoxdir" > /dev/null 2>&1 || {
- echo "Cannot create and cd into $apidoxdir"
- exit 1
- }
-
- test -f "Doxyfile.in" || create_doxyfile_in
-
- # Copy in logos and the like
- for i in "favicon.ico" "kde_gear_64.png"
- do
- cp "$DOXDATA/$i" . > /dev/null 2> /dev/null
- done
- for i in "$top_srcdir/doc/api/Dox-"*.png
- do
- T=`basename "$i" | sed -e 's+Dox-++'`
- test -f "$i" && cp "$i" "./$T" > /dev/null 2> /dev/null
- done
-
- top_builddir="."
- srcdir="$1"
- subdir="."
-else
- cd "$apidoxdir" > /dev/null 2>&1 || {
- echo "Cannot cd into $apidoxdir -- maybe you need to"
- echo "build the top-level dox first."
- exit 1
- }
-
- if test "x1" = "x$recurse" ; then
- # OK, so --recurse was requested
- if test ! -f "subdirs.top" ; then
- echo "* No subdirs.top available in the $apidoxdir."
- echo "* The --recurse option will be ignored."
- recurse=0
- fi
- fi
-fi
-
-### Read a single line (TODO: support \ continuations) from the Makefile.am.
-### Used to extract variable assignments from it.
-extract_line()
-{
- file="$2" ; test -z "$file" && file="$srcdir/Makefile.am"
- pattern=`echo "$1" | tr + .`
- grep "^$1" "$file" | \
- sed -e "s+$pattern.*=\s*++"
-}
-
-### Handle the COMPILE_{FIRST,LAST,BEFORE,AFTER} part of Makefile.am
-### in the toplevel. Copied from admin/cvs.sh. Licence presumed LGPL).
-create_subdirs()
-{
-echo "* Sorting top-level subdirs"
-dirs=
-idirs=
-if test -f "$top_srcdir/inst-apps"; then
- idirs=`cat "$top_srcdir/"inst-apps`
-else
- idirs=`cd "$top_srcdir" && ls -1 | sort`
-fi
-
-compilefirst=""
-compilelast=""
-if test -f "$top_srcdir/"Makefile.am.in ; then
- compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
- compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
-fi
-for i in $idirs; do
- if test -f "$top_srcdir/$i"/Makefile.am; then
- case " $compilefirst $compilelast " in
- *" $i "*) ;;
- *) dirs="$dirs $i"
- esac
- fi
-done
-
-: > ./_SUBDIRS
-
-for d in $compilefirst; do
- echo $d >> ./_SUBDIRS
-done
-
-(for d in $dirs; do
- list=""
- if test -f "$top_srcdir/"Makefile.am.in ; then
- list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
- fi
- for s in $list; do
- echo $s $d
- done
- list=""
- if test -f "$top_srcdir/"Makefile.am.in ; then
- list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
- fi
- for s in $list; do
- echo $d $s
- done
- echo $d $d
-done ) | tsort >> ./_SUBDIRS
-
-for d in $compilelast; do
- echo $d >> ./_SUBDIRS
-done
-
-test -r _SUBDIRS && mv _SUBDIRS subdirs.top || true
-}
-
-
-### Add HTML header, footer, CSS tags to Doxyfile.
-### Assumes $subdir is set. Argument is a string
-### to stick in front of the file if needed.
-apidox_htmlfiles()
-{
- dox_header="$top_srcdir/doc/api/$1header.html"
- dox_footer="$top_srcdir/doc/api/$1footer.html"
- dox_css="$top_srcdir/doc/api/doxygen.css"
- test -f "$dox_header" || dox_header="$DOXDATA/$1header.html"
- test -f "$dox_footer" || dox_footer="$DOXDATA/$1footer.html"
- test -f "$dox_css" || dox_css="$DOXDATA/doxygen.css"
-
- echo "HTML_HEADER = $dox_header" >> "$subdir/Doxyfile" ; \
- echo "HTML_FOOTER = $dox_footer" >> "$subdir/Doxyfile" ; \
- echo "HTML_STYLESHEET = $dox_css" >> "$subdir/Doxyfile"
-}
-
-apidox_specials()
-{
- line=`extract_line DOXYGEN_PROJECTNAME "$1"`
- test -n "$line" && echo "PROJECT_NAME = \"$line\"" >> "$2"
-}
-
-apidox_local()
-{
- for i in "$top_srcdir/doc/api/Doxyfile.local"
- do
- if test -f "$i" ; then
- cat "$i" >> "$subdir/Doxyfile"
- break
- fi
- done
-}
-
-### Post-process HTML files by substituting in the menu files
-#
-# In non-top directories, both <!-- menu --> and <!-- gmenu -->
-# are calculated and replaced. Top directories get an empty <!-- menu -->
-# if any.
-doxyndex()
-{
- # Special case top-level to have an empty MENU.
- if test "x$subdir" = "x." ; then
- MENU=""
- htmldir="."
- htmltop="$top_builddir" # Just ., presumably
- echo "* Post-processing top-level files"
- else
- MENU="<ul>"
- htmldir="$subdir/html"
- htmltop="$top_builddir.." # top_builddir ends with /
- echo "* Post-processing files in $htmldir"
-
- # Build a little PHP file that maps class names to file
- # names, for the quick-class-picker functionality.
- # (The quick-class-picker is disabled due to styling
- # problems in IE & FF).
- (
- echo "<?php \$map = array("; \
- for htmlfile in `find $htmldir/ -type f -name "class[A-Z]*.html" | grep -v "\-members.html$"`; do
- classname=`echo $htmlfile | sed -e "s,.*/class\\(.*\\).html,\1," -e "s,_1_1,::,g" -e "s,_01, ,g" -e "s,_4,>,g" -e "s+_00+,+g" -e "s+_3+<+g" | tr "[A-Z]" "[a-z]"`
- echo " \"$classname\" => \"$htmlfile\","
- done | sort ; \
- echo ") ?>"
- ) > "$subdir/classmap.inc"
-
- # This is a list of pairs, with / separators so we can use
- # basename and dirname (a crude shell hack) to split them
- # into parts. For each, if the file part exists (as a html
- # file) tack it onto the MENU variable as a <li> with link.
- for i in "Main Page/index" \
- "Modules/modules" \
- "Namespace List/namespaces" \
- "Class Hierarchy/hierarchy" \
- "Alphabetical List/classes" \
- "Class List/annotated" \
- "File List/files" \
- "Directories/dirs" \
- "Namespace Members/namespacemembers" \
- "Class Members/functions" \
- "Related Pages/pages"
- do
- NAME=`dirname "$i"`
- FILE=`basename "$i"`
- test -f "$htmldir/$FILE.html" && MENU="$MENU<li><a href=\"$FILE.html\">$NAME</a></li>"
- done
-
- MENU="$MENU</ul>"
- fi
-
-
- # Get the list of global Menu entries.
- GMENU=`cat subdirs | tr -d '\n'`
-
- PMENU=`grep '<!-- pmenu' "$htmldir/index.html" | sed -e 's+.*pmenu *++' -e 's+ *-->++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / <a href=\""; if (j==c) { printf("."); } for (k=j; k<c; k++) { printf "../"; } if (j<c) { printf("../html/index.html"); } printf "\">%s</a>\n" , a[j]; } }' | tr -d '\n'`
-
- # Map the PHP file into HTML options so that
- # it can be substituted in for the quick-class-picker.
- CMENU=""
- # For now, leave the CMENU disabled
- CMENUBEGIN="<!--"
- CMENUEND="-->"
-
- if test "x$subdir" = "x." ; then
- # Disable CMENU on toplevel anyway
- CMENUBEGIN="<!--"
- CMENUEND="-->"
- else
- test -f "$subdir/classmap.inc" && \
- CMENU=`grep '=>' "$subdir/classmap.inc" | sed -e 's+"\([^"]*\)" => "'"$subdir/html/"'\([^"]*\)"+<option value="\2">\1<\/option>+' | tr -d '\n'`
-
- if test -f "$subdir/classmap.inc" && grep "=>" "$subdir/classmap.inc" > /dev/null 2>&1 ; then
- # Keep the menu, it's useful
- :
- else
- CMENUBEGIN="<!--"
- CMENUEND="-->"
- fi
- fi
-
- # Now substitute in the MENU in every file. This depends
- # on HTML_HEADER (ie. header.html) containing the
- # <!-- menu --> comment.
- for i in "$htmldir"/*.html
- do
- if test -f "$i" ; then
- sed -e "s+<!-- menu -->+$MENU+" \
- -e "s+<!-- gmenu -->+$GMENU+" \
- -e "s+<!-- pmenu.*-->+$PMENU+" \
- -e "s+<!-- cmenu.begin -->+$CMENUBEGIN+" \
- -e "s+<!-- cmenu.end -->+$CMENUEND+" \
- < "$i" | sed -e "s+@topdir@+$htmltop+g" > "$i.new" && mv "$i.new" "$i"
- sed -e "s+<!-- cmenu -->+$CMENU+" < "$i" > "$i.new"
- test -s "$i.new" && mv "$i.new" "$i"
- fi
- done
-}
-
-
-
-
-
-
-### Handle the Doxygen processing of a toplevel directory.
-apidox_toplevel()
-{
- echo ""
- echo "*** Creating API documentation main page for $module_name"
- echo "*"
- rm -f "Doxyfile"
- for i in "$top_srcdir/doc/api/Doxyfile.global" \
- "$top_srcdir/admin/Doxyfile.global" \
- "$DOXDATA/Doxyfile.global"
- do
- if test -f "$i" ; then
- cp "$i" Doxyfile
- break
- fi
- done
-
- if test ! -f "Doxyfile" ; then
- echo "* Cannot create Doxyfile."
- exit 1
- fi
-
- cat "$top_builddir/Doxyfile.in" >> Doxyfile
-
-
- echo "INPUT = $top_srcdir" >> Doxyfile
- echo "OUTPUT_DIRECTORY = $top_builddir" >> Doxyfile ; \
- echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
- echo "RECURSIVE = NO" >> Doxyfile ; \
- echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
- echo "HTML_OUTPUT = ." >> Doxyfile ; \
- apidox_htmlfiles "main"
-
- # KDevelop has a top-level Makefile.am with settings.
- for i in "$top_srcdir/Makefile.am.in" "$top_srcdir/Makefile.am"
- do
- if test -f "$i" ; then
- grep '^DOXYGEN_SET_' "$i" | \
- sed -e 's+DOXYGEN_SET_++' -e "s+@topdir@+$top_srcdir+" >> Doxyfile
- apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
-
- break
- fi
- done
-
- apidox_local
-
- doxygen Doxyfile
-
- ( cd "$top_srcdir" && grep -l '^include.*Doxyfile.am' `find . -name Makefile.am` ) | sed -e 's+/Makefile.am$++' -e 's+^\./++' | sort > subdirs.in
- for i in `cat subdirs.in`
- do
- test "x." = "x$i" && continue;
-
- dir=`dirname "$i"`
- file=`basename "$i"`
- if test "x." = "x$dir" ; then
- dir=""
- else
- dir="$dir/"
- fi
- indent=`echo "$dir" | sed -e 's+[^/]*/+\&nbsp;\&nbsp;+g' | sed -e 's+&+\\\&+g'`
- entryname=`extract_line DOXYGEN_SET_PROJECT_NAME "$top_srcdir/$dir/$file/Makefile.am"`
- test -z "$entryname" && entryname="$file"
-
- if grep DOXYGEN_EMPTY "$top_srcdir/$dir/$file/Makefile.am" > /dev/null 2>&1 ; then
- echo "<li>$indent$file</li>"
- else
- echo "<li>$indent<a href=\"@topdir@/$dir$file/html/index.html\">$entryname</a></li>"
- fi
- done > subdirs
-
- doxyndex
-}
-
-### Handle the Doxygen processing of a non-toplevel directory.
-apidox_subdir()
-{
- echo ""
- echo "*** Creating apidox in $subdir"
- echo "*"
- rm -f "$subdir/Doxyfile"
- if test ! -d "$top_srcdir/$subdir" ; then
- echo "* No source (sub)directory $subdir"
- return
- fi
- for i in "$top_srcdir/doc/api/Doxyfile.global" \
- "$top_srcdir/admin/Doxyfile.global" \
- "$DOXDATA/Doxyfile.global"
- do
- if test -f "$i" ; then
- cp "$i" "$subdir/Doxyfile"
- break
- fi
- done
-
-
- test -f "Doxyfile.in" || create_doxyfile_in
- cat "Doxyfile.in" >> "$subdir/Doxyfile"
-
- echo "PROJECT_NAME = \"$subdir\"" >> "$subdir/Doxyfile"
- echo "INPUT = $srcdir" >> "$subdir/Doxyfile"
- echo "OUTPUT_DIRECTORY = ." >> "$subdir/Doxyfile"
- if grep -l "$subdir/" subdirs.in > /dev/null 2>&1 ; then
- echo "RECURSIVE = NO" >> "$subdir/Doxyfile"
- fi
- echo "HTML_OUTPUT = $subdir/html" >> "$subdir/Doxyfile"
- echo "GENERATE_TAGFILE = $subdir/$subdirname.tag" >> "$subdir/Doxyfile"
- test -d "$top_srcdir/doc/api" && \
- echo "IMAGE_PATH = $top_srcdir/doc/api" >> "$subdir/Doxyfile"
-
- apidox_htmlfiles ""
-
- # Makefile.ams may contain overrides to our settings,
- # so copy them in.
- grep '^DOXYGEN_SET_' "$srcdir/Makefile.am" | \
- sed -e 's+DOXYGEN_SET_++' >> "$subdir/Doxyfile"
- apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
-
- excludes=`extract_line DOXYGEN_EXCLUDE`
- if test -n "$excludes"; then
- patterns=""
- dirs=""
- for item in `echo "$excludes"`; do
- if test -d "$top_srcdir/$subdir/$item"; then
- dirs="$dirs $top_srcdir/$subdir/$item/"
- else
- patterns="$patterns $item"
- fi
- done
- echo "EXCLUDE_PATTERNS += $patterns" >> "$subdir/Doxyfile"
- echo "EXCLUDE += $dirs" >> "$subdir/Doxyfile"
- fi
-
- echo "TAGFILES = \\" >> "$subdir/Doxyfile"
- ## For now, don't support \ continued references lines
- tags=`extract_line DOXYGEN_REFERENCES`
- for i in $tags qt ; do
- tagsubdir=`dirname $i` ; tag=`basename $i`
- tagpath=""
- not_found=""
-
- if test "x$tagsubdir" = "x." ; then
- tagsubdir=""
- else
- tagsubdir="$tagsubdir/"
- fi
-
- # Find location of tag file
- if test -f "$tagsubdir$tag/$tag.tag" ; then
- file="$tagsubdir$tag/$tag.tag"
- loc="$tagsubdir$tag/html"
- else
- # This checks for dox built with_out_ --no-modulename
- # in the same build dir as this dox run was started in.
- file=`ls -1 ../*-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
-
- if test -n "$file" ; then
- loc=`echo "$file" | sed -e "s/$tag.tag\$/html/"`
- else
- # If the tag file doesn't exist yet, but should
- # because we have the right dirs here, queue
- # this directory for re-processing later.
- if test -d "$top_srcdir/$tagsubdir$tag" ; then
- echo "* Need to re-process $subdir for tag $i"
- echo "$subdir" >> "subdirs.later"
- else
- # Re-check in $PREFIX if needed.
- test -n "$PREFIX" && \
- file=`cd "$PREFIX" && \
- ls -1 *-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
-
- # If something is found, patch it up. The location must be
- # relative to the installed location of the dox and the
- # file must be absolute.
- if test -n "$file" ; then
- loc=`echo "../$file" | sed -e "s/$tag.tag\$/html/"`
- file="$PREFIX/$file"
- echo "* Tags for $tagsubdir$tag will only work when installed."
- not_found="YES"
- fi
- fi
- fi
- fi
- if test "$tag" = "qt" ; then
- if test -z "$QTDOCDIR" ; then
- echo " $file" >> "$subdir/Doxyfile"
- else
- if test -z "$file" ; then
- # Really no Qt tags
- echo "" >> "$subdir/Doxyfile"
- else
- echo " $file=$QTDOCDIR" >> "$subdir/Doxyfile"
- fi
- fi
- else
- if test -n "$file" ; then
- test -z "$not_found" && echo "* Found tag $file"
- echo " $file=../$top_builddir$loc \\" >> "$subdir/Doxyfile"
- fi
- fi
- done
-
- apidox_local
-
- if grep '^DOXYGEN_EMPTY' "$srcdir/Makefile.am" > /dev/null 2>&1 ; then
- # This directory is empty, so don't process it, but
- # *do* handle subdirs that might have dox.
- :
- else
- # Regular processing
- doxygen "$subdir/Doxyfile"
- doxyndex
- fi
-}
-
-### Run a given subdir by setting up global variables first.
-do_subdir()
-{
- subdir=`echo "$1" | sed -e 's+/$++'`
- srcdir="$top_srcdir/$subdir"
- subdirname=`basename "$subdir"`
- mkdir -p "$subdir" 2> /dev/null
- if test ! -d "$subdir" ; then
- echo "Can't create dox subdirectory $subdir"
- return
- fi
- top_builddir=`echo "/$subdir" | sed -e 's+/[^/]*+../+g'`
- apidox_subdir
-}
-
-
-### Create installdox-slow in the toplevel
-create_installdox()
-{
-# Fix up the installdox script so it accepts empty args
-#
-# This code is copied from the installdox generated by Doxygen,
-# copyright by Dimitri van Heesch and released under the GPL.
-# This does a _slow_ update of the dox, because it loops
-# over the given substitutions instead of assuming all the
-# needed ones are given.
-#
-cat <<\EOF
-#! /usr/bin/env perl
-
-%subst = () ;
-$quiet = 0;
-
-if (open(F,"search.cfg"))
-{
- $_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
- $_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
-}
-
-while ( @ARGV ) {
- $_ = shift @ARGV;
- if ( s/^-// ) {
- if ( /^l(.*)/ ) {
- $v = ($1 eq "") ? shift @ARGV : $1;
- ($v =~ /\/$/) || ($v .= "/");
- $_ = $v;
- if ( /(.+)\@(.+)/ ) {
- $subst{$1} = $2;
- } else {
- print STDERR "Argument $_ is invalid for option -l\n";
- &usage();
- }
- }
- elsif ( /^q/ ) {
- $quiet = 1;
- }
- elsif ( /^\?|^h/ ) {
- &usage();
- }
- else {
- print STDERR "Illegal option -$_\n";
- &usage();
- }
- }
- else {
- push (@files, $_ );
- }
-}
-
-
-if ( ! @files ) {
- if (opendir(D,".")) {
- foreach $file ( readdir(D) ) {
- $match = ".html";
- next if ( $file =~ /^\.\.?$/ );
- ($file =~ /$match/) && (push @files, $file);
- ($file =~ "tree.js") && (push @files, $file);
- }
- closedir(D);
- }
-}
-
-if ( ! @files ) {
- print STDERR "Warning: No input files given and none found!\n";
-}
-
-foreach $f (@files)
-{
- if ( ! $quiet ) {
- print "Editing: $f...\n";
- }
- $oldf = $f;
- $f .= ".bak";
- unless (rename $oldf,$f) {
- print STDERR "Error: cannot rename file $oldf\n";
- exit 1;
- }
- if (open(F,"<$f")) {
- unless (open(G,">$oldf")) {
- print STDERR "Error: opening file $oldf for writing\n";
- exit 1;
- }
- if ($oldf ne "tree.js") {
- while (<F>) {
- foreach $sub (keys %subst) {
- s/doxygen\=\"$sub\:([^ \"\t\>\<]*)\" (href|src)=\"\1/doxygen\=\"$sub:$subst{$sub}\" \2=\"$subst{$sub}/g;
- print G "$_";
- }
- }
- }
- else {
- while (<F>) {
- foreach $sub (keys %subst) {
- s/\"$sub\:([^ \"\t\>\<]*)\", \"\1/\"$sub:$subst{$sub}\" ,\"$subst{$sub}/g;
- print G "$_";
- }
- }
- }
- }
- else {
- print STDERR "Warning file $f does not exist\n";
- }
- unlink $f;
-}
-
-sub usage {
- print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
- print STDERR "Options:\n";
- print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
- print STDERR " -q Quiet mode\n\n";
- exit 1;
-}
-EOF
-}
-
-# Do only the subdirs that match the RE passed in as $1
-do_subdirs_re()
-{
- RE=`echo "$1" | sed -e 's+/$++'`
-
- # Here's a queue of dirs to re-process later when
- # all the rest have been done already.
- > subdirs.later
-
- # subdirs.top lists _all_ subdirs of top in the order they
- # should be handled; subdirs.in lists those dirs that contain
- # dox. So the intersection of the two is the ordered list
- # of top-level subdirs that contain dox.
- #
- # subdirs.top also doesn't contain ".", so that special
- # case can be ignored in the loop.
-
-
- (
- for i in `grep "^$RE" subdirs.top`
- do
- if test "x$i" = "x." ; then
- continue
- fi
- # Calculate intersection of this element and the
- # set of dox dirs.
- if grep "^$i\$" subdirs.in > /dev/null 2>&1 ; then
- echo "$i"
- mkdir -p "$i" 2> /dev/null
-
- # Handle the subdirs of this one
- for j in `grep "$i/" subdirs.in`
- do
- echo "$j"
- mkdir -p "$j" 2> /dev/null
- done
- fi
- done
-
- # Now we still need to handle whatever is left
- for i in `cat subdirs.in`
- do
- test -d "$i" || echo "$i"
- mkdir -p "$i" 2> /dev/null
- done
- ) > subdirs.sort
- for i in `cat subdirs.sort`
- do
- do_subdir "$i"
- done
-
- if test -s "subdirs.later" ; then
- sort subdirs.later | uniq > subdirs.sort
- for i in `cat subdirs.sort`
- do
- : > subdirs.later
- echo "*** Reprocessing $i"
- do_subdir "$i"
- test -s "subdirs.later" && echo "* Some tag files were still not found."
- done
- fi
-}
-
-if test "x." = "x$top_builddir" ; then
- apidox_toplevel
- create_subdirs
- create_installdox > installdox-slow
- if test "x$recurse" = "x1" ; then
- if test "x$module_name" = "xkdelibs" ; then
- if test -z "$QTDOCTAG" && test -d "$QTDOCDIR" && \
- test ! -f "qt/qt.tag" ; then
- # Special case: create a qt tag file.
- echo "*** Creating a tag file for the Qt library:"
- mkdir qt
- doxytag -t qt/qt.tag "$QTDOCDIR" > /dev/null 2>&1
- fi
- fi
- if test -n "$QTDOCTAG" && test -r "$QTDOCTAG" ; then
- echo "*** Copying tag file for the Qt library:"
- mkdir qt
- cp "$QTDOCTAG" qt/qt.tag
- fi
-
- do_subdirs_re "."
-
- fi
-else
- if test "x$recurse" = "x1" ; then
- do_subdirs_re "$subdir"
- else
- do_subdir "$subdir"
- fi
-fi
-
-
-# At the end of a run, clean up stuff.
-if test "YES" = "$cleanup" ; then
- rm -f subdirs.in subdirs.later subdirs.sort subdirs.top Doxyfile.in
- rm -f `find . -name Doxyfile`
- rm -f qt/qt.tag
- rmdir qt > /dev/null 2>&1
-fi
-
-
-exit 0
-
diff --git a/libs/taglib/admin/install-sh b/libs/taglib/admin/install-sh
deleted file mode 100755
index 0ae12c0ebe..0000000000
--- a/libs/taglib/admin/install-sh
+++ /dev/null
@@ -1,401 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2005-11-07.23
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. 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}"
-
-posix_glob=
-posix_mkdir=
-
-# Symbolic mode for testing mkdir with directories.
-# It is the same as 755, but also tests that "u+" works.
-test_mode=u=rwx,g=rx,o=rx,u+wx
-
-# Desired mode of installed file.
-mode=0755
-
-# Desired mode of newly created intermediate directories.
-# It is empty if not known yet.
-intermediate_mode=
-
-chmodcmd=$chmodprog
-chowncmd=
-chgrpcmd=
-stripcmd=
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=
-dst=
-dir_arg=
-dstarg=
-no_target_directory=
-
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
--c (ignored)
--d create directories instead of installing files.
--g GROUP $chgrpprog installed files to GROUP.
--m MODE $chmodprog installed files to MODE.
--o USER $chownprog installed files to USER.
--s $stripprog installed files.
--t DIRECTORY install into DIRECTORY.
--T report an error if DSTFILE is a directory.
---help display this help and exit.
---version display version info and exit.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
-"
-
-while test -n "$1"; do
- case $1 in
- -c) shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t) dstarg=$2
- shift
- shift
- continue;;
-
- -T) no_target_directory=true
- shift
- continue;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- *) # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- test -n "$dir_arg$dstarg" && break
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dstarg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dstarg"
- shift # fnord
- fi
- shift # arg
- dstarg=$arg
- done
- break;;
- esac
-done
-
-if test -z "$1"; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call `install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
-
-for src
-do
- # Protect names starting with `-'.
- case $src in
- -*) src=./$src ;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dstarg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
-
- dst=$dstarg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst ;;
- esac
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dstarg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'
- `
-
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- posix_mkdir=false
- if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
- posix_mkdir=true
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
- fi ;;
- esac
-
- if
- $posix_mkdir && {
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, create it using the same intermediate mode that
- # mkdir -p would use when creating intermediate directories.
- # POSIX says that this mode is "$(umask -S),u+wx", so use that
- # if umask -S works.
-
- if test -n "$dir_arg"; then
- mkdir_mode=$mode
- else
- case $intermediate_mode in
- '')
- if umask_S=`(umask -S) 2>/dev/null`; then
- intermediate_mode=$umask_S,u+wx
- else
- intermediate_mode=$test_mode
- fi ;;
- esac
- mkdir_mode=$intermediate_mode
- fi
-
- $mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
- }
- then :
- else
-
- # mkdir does not conform to POSIX, or it failed possibly due to
- # a race condition. Create the directory the slow way, step by
- # step, checking for races as we go.
-
- case $dstdir in
- /*) pathcomp=/ ;;
- -*) pathcomp=./ ;;
- *) pathcomp= ;;
- esac
-
- case $posix_glob in
- '')
- if (set -f) 2>/dev/null; then
- posix_glob=true
- else
- posix_glob=false
- fi ;;
- esac
-
- oIFS=$IFS
- IFS=/
- $posix_glob && set -f
- set fnord $dstdir
- shift
- $posix_glob && set +f
- IFS=$oIFS
-
- for d
- do
- test "x$d" = x && continue
-
- pathcomp=$pathcomp$d
- if test ! -d "$pathcomp"; then
- $mkdirprog "$pathcomp"
- # Don't fail if two instances are running concurrently.
- test -d "$pathcomp" || exit 1
- fi
- pathcomp=$pathcomp/
- done
- obsolete_mkdir_used=true
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- $doit $cpprog "$src" "$dsttmp" &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
-
- # Now rename the file to the real destination.
- { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
- || {
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
-
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- if test -f "$dst"; then
- $doit $rmcmd -f "$dst" 2>/dev/null \
- || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
- && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
- || {
- echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- else
- :
- fi
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- } || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/admin/libtool.m4.in b/libs/taglib/admin/libtool.m4.in
deleted file mode 100644
index 7f5eed6d83..0000000000
--- a/libs/taglib/admin/libtool.m4.in
+++ /dev/null
@@ -1,5891 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
-
-# serial 47 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 --silent'
-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 s/^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 M$VC,
-# 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 "$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="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
- ;;
- *)
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# 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
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _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 <<EOF
-[$]*
-EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-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*)
- LINUX_64_MODE="32"
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*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*)
- LINUX_64_MODE="64"
- 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
- ;;
-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}? :&$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
- if test ! -s conftest.err; 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 compiler 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
- 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
- testring="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;
- ;;
-
- *)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
- = "XX$testring") >/dev/null 2>&1 &&
- new_result=`expr "X$testring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- testring=$testring$testring
- done
- testring=
- # 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 <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- exit (status);
-}]
-EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_unknown|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"
- 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
- LDFLAGS="$LDFLAGS $link_static_flag"
- 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$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
- if test ! -s out/conftest.err; then
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_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
-
- # 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"; 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 dll's
-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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-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 GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- 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*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-mingw* | pw32*)
- # 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='win32_libid'
- ;;
-
-darwin* | rhapsody*)
- # this will be overwritten by pass_all, but leave it in just in case
- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- case "$host_os" in
- rhapsody* | darwin1.[[012]])
- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
- ;;
- *) # Darwin 1.3 on
- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
- ;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu)
- 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)/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
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- irix5* | nonstopux*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux*)
- case $host_cpu in
- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
- lt_cv_deplibs_check_method=pass_all ;;
- # the debian people say, arm and glibc 2.3.1 works for them with pass_all
- arm* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-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*)
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
- else
- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
- esac
- ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | 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_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/${ac_tool_prefix}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"
- 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 LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. 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 LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. 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 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.
-# 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([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-
-# 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
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
- case $host_os in
- sco3.2v5*)
- _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
- ;;
- esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
- AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
- if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then :
- else
- AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
- _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
- fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
- $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
- [],
- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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($1)
-
-# Report which librarie types wil 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*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- darwin* | rhapsody*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- _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 $compiler_flags $libobjs $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=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([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_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=cc
-
-# 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
-
-# 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
- 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
- unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -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
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- 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_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _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'
- # -bexpall does not export symbols beginning with underscore (_)
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- 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)=no
- _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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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 $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
-
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- 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 $compiler_flags $libobjs $deplibs -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 ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- 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)
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~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
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- ;;
- *)
- _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'
- ;;
- esac
- fi
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- *)
- _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*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- 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
- ia64*|hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC)
- # SGI C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- _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'
- ;;
- cxx)
- # Compaq C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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::"'
- ;;
- 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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
- ;;
- sco*)
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- case $cc_basename in
- CC)
- # 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
- ;;
- 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(no_undefined_flag, $1)=' -zdefs'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- _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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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
- ;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
- 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"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($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 <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- # 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 "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext|*.$libext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
- _LT_AC_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
- _LT_AC_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-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*)
- test "$enable_shared" = yes && enable_static=no
- ;;
-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])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-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($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\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.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars. Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- _LT_AC_TAGVAR(compiler, $1) \
- _LT_AC_TAGVAR(CC, $1) \
- _LT_AC_TAGVAR(LD, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
- _LT_AC_TAGVAR(old_archive_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
- _LT_AC_TAGVAR(predep_objects, $1) \
- _LT_AC_TAGVAR(postdep_objects, $1) \
- _LT_AC_TAGVAR(predeps, $1) \
- _LT_AC_TAGVAR(postdeps, $1) \
- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
- _LT_AC_TAGVAR(archive_cmds, $1) \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
- _LT_AC_TAGVAR(postinstall_cmds, $1) \
- _LT_AC_TAGVAR(postuninstall_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
- _LT_AC_TAGVAR(allow_undefined_flag, $1) \
- _LT_AC_TAGVAR(no_undefined_flag, $1) \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
- _LT_AC_TAGVAR(hardcode_automatic, $1) \
- _LT_AC_TAGVAR(module_cmds, $1) \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) \
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
- _LT_AC_TAGVAR(exclude_expsyms, $1) \
- _LT_AC_TAGVAR(include_expsyms, $1); do
-
- case $var in
- _LT_AC_TAGVAR(old_archive_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
- _LT_AC_TAGVAR(archive_cmds, $1) | \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(module_cmds, $1) | \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\[$]0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
- ;;
- esac
-
-ifelse([$1], [],
- [cfgfile="${ofile}T"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- $rm -f "$cfgfile"
- AC_MSG_NOTICE([creating $ofile])],
- [cfgfile="$ofile"])
-
- cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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 the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# 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'"
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris* | sysv5*)
- symcode='[[BDT]]'
- ;;
-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='[[ABCDGISTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # 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 <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if grep ' nm_test_var$' "$nlist" >/dev/null; then
- if grep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > 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 <<EOF >> 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)=
- ;;
- 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
- ;;
- 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)
- # 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)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_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)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
- case "$host_cpu" in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- 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)
- # 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'
- ;;
- 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*)
- ;;
- sco*)
- case $cc_basename in
- CC)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- *)
- ;;
- esac
- ;;
- 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
- ;;
- unixware*)
- ;;
- 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'
- ;;
-
- 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
- ;;
-
- 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 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'
- ;;
- 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'
- ;;
-
- sco3.2v5*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
- ;;
-
- solaris*)
- _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'
- ;;
-
- 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* | sysv5*)
- _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
- ;;
-
- 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
-])
-
-
-# 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 '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[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=
-
- 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
- ;;
- 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}'
-
- # 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 <<EOF 1>&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 <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we 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 <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${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)=no
- _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 '\''/^[[BCDGS]] /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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- ld_shlibs=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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${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)" = yes; then
- 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
- 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 "$link_static_flag"; 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
-
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- 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_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _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'
- # -bexpall does not export symbols beginning with underscore (_)
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${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
- ;;
-
- bsdi4*)
- _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)=no
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `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'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes ; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- 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_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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 $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- 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 $compiler_flags $libobjs $deplibs -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 ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _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)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- 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)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs~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* | hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- esac
- else
- case "$host_cpu" in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
- # 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(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
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${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 $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 ${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)=:
- ;;
-
- sco3.2v5*)
- _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)='${wl}-Bexport'
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- _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 $compiler_flags $libobjs $deplibs~$rm $lib.exp'
- else
- _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]].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- 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 $compiler_flags $libobjs $deplibs'
- 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.2uw2*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- fi
- runpath_var='LD_RUN_PATH'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv5*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- _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'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- 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
-
-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
-
-#
-# 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)
- 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 <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #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 <cygwin/cygwin_dll.h>
-# 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 && break
- 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])
-])
diff --git a/libs/taglib/admin/ltmain.sh b/libs/taglib/admin/ltmain.sh
deleted file mode 100644
index 27ee8c46f8..0000000000
--- a/libs/taglib/admin/ltmain.sh
+++ /dev/null
@@ -1,6389 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell, and then maybe $echo will work.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5a
-TIMESTAMP=" (1.1240 2003/06/26 06:55:19)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# 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'
-# test EBCDIC or ASCII
-case `echo A|tr A '\301'` in
- A) # EBCDIC based system
- SP2NL="tr '\100' '\n'"
- NL2SP="tr '\r\n' '\100\100'"
- ;;
- *) # Assume ASCII based system
- SP2NL="tr '\040' '\012'"
- NL2SP="tr '\015\012' '\040\040'"
- ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
- save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
- save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-: ${IFS=" "}
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- $echo "$modename: not configured to build any kind of library" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-win32_libid () {
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
- grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
- win32_nmres=`eval $NM -f posix -A $1 | \
- sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
- if test "X$win32_nmres" = "Ximport" ; then
- win32_libid_type="x86 archive import"
- else
- win32_libid_type="x86 archive static"
- fi
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $echo $win32_libid_type
-}
-
-# End of Shell function definitions
-#####################################
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
- arg="$1"
- shift
-
- case $arg in
- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- execute_dlfiles)
- execute_dlfiles="$execute_dlfiles $arg"
- ;;
- tag)
- tagname="$arg"
-
- # Check whether tagname contains only valid characters
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- $echo "$progname: invalid tag name: $tagname" 1>&2
- exit 1
- ;;
- esac
-
- case $tagname in
- CC)
- # Don't test for the "default" C tag, as we know, it's there, but
- # not specially marked.
- ;;
- *)
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
- taglist="$taglist $tagname"
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
- else
- $echo "$progname: ignoring unknown tag $tagname" 1>&2
- fi
- ;;
- esac
- ;;
- *)
- eval "$prev=\$arg"
- ;;
- esac
-
- prev=
- prevopt=
- continue
- fi
-
- # Have we seen a non-optional argument yet?
- case $arg in
- --help)
- show_help=yes
- ;;
-
- --version)
- $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
- $echo
- $echo "Copyright (C) 2003 Free Software Foundation, Inc."
- $echo "This is free software; see the source for copying conditions. There is NO"
- $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
- exit 0
- ;;
-
- --config)
- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
- done
- exit 0
- ;;
-
- --debug)
- $echo "$progname: enabling shell trace mode"
- set -x
- ;;
-
- --dry-run | -n)
- run=:
- ;;
-
- --features)
- $echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- $echo "enable shared libraries"
- else
- $echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- $echo "enable static libraries"
- else
- $echo "disable static libraries"
- fi
- exit 0
- ;;
-
- --finish) mode="finish" ;;
-
- --mode) prevopt="--mode" prev=mode ;;
- --mode=*) mode="$optarg" ;;
-
- --preserve-dup-deps) duplicate_deps="yes" ;;
-
- --quiet | --silent)
- show=:
- ;;
-
- --tag) prevopt="--tag" prev=tag ;;
- --tag=*)
- set tag "$optarg" ${1+"$@"}
- shift
- prev=tag
- ;;
-
- -dlopen)
- prevopt="-dlopen"
- prev=execute_dlfiles
- ;;
-
- -*)
- $echo "$modename: unrecognized option \`$arg'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-
- *)
- nonopt="$arg"
- break
- ;;
- esac
-done
-
-if test -n "$prevopt"; then
- $echo "$modename: option \`$prevopt' requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
-fi
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
- # Infer the operation mode.
- if test -z "$mode"; then
- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
- $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
- case $nonopt in
- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
- mode=link
- for arg
- do
- case $arg in
- -c)
- mode=compile
- break
- ;;
- esac
- done
- ;;
- *db | *dbx | *strace | *truss)
- mode=execute
- ;;
- *install*|cp|mv)
- mode=install
- ;;
- *rm)
- mode=uninstall
- ;;
- *)
- # If we have no mode, but dlfiles were specified, then do execute mode.
- test -n "$execute_dlfiles" && mode=execute
-
- # Just use the default operation mode.
- if test -z "$mode"; then
- if test -n "$nonopt"; then
- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
- else
- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
- fi
- fi
- ;;
- esac
- fi
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$execute_dlfiles" && test "$mode" != execute; then
- $echo "$modename: unrecognized option \`-dlopen'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$modename --help --mode=$mode' for more information."
-
- # These modes are in order of execution frequency so that they run quickly.
- case $mode in
- # libtool compile mode
- compile)
- modename="$modename: compile"
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_output=
- arg_mode=normal
- libobj=
-
- for arg
- do
- case "$arg_mode" in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- if test -n "$libobj" ; then
- $echo "$modename: you cannot specify \`-o' more than once" 1>&2
- exit 1
- fi
- arg_mode=target
- continue
- ;;
-
- -static)
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
-
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- lastarg="$lastarg $arg"
- done
- IFS="$save_ifs"
- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
- # Add the arguments to base_compile.
- base_compile="$base_compile $lastarg"
- continue
- ;;
-
- * )
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
- case $lastarg in
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- lastarg="\"$lastarg\""
- ;;
- esac
-
- base_compile="$base_compile $lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- $echo "$modename: you must specify an argument for -Xcompile"
- exit 1
- ;;
- target)
- $echo "$modename: you must specify a target with \`-o'" 1>&2
- exit 1
- ;;
- *)
- # Get the name of the library object.
- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- xform='[cCFSifmso]'
- case $libobj in
- *.ada) xform=ada ;;
- *.adb) xform=adb ;;
- *.ads) xform=ads ;;
- *.asm) xform=asm ;;
- *.c++) xform=c++ ;;
- *.cc) xform=cc ;;
- *.ii) xform=ii ;;
- *.class) xform=class ;;
- *.cpp) xform=cpp ;;
- *.cxx) xform=cxx ;;
- *.f90) xform=f90 ;;
- *.for) xform=for ;;
- *.java) xform=java ;;
- esac
-
- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
- case $libobj in
- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
- *)
- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
- exit 1
- ;;
- esac
-
- # Infer tagged configuration to use if any are available and
- # if one wasn't chosen via the "--tag" command line option.
- # Only attempt this if the compiler in the base compile
- # command doesn't match the default compiler.
- if test -n "$available_tags" && test -z "$tagname"; then
- case $base_compile in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
- case "$base_compile " in
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- $echo "$modename: unable to infer tagged configuration"
- $echo "$modename: specify a tag with \`--tag'" 1>&2
- exit 1
-# else
-# $echo "$modename: using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-
- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$obj"; then
- xdir=
- else
- xdir=$xdir/
- fi
- lobj=${xdir}$objdir/$objname
-
- if test -z "$base_compile"; then
- $echo "$modename: you must specify a compilation command" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- $run $rm $removelist
- trap "$run $rm $removelist; exit 1" 1 2 15
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- removelist="$removelist $output_obj $lockfile"
- trap "$run $rm $removelist; exit 1" 1 2 15
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $run ln "$0" "$lockfile" 2>/dev/null; do
- $show "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
- $echo $srcfile > "$lockfile"
- fi
-
- if test -n "$fix_srcfile_path"; then
- eval srcfile=\"$fix_srcfile_path\"
- fi
-
- $run $rm "$libobj" "${libobj}T"
-
- # Create a libtool object file (analogous to a ".la" file),
- # but don't create it if we're doing a dry run.
- test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $srcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $srcfile"
- fi
-
- if test ! -d "${xdir}$objdir"; then
- $show "$mkdir ${xdir}$objdir"
- $run $mkdir ${xdir}$objdir
- status=$?
- if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
- exit $status
- fi
- fi
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- command="$command -o $lobj"
- fi
-
- $run $rm "$lobj" "$output_obj"
-
- $show "$command"
- if $run eval "$command"; then :
- else
- test -n "$output_obj" && $run $rm $removelist
- exit 1
- fi
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- $show "$mv $output_obj $lobj"
- if $run $mv $output_obj $lobj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Append the name of the PIC object to the libtool object file.
- test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
- # Allow error messages only from the first compilation.
- suppress_output=' >/dev/null 2>&1'
- else
- # No PIC object so indicate it doesn't exist in the libtool
- # object file.
- test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $srcfile"
- else
- command="$base_compile $srcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- command="$command -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- command="$command$suppress_output"
- $run $rm "$obj" "$output_obj"
- $show "$command"
- if $run eval "$command"; then :
- else
- $run $rm $removelist
- exit 1
- fi
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- $show "$mv $output_obj $obj"
- if $run $mv $output_obj $obj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Append the name of the non-PIC object the libtool object file.
- # Only append if the libtool object file exists.
- test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
- else
- # Append the name of the non-PIC object the libtool object file.
- # Only append if the libtool object file exists.
- test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
- fi
-
- $run $mv "${libobj}T" "${libobj}"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- $run $rm "$lockfile"
- fi
-
- exit 0
- ;;
-
- # libtool link mode
- link | relink)
- modename="$modename: link"
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args="$nonopt"
- base_compile="$nonopt"
- compile_command="$nonopt"
- finalize_command="$nonopt"
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- add_flags=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
-
- avoid_version=no
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -all-static | -static)
- if test "X$arg" = "X-all-static"; then
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- else
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- fi
- build_libtool_libs=no
- build_old_libs=yes
- prefer_static_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- base_compile="$base_compile $arg"
- shift
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
- ;;
- *) qarg=$arg ;;
- esac
- libtool_args="$libtool_args $qarg"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- compile_command="$compile_command @OUTPUT@"
- finalize_command="$finalize_command @OUTPUT@"
- ;;
- esac
-
- case $prev in
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- compile_command="$compile_command @SYMFILE@"
- finalize_command="$finalize_command @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- else
- dlprefiles="$dlprefiles $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- if test ! -f "$arg"; then
- $echo "$modename: symbol file \`$arg' does not exist"
- exit 1
- fi
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat $save_arg`
- do
-# moreargs="$moreargs $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- # If there is no directory component, then add one.
- case $arg in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- if test -z "$pic_object" || \
- test -z "$non_pic_object" ||
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
- exit 1
- fi
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- libobjs="$libobjs $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- non_pic_objects="$non_pic_objects $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
- exit 1
- else
- # Dry-run case.
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
- libobjs="$libobjs $pic_object"
- non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- fi
- done
- else
- $echo "$modename: link input file \`$save_arg' does not exist"
- exit 1
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) rpath="$rpath $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) xrpath="$xrpath $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- xcompiler)
- compiler_flags="$compiler_flags $qarg"
- prev=
- compile_command="$compile_command $qarg"
- finalize_command="$finalize_command $qarg"
- continue
- ;;
- xlinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $wl$qarg"
- prev=
- compile_command="$compile_command $wl$qarg"
- finalize_command="$finalize_command $wl$qarg"
- continue
- ;;
- xcclinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $qarg"
- prev=
- compile_command="$compile_command $qarg"
- finalize_command="$finalize_command $qarg"
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
- finalize_command="$finalize_command $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
- continue
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: more than one -exported-symbols argument is not allowed"
- exit 1
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
- exit 1
- fi
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "*) ;;
- *)
- deplibs="$deplibs -L$dir"
- lib_search_path="$lib_search_path $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$dir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-pw32* | *-*-beos*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-mingw* | *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- deplibs="$deplibs System.ltframework"
- continue
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- deplibs="$deplibs $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # gcc -m* arguments should be passed to the linker via $compiler_flags
- # in order to pass architecture information to the linker
- # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
- # but this is not reliable with gcc because gcc may use -mfoo to
- # select a different linker, different libraries, etc, while
- # -Wl,-mfoo simply passes -mfoo to the linker.
- -m*)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- if test "$with_gcc" = "yes" ; then
- compiler_flags="$compiler_flags $arg"
- fi
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- # The PATH hackery in wrapper scripts is required on Windows
- # in order for the loader to find any dlls it needs.
- $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
- $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- continue
- ;;
-
- -static)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -Wc,*)
- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- case $flag in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- flag="\"$flag\""
- ;;
- esac
- arg="$arg $wl$flag"
- compiler_flags="$compiler_flags $flag"
- done
- IFS="$save_ifs"
- arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
- ;;
-
- -Wl,*)
- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- case $flag in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- flag="\"$flag\""
- ;;
- esac
- arg="$arg $wl$flag"
- compiler_flags="$compiler_flags $wl$flag"
- linker_flags="$linker_flags $flag"
- done
- IFS="$save_ifs"
- arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- add_flags="$add_flags $arg"
- ;;
-
- *.$objext)
- # A standard object.
- objs="$objs $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- # If there is no directory component, then add one.
- case $arg in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- if test -z "$pic_object" || \
- test -z "$non_pic_object" ||
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
- exit 1
- fi
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- libobjs="$libobjs $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- non_pic_objects="$non_pic_objects $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
- exit 1
- else
- # Dry-run case.
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
- libobjs="$libobjs $pic_object"
- non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- deplibs="$deplibs $arg"
- old_deplibs="$old_deplibs $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- dlfiles="$dlfiles $arg"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- dlprefiles="$dlprefiles $arg"
- prev=
- else
- deplibs="$deplibs $arg"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- add_flags="$add_flags $arg"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
- done # argument parsing loop
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Infer tagged configuration to use if any are available and
- # if one wasn't chosen via the "--tag" command line option.
- # Only attempt this if the compiler in the base link
- # command doesn't match the default compiler.
- if test -n "$available_tags" && test -z "$tagname"; then
- case $base_compile in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
- case $base_compile in
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
- # The compiler in $compile_command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- $echo "$modename: unable to infer tagged configuration"
- $echo "$modename: specify a tag with \`--tag'" 1>&2
- exit 1
-# else
-# $echo "$modename: using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$output_objdir" = "X$output"; then
- output_objdir="$objdir"
- else
- output_objdir="$output_objdir/$objdir"
- fi
- # Create the object directory.
- if test ! -d "$output_objdir"; then
- $show "$mkdir $output_objdir"
- $run $mkdir $output_objdir
- status=$?
- if test "$status" -ne 0 && test ! -d "$output_objdir"; then
- exit $status
- fi
- fi
-
- # Determine the type of output
- case $output in
- "")
- $echo "$modename: you must specify an output file" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- case $host in
- *cygwin* | *mingw* | *pw32*)
- # don't eliminate duplcations in $postdeps and $predeps
- duplicate_compiler_generated_deps=yes
- ;;
- *)
- duplicate_compiler_generated_deps=$duplicate_deps
- ;;
- esac
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- libs="$libs $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
- esac
- pre_post_deps="$pre_post_deps $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
- case $linkmode in
- lib)
- passes="conv link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
- exit 1
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
- for pass in $passes; do
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
- esac
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
- continue
- fi
- if test "$pass" = conv && test "$allow_undefined" = yes; then
- deplibs="$deplib $deplibs"
- continue
- fi
- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
- for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
- for search_ext in .la $shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if (${SED} -e '2q' $lib |
- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- library_names=
- old_library=
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$ladir" = "X$lib" && ladir="."
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- newdependency_libs="$deplib $newdependency_libs"
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- ;;
- *)
- $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la) lib="$deplib" ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- if test "$deplibs_check_method" != pass_all; then
- $echo
- $echo "*** Warning: Trying to link with static lib archive $deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because the file extensions .$libext of this argument makes me believe"
- $echo "*** that it is just a static archive that I should not used here."
- else
- $echo
- $echo "*** Warning: Linking the shared library $output against the"
- $echo "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- newdlprefiles="$newdlprefiles $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- newdlfiles="$newdlfiles $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
- if test "$found" = yes || test -f "$lib"; then :
- else
- $echo "$modename: cannot find the library \`$lib'" 1>&2
- exit 1
- fi
-
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
-
- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$ladir" = "X$lib" && ladir="."
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
-
- # Read the .la file
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Convert "-framework foo" to "foo.ltframework" in dependency_libs
- test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
- ;;
- esac
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- tmp_libs=
- for deplib in $dependency_libs; do
- #echo "Adding $deplib to \$deplibs"
- deplibs="$deplib $deplibs"
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
- exit 1
- fi
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $ladir/$objdir/$old_library"
- old_convenience="$old_convenience $ladir/$objdir/$old_library"
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- $echo "$modename: \`$lib' is not a convenience library" 1>&2
- exit 1
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
- linklib="$l"
- done
- if test -z "$linklib"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
- exit 1
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
- exit 1
- fi
- if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- dlprefiles="$dlprefiles $lib $dependency_libs"
- else
- newdlfiles="$newdlfiles $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
- abs_ladir="$ladir"
- fi
- ;;
- esac
- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- $echo "$modename: warning: library \`$lib' was moved." 1>&2
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$libdir"
- absdir="$libdir"
- fi
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- notinst_path="$notinst_path $abs_ladir"
- fi # $installed = yes
- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
- exit 1
- fi
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- newdlprefiles="$newdlprefiles $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- newdlprefiles="$newdlprefiles $dir/$dlname"
- else
- newdlprefiles="$newdlprefiles $dir/$linklib"
- fi
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- newlib_search_path="$newlib_search_path $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var"; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath " in
- *" $dir "*) ;;
- *" $absdir "*) ;;
- *) temp_rpath="$temp_rpath $dir" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- if test "$installed" = no; then
- notinst_deplibs="$notinst_deplibs $lib"
- need_relink=yes
- fi
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some systems (darwin)
- if test "$shouldnotlink" = yes && test "$pass" = link ; then
- $echo
- if test "$linkmode" = prog; then
- $echo "*** Warning: Linking the executable $output against the loadable module"
- else
- $echo "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $echo "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- realname="$2"
- shift; shift
- libname=`eval \\$echo \"$libname_spec\"`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw*)
- major=`expr $current - $age`
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
- newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- $show "extracting exported symbol list from \`$soname'"
- save_ifs="$IFS"; IFS='~'
- eval cmds=\"$extract_expsyms_cmds\"
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- $show "generating import library for \`$soname'"
- save_ifs="$IFS"; IFS='~'
- eval cmds=\"$old_archive_from_expsyms_cmds\"
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5* ) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a module then we can not link against it, someone
- # is ignoring the new warnings I added
- if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
- $echo "** Warning, lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- $echo
- $echo "** And there doesn't seem to be a static archive available"
- $echo "** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$dir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case "$libdir" in
- [\\/]*)
- add_dir="-L$inst_prefix_dir$libdir $add_dir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- $echo "$modename: configuration error: unsupported hardcode properties"
- exit 1
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes && \
- test "$hardcode_minus_L" != yes && \
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case "$libdir" in
- [\\/]*)
- add_dir="-L$inst_prefix_dir$libdir $add_dir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- $echo
- $echo "*** Warning: This system can not link to static lib archive $lib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- $echo "*** But as you try to build a module library, libtool will still create "
- $echo "*** a static module, that should work as long as the dlopening application"
- $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- $echo
- $echo "*** However, this would only work if libtool was able to extract symbol"
- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- $echo "*** not find such a program. So, this module is probably useless."
- $echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- convenience="$convenience $dir/$old_library"
- old_convenience="$old_convenience $dir/$old_library"
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- #if test -n "$dependency_libs" &&
- # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
- # test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) xrpath="$xrpath $temp_xrpath";;
- esac;;
- *) temp_deplibs="$temp_deplibs $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- #fi
-
- newlib_search_path="$newlib_search_path $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$deplib" && dir="."
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
- absdir="$dir"
- fi
- ;;
- esac
- if grep "^installed=no" $deplib > /dev/null; then
- path="$absdir/$objdir"
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- if test "$absdir" != "$libdir"; then
- # Sure, some shells/systems don't implement the -ef.
- # Those will have to live with the warning.
- test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
- fi
- path="$absdir"
- fi
- depdepl=
- case $host in
- *-*-darwin*)
- # we do not want to link against static libs, but need to link against shared
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$path/$depdepl" ; then
- depdepl="$path/$depdepl"
- fi
- # do not add paths which are already there
- case " $newlib_search_path " in
- *" $path "*) ;;
- *) newlib_search_path="$newlib_search_path $path";;
- esac
- path=""
- fi
- ;;
- *)
- path="-L$path"
- ;;
- esac
-
- ;;
- -l*)
- case $host in
- *-*-darwin*)
- # Again, we only want to link against shared libraries
- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
- for tmp in $newlib_search_path ; do
- if test -f "$tmp/lib$tmp_libs.dylib" ; then
- eval depdepl="$tmp/lib$tmp_libs.dylib"
- break
- fi
- done
- path=""
- ;;
- *) continue ;;
- esac
- ;;
-
- *.ltframework)
- case $host in
- *-*-darwin*)
- depdepl="$deplib"
- ;;
- esac
- ;;
-
- *) continue ;;
- esac
- case " $deplibs " in
- *" $depdepl "*) ;;
- *) deplibs="$deplibs $depdepl" ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$deplibs $path" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) lib_search_path="$lib_search_path $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- tmp_libs="$tmp_libs $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
- fi
-
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
- fi
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- objs="$objs$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
- eval shared_ext=\"$shrext\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- if test "$module" = no; then
- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- eval shared_ext=\"$shrext\"
- eval libname=\"$libname_spec\"
- else
- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
- exit 1
- else
- $echo
- $echo "*** Warning: Linking the shared library $output against the non-libtool"
- $echo "*** objects $objs is not portable!"
- libobjs="$libobjs $objs"
- fi
- fi
-
- if test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
- fi
-
- set dummy $rpath
- if test "$#" -gt 2; then
- $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
- fi
- install_libdir="$2"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
- fi
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- IFS="$save_ifs"
-
- if test -n "$8"; then
- $echo "$modename: too many parameters to \`-version-info'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$2"
- number_minor="$3"
- number_revision="$4"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- darwin|linux|osf|windows)
- current=`expr $number_major + $number_minor`
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- current=`expr $number_major + $number_minor - 1`
- age="$number_minor"
- revision="$number_minor"
- ;;
- esac
- ;;
- no)
- current="$2"
- revision="$3"
- age="$4"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case $revision in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case $age in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- minor_current=`expr $current + 1`
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current";
- ;;
-
- irix | nonstopux)
- major=`expr $current - $age + 1`
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- iface=`expr $revision - $loop`
- loop=`expr $loop - 1`
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux)
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- major=.`expr $current - $age`
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- iface=`expr $current - $loop`
- loop=`expr $loop - 1`
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- verstring="$verstring:${current}.0"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- major=`expr $current - $age`
- versuffix="-$major"
- ;;
-
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
- fi
-
- if test "$mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$echo "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *$exeext)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- removelist="$removelist $p"
- ;;
- *) ;;
- esac
- done
- if test -n "$removelist"; then
- $show "${rm}r $removelist"
- $run ${rm}r $removelist
- fi
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- for path in $notinst_path; do
- lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
- deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
- dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
- done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- temp_xrpath="$temp_xrpath -R$libdir"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) dlfiles="$dlfiles $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) dlprefiles="$dlprefiles $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- deplibs="$deplibs System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- deplibs="$deplibs -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $rm conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $rm conftest
- $LTCC -o conftest conftest.c $deplibs
- if test "$?" -eq 0 ; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- name="`expr $i : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" -ne "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- newdeplibs="$newdeplibs $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- deplib_matches=`eval \\$echo \"$library_names_spec\"`
- set dummy $deplib_matches
- deplib_match=$2
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- $echo
- $echo "*** Warning: dynamic linker does not accept needed library $i."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which I believe you do not have"
- $echo "*** because a test_compile did reveal that the linker did not use it for"
- $echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- else
- newdeplibs="$newdeplibs $i"
- fi
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- name="`expr $i : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
- $rm conftest
- $LTCC -o conftest conftest.c $i
- # Did it work?
- if test "$?" -eq 0 ; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- newdeplibs="$newdeplibs $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- deplib_matches=`eval \\$echo \"$library_names_spec\"`
- set dummy $deplib_matches
- deplib_match=$2
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- $echo
- $echo "*** Warning: dynamic linker does not accept needed library $i."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because a test_compile did reveal that the linker did not use this one"
- $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- $echo
- $echo "*** Warning! Library $i is needed by this library but I was not able to"
- $echo "*** make it link in! You will probably need to install it or some"
- $echo "*** library that it depends on before this library will be fully"
- $echo "*** functional. Installing it before continuing would be even better."
- fi
- else
- newdeplibs="$newdeplibs $i"
- fi
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method
- file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
- for a_deplib in $deplibs; do
- name="`expr $a_deplib : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null \
- | grep " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
- | ${SED} 10q \
- | $EGREP "$file_magic_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- $echo
- $echo "*** Warning: linker path does not have real file for library $a_deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $echo "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $echo "*** with $libname and none of the candidates passed a file format test"
- $echo "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- else
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- fi
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method
- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
- for a_deplib in $deplibs; do
- name="`expr $a_deplib : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test -n "$name" && test "$name" != "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval $echo \"$potent_lib\" 2>/dev/null \
- | ${SED} 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- $echo
- $echo "*** Warning: linker path does not have real file for library $a_deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $echo "*** with $libname and none of the candidates passed a file format test"
- $echo "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- else
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- fi
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
- -e 's/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
- done
- fi
- if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
- | grep . >/dev/null; then
- $echo
- if test "X$deplibs_check_method" = "Xnone"; then
- $echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- $echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- $echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- fi
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- $echo
- $echo "*** Warning: libtool could not satisfy all declared inter-library"
- $echo "*** dependencies of module $libname. Therefore, libtool will create"
- $echo "*** a static module, that should work as long as the dlopening"
- $echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- $echo
- $echo "*** However, this would only work if libtool was able to extract symbol"
- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- $echo "*** not find such a program. So, this module is probably useless."
- $echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- $echo "*** The inter-library dependencies that have been dropped here will be"
- $echo "*** automatically added whenever a program is linked with this library"
- $echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- $echo
- $echo "*** Since this library must not contain undefined symbols,"
- $echo "*** because either the platform does not support them or"
- $echo "*** it was explicitly requested with -no-undefined,"
- $echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- dep_rpath="$dep_rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- if test -n "$hardcode_libdir_flag_spec_ld"; then
- eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
- else
- eval dep_rpath=\"$hardcode_libdir_flag_spec\"
- fi
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- realname="$2"
- shift; shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- for link
- do
- linknames="$linknames $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
- eval cmds=\"$export_symbols_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- if len=`expr "X$cmd" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- $show "$cmd"
- $run eval "$cmd" || exit $?
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- $show "using reloadable object file for export list..."
- skipped_export=:
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex"; then
- $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
- $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- $show "$mv \"${export_symbols}T\" \"$export_symbols\""
- $run eval '$mv "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- tmp_deplibs="$tmp_deplibs $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- linker_flags="$linker_flags $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$mode" = relink; then
- $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
- fi
-
- # Add all flags from the command line. We here create a library,
- # but those flags were only added to compile_command and
- # finalize_command, which are only used when creating executables.
- # So do it by hand here.
- compiler_flags="$compiler_flags $add_flags"
- # Only add it to commands which use CC, instead of LD, i.e.
- # only to $compiler_flags
- #linker_flags="$linker_flags $add_flags"
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval cmds=\"$module_expsym_cmds\"
- else
- eval cmds=\"$module_cmds\"
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval cmds=\"$archive_expsym_cmds\"
- else
- eval cmds=\"$archive_cmds\"
- fi
- fi
-
- if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise.
- $echo "creating reloadable object files..."
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- delfiles=
- last_robj=
- k=1
- output=$output_objdir/$save_output-${k}.$objext
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- eval test_cmds=\"$reload_cmds $objlist $last_robj\"
- if test "X$objlist" = X ||
- { len=`expr "X$test_cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len"; }; then
- objlist="$objlist $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
- fi
- last_robj=$output_objdir/$save_output-${k}.$objext
- k=`expr $k + 1`
- output=$output_objdir/$save_output-${k}.$objext
- objlist=$obj
- len=1
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
- if ${skipped_export-false}; then
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
- fi
-
- # Set up a command to remove the reloadale object files
- # after they are used.
- i=0
- while test "$i" -lt "$k"
- do
- i=`expr $i + 1`
- delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
- done
-
- $echo "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval cmds=\"$archive_expsym_cmds\"
- else
- eval cmds=\"$archive_cmds\"
- fi
-
- # Append the command to remove the reloadable object files
- # to the just-reset $cmds.
- eval cmds=\"\$cmds~$rm $delfiles\"
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
- exit 0
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
- fi
-
- case $output in
- *.lo)
- if test -n "$objs$old_deplibs"; then
- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
- exit 1
- fi
- libobj="$output"
- obj=`$echo "X$output" | $Xsed -e "$lo2o"`
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $run $rm $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${obj}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- eval cmds=\"$reload_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $run eval "echo timestamp > $libobj" || exit $?
- exit 0
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- eval cmds=\"$reload_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- ;;
-
- prog)
- case $host in
- *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
- esac
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
- fi
-
- if test "$preload" = yes; then
- if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
- test "$dlopen_self_static" = unknown; then
- $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
- fi
- fi
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- if test "$tagname" = CXX ; then
- compile_command="$compile_command ${wl}-bind_at_load"
- finalize_command="$finalize_command ${wl}-bind_at_load"
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- compile_command="$compile_command $compile_deplibs"
- finalize_command="$finalize_command $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$libdir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- fi
-
- dlsyms=
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- dlsyms="${outputname}S.c"
- else
- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
- fi
- fi
-
- if test -n "$dlsyms"; then
- case $dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${outputname}.nm"
-
- $show "$rm $nlist ${nlist}S ${nlist}T"
- $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
- # Parse the name list into a source file.
- $show "creating $output_objdir/$dlsyms"
-
- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- $show "generating symbol list for \`$output'"
-
- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- for arg in $progfiles; do
- $show "extracting global C symbols from \`$arg'"
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- if test -n "$export_symbols_regex"; then
- $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$output.exp"
- $run $rm $export_symbols
- $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- else
- $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
- $run eval 'mv "$nlist"T "$nlist"'
- fi
- fi
-
- for arg in $dlprefiles; do
- $show "extracting global C symbols from \`$arg'"
- name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
- $run eval '$echo ": $name " >> "$nlist"'
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -z "$run"; then
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $mv "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if grep -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- grep -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
- else
- $echo '/* NONE */' >> "$output_objdir/$dlsyms"
- fi
-
- $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
- $echo >> "$output_objdir/$dlsyms" "\
- {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- fi
-
- pic_flag_for_symtable=
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
- esac;;
- *-*-hpux*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag";;
- esac
- esac
-
- # Now compile the dynamic symbol file.
- $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
- $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
- # Clean up the generated files.
- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
- # Transform the symbol file into the correct name.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- ;;
- *)
- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
- exit 1
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
- fi
-
- # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
- # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
- # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
- # This does not apply on AIX for ia64, which uses a SysV linker.
- case "$host" in
- ia64-*-aix5*) ;;
- *-*-aix4* | *-*-aix5*)
- compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
- finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
- esac
-
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- $show "$link_command"
- $run eval "$link_command"
- status=$?
-
- # Delete the generated files.
- if test -n "$dlsyms"; then
- $show "$rm $output_objdir/${outputname}S.${objext}"
- $run $rm "$output_objdir/${outputname}S.${objext}"
- fi
-
- exit $status
- fi
-
- if test -n "$shlibpath_var"; then
- # We should set the shlibpath_var
- rpath=
- for dir in $temp_rpath; do
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*)
- # Absolute path.
- rpath="$rpath$dir:"
- ;;
- *)
- # Relative path: add a thisdir entry.
- rpath="$rpath\$thisdir/$dir:"
- ;;
- esac
- done
- temp_rpath="$rpath"
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- rpath="$rpath$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $run $rm $output
- # Link the executable and exit
- $show "$link_command"
- $run eval "$link_command" || exit $?
- exit 0
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
- $echo "$modename: \`$output' will be relinked during installation" 1>&2
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- $show "$link_command"
- $run eval "$link_command" || exit $?
-
- # Now create the wrapper script.
- $show "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
- relink_command="$var=\"$var_value\"; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Quote $echo for shipping.
- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
- case $0 in
- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
- *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
- esac
- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
- else
- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Only actually do things if our run command is non-null.
- if test -z "$run"; then
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
- *) exeext= ;;
- esac
- case $host in
- *mingw* )
- cwrappersource=`$echo ${output_objdir}/lt-${outputname}.c`
- cwrapper=`$echo ${output}.exe`
- $rm $cwrappersource $cwrapper
- trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-
- cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-
- Currently, it simply execs the wrapper *script* "/bin/sh $output",
- but could eventually absorb all of the scripts functionality and
- exec $objdir/$outputname directly.
-*/
-EOF
- cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2
-#define DIR_SEPARATOR_2 '\\'
-#endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int i;
-
- program_name = (char *) xstrdup ((char *) basename (argv[0]));
- newargz = XMALLOC(char *, argc+2);
-EOF
-
- cat >> $cwrappersource <<EOF
- newargz[0] = "$SHELL";
-EOF
-
- cat >> $cwrappersource <<"EOF"
- newargz[1] = fnqualify(argv[0]);
- /* we know the script has the same name, without the .exe */
- /* so make sure newargz[1] doesn't end in .exe */
- strendzap(newargz[1],".exe");
- for (i = 1; i < argc; i++)
- newargz[i+1] = xstrdup(argv[i]);
- newargz[argc+1] = NULL;
-EOF
-
- cat >> $cwrappersource <<EOF
- execv("$SHELL",newargz);
-EOF
-
- cat >> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void * p = (void *) malloc (num);
- if (!p)
- lt_fatal ("Memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha (name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return (char *) base;
-}
-
-char *
-fnqualify(const char *path)
-{
- size_t size;
- char *p;
- char tmp[LT_PATHMAX + 1];
-
- assert(path != NULL);
-
- /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha (path[0]) && path[1] == ':')
- return xstrdup (path);
-#endif
- if (IS_DIR_SEPARATOR (path[0]))
- return xstrdup (path);
-
- /* prepend the current directory */
- /* doesn't handle '~' */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal ("getcwd failed");
- size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
- p = XMALLOC(char, size);
- sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
- return p;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert(str != NULL);
- assert(pat != NULL);
-
- len = strlen(str);
- patlen = strlen(pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp(str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
- const char * message, va_list ap)
-{
- fprintf (stderr, "%s: %s: ", program_name, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
- va_end (ap);
-}
-EOF
- # we should really use a build-platform specific compiler
- # here, but OTOH, the wrappers (shell script and this C one)
- # are only useful if you want to execute the "real" binary.
- # Since the "real" binary is built for $host, then this
- # wrapper might as well be built for $host, too.
- $run $LTCC -s -o $cwrapper $cwrappersource
- ;;
- esac
- $rm $output
- trap "$rm $output; exit 1" 1 2 15
-
- $echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variable:
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$echo are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- echo=\"$qecho\"
- file=\"\$0\"
- # Make sure echo works.
- if test \"X\$1\" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
- # Yippee, \$echo works!
- :
- else
- # Restart under the correct shell, and then maybe \$echo will work.
- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
- fi
- fi\
-"
- $echo >> $output "\
-
- # Find the directory that this script lives in.
- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
- done
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $echo >> $output "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" || \\
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $mkdir \"\$progdir\"
- else
- $rm \"\$progdir/\$file\"
- fi"
-
- $echo >> $output "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $echo \"\$relink_command_output\" >&2
- $rm \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $rm \"\$progdir/\$program\";
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $rm \"\$progdir/\$file\"
- fi"
- else
- $echo >> $output "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $echo >> $output "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $echo >> $output "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- # fixup the dll searchpath if we need to.
- if test -n "$dllsearchpath"; then
- $echo >> $output "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- $echo >> $output "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2*)
- $echo >> $output "\
- exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
- ;;
-
- *)
- # Need to set LD_LIBRARY_PATH, to the value already
- # computed within libtool.
- $echo >> $output "\
- LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$program \${1+\"\$@\"}
-"
- ;;
- esac
- $echo >> $output "\
- \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
- exit 1
- fi
- else
- # The program doesn't exist.
- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
- \$echo \"This script is just a wrapper for \$program.\" 1>&2
- $echo \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
- chmod +x $output
- fi
- exit 0
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- # Add in members from convenience archives.
- for xlib in $addlibs; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
- done
- fi
-
- compiler_flags="$compiler_flags $add_flags"
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- eval cmds=\"$old_archive_from_new_cmds\"
- else
- eval cmds=\"$old_archive_cmds\"
-
- if len=`expr "X$cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # the command line is too long to link in one step, link in parts
- $echo "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
- # encoded into archives. This makes 'ar r' malfunction in
- # this piecewise linking case whenever conflicting object
- # names appear in distinct ar calls; check, warn and compensate.
- if (for obj in $save_oldobjs
- do
- $echo "X$obj" | $Xsed -e 's%^.*/%%'
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
- AR_FLAGS=cq
- fi
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- for obj in $save_oldobjs
- do
- oldobjs="$objlist $obj"
- objlist="$objlist $obj"
- eval test_cmds=\"$old_archive_cmds\"
- if len=`expr "X$test_cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~$old_archive_cmds\"
- fi
- fi
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$generated"; then
- $show "${rm}r$generated"
- $run ${rm}r$generated
- fi
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- $show "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
- relink_command="$var=\"$var_value\"; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
- # Only create the output if not a dry run.
- if test -z "$run"; then
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdependency_libs="$newdependency_libs $libdir/$name"
- ;;
- *) newdependency_libs="$newdependency_libs $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
- for lib in $dlfiles; do
- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdlfiles="$newdlfiles $libdir/$name"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdlprefiles="$newdlprefiles $libdir/$name"
- done
- dlprefiles="$newdlprefiles"
- fi
- $rm $output
- # place dlname in correct position for cygwin
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
- esac
- $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
- $echo >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- fi
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
- ;;
- esac
- exit 0
- ;;
-
- # libtool install mode
- install)
- modename="$modename: install"
-
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
- # Aesthetically quote it.
- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$arg "
- arg="$1"
- shift
- else
- install_prog=
- arg="$nonopt"
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog$arg"
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- for arg
- do
- if test -n "$dest"; then
- files="$files $dest"
- dest="$arg"
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f) prev="-f" ;;
- -g) prev="-g" ;;
- -m) prev="-m" ;;
- -o) prev="-o" ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*) ;;
-
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- prev=
- else
- dest="$arg"
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog $arg"
- done
-
- if test -z "$install_prog"; then
- $echo "$modename: you must specify an install program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prev' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- $echo "$modename: no file or destination specified" 1>&2
- else
- $echo "$modename: you must specify a destination" 1>&2
- fi
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Strip any trailing slash from the destination.
- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
- test "X$destdir" = "X$dest" && destdir=.
- destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files
- if test "$#" -gt 2; then
- $echo "$modename: \`$dest' is not a directory" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- staticlibs="$staticlibs $file"
- ;;
-
- *.la)
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- library_names=
- old_library=
- relink_command=
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) current_libdirs="$current_libdirs $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) future_libdirs="$future_libdirs $libdir" ;;
- esac
- fi
-
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
- test "X$dir" = "X$file/" && dir=
- dir="$dir$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- if test "$inst_prefix_dir" = "$destdir"; then
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
- exit 1
- fi
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- $echo "$modename: warning: relinking \`$file'" 1>&2
- $show "$relink_command"
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- exit 1
- fi
- fi
-
- # See the names of the shared library.
- set dummy $library_names
- if test -n "$2"; then
- realname="$2"
- shift
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- $show "$install_prog $dir/$srcname $destdir/$realname"
- $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
- if test -n "$stripme" && test -n "$striplib"; then
- $show "$striplib $destdir/$realname"
- $run eval "$striplib $destdir/$realname" || exit $?
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- for linkname
- do
- if test "$linkname" != "$realname"; then
- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- fi
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- eval cmds=\"$postinstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Install the pseudo-library for information purposes.
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- instname="$dir/$name"i
- $show "$install_prog $instname $destdir/$name"
- $run eval "$install_prog $instname $destdir/$name" || exit $?
-
- # Maybe install the static library, too.
- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
-
- # Install the libtool object if requested.
- if test -n "$destfile"; then
- $show "$install_prog $file $destfile"
- $run eval "$install_prog $file $destfile" || exit $?
- fi
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
- $show "$install_prog $staticobj $staticdest"
- $run eval "$install_prog \$staticobj \$staticdest" || exit $?
- fi
- exit 0
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- file=`$echo $file|${SED} 's,.exe$,,'`
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin*|*mingw*)
- wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
- notinst_deplibs=
- relink_command=
-
- # To insure that "foo" is sourced, and not "foo.exe",
- # finese the cygwin/MSYS system by explicitly sourcing "foo."
- # which disallows the automatic-append-.exe behavior.
- case $build in
- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
- *) wrapperdot=${wrapper} ;;
- esac
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . ${wrapperdot} ;;
- *) . ./${wrapperdot} ;;
- esac
-
- # Check the variables that should have been set.
- if test -z "$notinst_deplibs"; then
- $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
- exit 1
- fi
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- # If there is no directory component, then add one.
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- fi
- libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
- finalize=no
- fi
- done
-
- relink_command=
- # To insure that "foo" is sourced, and not "foo.exe",
- # finese the cygwin/MSYS system by explicitly sourcing "foo."
- # which disallows the automatic-append-.exe behavior.
- case $build in
- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
- *) wrapperdot=${wrapper} ;;
- esac
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . ${wrapperdot} ;;
- *) . ./${wrapperdot} ;;
- esac
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- if test "$finalize" = yes && test -z "$run"; then
- tmpdir="/tmp"
- test -n "$TMPDIR" && tmpdir="$TMPDIR"
- tmpdir="$tmpdir/libtool-$$"
- if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
- else
- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
- continue
- fi
- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
- $show "$relink_command"
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- ${rm}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- $echo "$modename: warning: cannot relink \`$file'" 1>&2
- fi
- else
- # Install the binary that we compiled earlier.
- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyways
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
- ;;
- esac
- ;;
- esac
- $show "$install_prog$stripme $file $destfile"
- $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
- test -n "$outputname" && ${rm}r "$tmpdir"
- ;;
- esac
- done
-
- for file in $staticlibs; do
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
-
- $show "$install_prog $file $oldlib"
- $run eval "$install_prog \$file \$oldlib" || exit $?
-
- if test -n "$stripme" && test -n "$striplib"; then
- $show "$old_striplib $oldlib"
- $run eval "$old_striplib $oldlib" || exit $?
- fi
-
- # Do each command in the postinstall commands.
- eval cmds=\"$old_postinstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$future_libdirs"; then
- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
- fi
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- test -n "$run" && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $0 --finish$current_libdirs'
- else
- exit 0
- fi
- ;;
-
- # libtool finish mode
- finish)
- modename="$modename: finish"
- libdirs="$nonopt"
- admincmds=
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for dir
- do
- libdirs="$libdirs $dir"
- done
-
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- eval cmds=\"$finish_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || admincmds="$admincmds
- $cmd"
- done
- IFS="$save_ifs"
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $run eval "$cmds" || admincmds="$admincmds
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- exit 0
-
- $echo "----------------------------------------------------------------------"
- $echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $echo " $libdir"
- done
- $echo
- $echo "If you ever happen to want to link against installed libraries"
- $echo "in a given directory, LIBDIR, you must either use libtool, and"
- $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- $echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- $echo " during execution"
- fi
- if test -n "$runpath_var"; then
- $echo " - add LIBDIR to the \`$runpath_var' environment variable"
- $echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $echo " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $echo " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- $echo
- $echo "See any operating system documentation about shared libraries for"
- $echo "more information, such as the ld(1) and ld.so(8) manual pages."
- $echo "----------------------------------------------------------------------"
- exit 0
- ;;
-
- # libtool execute mode
- execute)
- modename="$modename: execute"
-
- # The first argument is the command name.
- cmd="$nonopt"
- if test -z "$cmd"; then
- $echo "$modename: you must specify a COMMAND" 1>&2
- $echo "$help"
- exit 1
- fi
-
- # Handle -dlopen flags immediately.
- for file in $execute_dlfiles; do
- if test ! -f "$file"; then
- $echo "$modename: \`$file' is not a file" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- dir=
- case $file in
- *.la)
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Read the libtool library.
- dlname=
- library_names=
-
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
-
- if test -f "$dir/$objdir/$dlname"; then
- dir="$dir/$objdir"
- else
- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
- exit 1
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
- ;;
-
- *)
- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -*) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
- args="$args \"$file\""
- done
-
- if test -z "$run"; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- if test "${save_LC_ALL+set}" = set; then
- LC_ALL="$save_LC_ALL"; export LC_ALL
- fi
- if test "${save_LANG+set}" = set; then
- LANG="$save_LANG"; export LANG
- fi
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
- $echo "export $shlibpath_var"
- fi
- $echo "$cmd$args"
- exit 0
- fi
- ;;
-
- # libtool clean and uninstall mode
- clean | uninstall)
- modename="$modename: $mode"
- rm="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) rm="$rm $arg"; rmforce=yes ;;
- -*) rm="$rm $arg" ;;
- *) files="$files $arg" ;;
- esac
- done
-
- if test -z "$rm"; then
- $echo "$modename: you must specify an RM program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- rmdirs=
-
- origobjdir="$objdir"
- for file in $files; do
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$dir" = "X$file"; then
- dir=.
- objdir="$origobjdir"
- else
- objdir="$dir/$origobjdir"
- fi
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- test "$mode" = uninstall && objdir="$dir"
-
- # Remember objdir for removal later, being careful to avoid duplicates
- if test "$mode" = clean; then
- case " $rmdirs " in
- *" $objdir "*) ;;
- *) rmdirs="$rmdirs $objdir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if (test -L "$file") >/dev/null 2>&1 \
- || (test -h "$file") >/dev/null 2>&1 \
- || test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- . $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- rmfiles="$rmfiles $objdir/$n"
- done
- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
- test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
- if test "$mode" = uninstall; then
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- eval cmds=\"$postuninstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
- exit_status=1
- fi
- done
- IFS="$save_ifs"
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- eval cmds=\"$old_postuninstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
- exit_status=1
- fi
- done
- IFS="$save_ifs"
- fi
- # FIXME: should reinstall the best remaining shared library.
- fi
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
- # Read the .lo file
- . $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" \
- && test "$pic_object" != none; then
- rmfiles="$rmfiles $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" \
- && test "$non_pic_object" != none; then
- rmfiles="$rmfiles $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- file=`$echo $file|${SED} 's,.exe$,,'`
- noexename=`$echo $name|${SED} 's,.exe$,,'`
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- rmfiles="$rmfiles $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- relink_command=
- . $dir/$noexename
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- rmfiles="$rmfiles $objdir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- rmfiles="$rmfiles $objdir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- $show "$rm $rmfiles"
- $run $rm $rmfiles || exit_status=1
- done
- objdir="$origobjdir"
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- $show "rmdir $dir"
- $run rmdir $dir >/dev/null 2>&1
- fi
- done
-
- exit $exit_status
- ;;
-
- "")
- $echo "$modename: you must specify a MODE" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
- ;;
- esac
-
- if test -z "$exec_cmd"; then
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
- fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
- eval exec $exec_cmd
- exit 1
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
- --config show all configuration variables
- --debug enable verbose shell tracing
--n, --dry-run display commands without modifying any files
- --features display basic configuration information and exit
- --finish same as \`--mode=finish'
- --help display this help message and exit
- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
- --quiet same as \`--silent'
- --silent don't print informational messages
- --tag=TAG use configuration variables from tag TAG
- --version print version information
-
-MODE must be one of the following:
-
- clean remove files from the build directory
- compile compile a source file into a libtool object
- execute automatically set library path, then run a program
- finish complete the installation of libtool libraries
- install install libraries or executables
- link create a library or an executable
- uninstall remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
- exit 0
- ;;
-
-clean)
- $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
-compile)
- $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -prefer-pic try to building PIC objects only
- -prefer-non-pic try to building non-PIC objects only
- -static always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
-execute)
- $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
-finish)
- $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
-install)
- $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
-link)
- $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
-uninstall)
- $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
-*)
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/libs/taglib/admin/missing b/libs/taglib/admin/missing
deleted file mode 100755
index 64b5f901dd..0000000000
--- a/libs/taglib/admin/missing
+++ /dev/null
@@ -1,353 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-
-scriptversion=2004-09-07.08
-
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, 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.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-msg="missing on your system"
-
-case "$1" in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-
-Send bug reports to <bug-automake@gnu.org>."
- exit 0
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit 0
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
- lex|yacc)
- # Not GNU programs, they don't have --version.
- ;;
-
- tar)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- tar)
- shift
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case "$firstarg" in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case "$firstarg" in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/admin/mkinstalldirs b/libs/taglib/admin/mkinstalldirs
deleted file mode 100755
index 259dbfcd35..0000000000
--- a/libs/taglib/admin/mkinstalldirs
+++ /dev/null
@@ -1,158 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2005-06-29.22
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage"
- exit $?
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --version)
- echo "$0 $scriptversion"
- exit $?
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error. This is a problem when calling mkinstalldirs
-# from a parallel make. We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
- '')
- if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- test -d ./-p && rmdir ./-p
- test -d ./--version && rmdir ./--version
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
- test ! -d ./--version; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- else
- # Clean up after NextStep and OpenStep mkdir.
- for d in ./-m ./-p ./--version "./$dirmode";
- do
- test -d $d && rmdir $d
- done
- fi
- ;;
-esac
-
-for file
-do
- case $file in
- /*) pathcomp=/ ;;
- *) pathcomp= ;;
- esac
- oIFS=$IFS
- IFS=/
- set fnord $file
- shift
- IFS=$oIFS
-
- for d
- do
- test "x$d" = x && continue
-
- pathcomp=$pathcomp$d
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp=$pathcomp/
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/admin/nmcheck b/libs/taglib/admin/nmcheck
deleted file mode 100755
index 15447131ec..0000000000
--- a/libs/taglib/admin/nmcheck
+++ /dev/null
@@ -1,371 +0,0 @@
-#!/usr/bin/perl -w
-
-# Check namespace cleanness of a library.
-# Allowed symbols are passed as arguments.
-# They may have trailing * = wildcard.
-# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
-# Symbols are listed as full function unmangled names without arguments,
-# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
-# and all symbols in namespace/class nspace.
-# If an argument has comma in it, it's a filename of a file containing
-# allowed symbols, one per line.
-
-
-$thisProg = "$0"; # This programs name
-
-$library = "";
-$allowed_symbols = "";
-$debug = 0;
-$allowed_weak = "";
-$weak_specified = 0;
-
-while( defined( $ARGV[ 0 ] ))
-{
- $_ = shift;
- if( /^--verbose$|^-v$/ )
- {
- $debug = 1;
- }
- elsif( /^--help$|^-h$/ )
- {
- print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
- "\n",
- "Check if the given library has only allowed public symbols.\n",
- "\n",
- " --allowweak=[symbol] allow only these weak symbols\n",
- " -v, --verbose verbosely list files processed\n",
- " -h, --help print this help, then exit\n";
- exit 0;
- }
- elsif( /^--allowweak=(.*)$/ )
- {
- $allowed_weak .= " " . $1;
- $weak_specified = 1;
- }
- elsif( /^--allowweak$/ ) # simply list all weak
- {
- $allowed_weak .= " ";
- $weak_specified = 1;
- }
- elsif( /^--*/ )
- {
- die "Invalid argument!\n";
- }
- else
- {
- if( ! $library )
- {
- $library = $_;
- }
- else
- {
- $allowed_symbols .= " " . $_;
- }
- }
-}
-
-if( ! $weak_specified )
-{
- $allowed_weak = "*";
- # allow all weak symbols by default
- # instances of templates and similar stuff - unfortunately includes also things from other libraries,
- # so it cannot be on by default
-}
-
-print STDERR "library:" . $library . "\n" if $debug;
-print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
-print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
-
-$default_symbols = "_fini _init"; # system symbols
-# on my system, every .so has :
-# A _DYNAMIC
-# A _GLOBAL_OFFSET_TABLE_
-# A __bss_start
-# A _edata
-# A _end
-# T _fini
-# T _init
-# no need to list A symbols in $default_symbols
-
-print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
-
-print STDOUT "Namespace cleanness check for " . $library . " :\n";
-
-$lib_file = "";
-if( $library =~ /\.la$/ )
-{
- # get the real library file from .la
- open( FILEIN, $library ) || die "Couldn't open $! !\n";
- while( $line = <FILEIN> )
- {
- if( $line =~ /library_names=\'([^ ]*).*/o )
- {
- $lib_file = $1;
- }
- }
- close( FILEIN );
- if( ! $lib_file )
- {
- print STDERR "Library file not found in .la file!\n";
- exit 1;
- }
- my $libpath = $library;
- $libpath =~ s%[^/]*$%%;
- if( -e $libpath . ".libs/" . $lib_file )
- {
- $lib_file = $libpath . ".libs/" . $lib_file;
- }
- else
- {
- $lib_file = $libpath . $lib_file;
- }
-}
-else
-{
- $lib_file = $library;
-}
-
-print STDERR "libfile: ". $lib_file . "\n" if $debug;
-
-$allowed_symbols .= " " . $default_symbols;
-
-sub process_symbols($\@\%\@);
-
-@wildcards = ();
-%exacts = ();
-@regwildcards = ();
-process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
-@weak_wildcards = ();
-%weak_exacts = ();
-@weak_regwildcards = ();
-process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
-
-# grep is for stripping not exported symbols, which don't have address (=first column)
-$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
-
-# TODO how portable is this nmcheck stuff?
-
-print STDERR "nm command:" . $nm_command . "\n" if $debug;
-
-open( FILEIN, $nm_command ) || die "nm command failed\n";
-
-my $exit_code = 0;
-
-while( $line = <FILEIN> )
-{
- my $type;
- my $symbol;
- if( $line =~ /^[^ ]* (.) (.*)$/o )
- {
- $type = $1;
- $symbol = $2;
- }
- else
- {
- die "Invalid line: " . $line . "\n";
- }
-
- print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
- if( $type eq "A" )
- { # these should be system symbols, so ignore them
- next;
- }
-
- my $orig_symbol = $symbol;
-
- if( $symbol =~ /\(anonymous namespace\)/o )
- { # TODO tell to prefer named namespaces? (shorter symbols)
- next;
- }
-
- # strip prefixes
- # the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
- $symbol =~ s/^typeinfo for (.*)$/$1::/o;
- $symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
- $symbol =~ s/^typeinfo name for (.*)$/$1::/o;
- $symbol =~ s/^vtable for (.*)$/$1::/o;
- $symbol =~ s/^guard variable for (.*)$/$1::/o;
- $symbol =~ s/^reference temporary for (.*)$/$1::/o;
- $symbol =~ s/^VTT for (.*)$/$1::/o;
- $symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
- $symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
- $symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
- $symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
- $symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
-
- # templates seem to have also return types mangled in their name, and nm prints it too
- # they have also template arguments in the symbol
- # get rid of both of those
- while( $symbol =~ /<.*>/o )
- {
- $symbol =~ s/<[^<>]*>//o; # strip innermost <>
- }
- if( $symbol !~ /operator\(\)/o )
- {
- $symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
- }
- else
- {
- $symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
- }
- $symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
- if( $symbol =~ /(^|:| )operator /o )
- {
- $symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
- }
- else
- {
- $symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
- }
-
- # print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
-
- my $found = 0;
- if( $exacts{ $symbol } )
- {
- $found = 1;
- }
- if( ! $found )
- {
- for my $wild ( @wildcards )
- {
- if( index( $symbol, $wild ) == 0 )
- {
- $found = 1;
- last;
- }
- }
- }
- if( ! $found )
- {
- for my $wild ( @regwildcards )
- {
- if( $symbol =~ /^$wild$/ )
- {
- $found = 1;
- last;
- }
- }
- }
- if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
- {
- if( $weak_exacts{ $symbol } )
- {
- $found = 1;
- }
- if( ! $found )
- {
- for my $wild ( @weak_wildcards )
- {
- if( index( $symbol, $wild ) == 0 )
- {
- $found = 1;
- last;
- }
- }
- }
- if( ! $found )
- {
- for my $wild ( @weak_regwildcards )
- {
- if( $symbol =~ /^$wild$/ )
- {
- $found = 1;
- last;
- }
- }
- }
- }
-
- if( ! $found )
- {
- print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
- $exit_code = 1;
- }
-}
-
-close( FILEIN );
-
-print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
-
-exit $exit_code;
-
-sub process_symbols($\@\%\@)
-{
- my $allowed_symbols = $_[ 0 ];
- my $wildcards_ref = $_[ 1 ];
- my $exacts_ref = $_[ 2 ];
- my $regwildcards_ref = $_[ 3 ];
-
- $allowed_symbols =~ s/^ *//o; # strip whitespace
- $allowed_symbols =~ s/ *$//o;
-
- if( $allowed_symbols eq "NONE" )
- {
- $allowed_symbols = "";
- }
-
- my @symbols1 = split( ' ', $allowed_symbols );
- my $i = 0;
- my @symbols2 = ();
- while( defined( $symbols1[ $i ] ))
- {
- my $symbol = $symbols1[ $i ];
- if( $symbol =~ /\./ ) # dot in name -> file
- {
- open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
- while( $line = <SYMIN> )
- {
- $line =~ s/^\s*//o; # strip whitespace
- $line =~ s/\s*$//o;
- if( $line !~ /^$/o # empty line
- && $line !~ /^\s*#/ ) # comment line starting with #
- {
- $symbols2[ $#symbols2 + 1 ] = $line;
- }
- }
- close( SYMIN );
- }
- else
- {
- $symbols2[ $#symbols2 + 1 ] = $symbol;
- }
- $i++;
- }
- $i = 0;
- while( defined( $symbols2[ $i ] ))
- {
- my $symbol = $symbols2[ $i ];
- if( $symbol =~ /__/
- || $symbol =~ /^_[A-Z]/ )
- { # ISO C++ 2.10.2
- die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
- }
- elsif( $symbol eq "main"
- || $symbol eq "main*" )
- {
- die "Symbol main is not allowed!\n";
- }
- if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
- && $symbol !~ /operator\*$/o )
- {
- print STDERR "wildcard:" . $symbol . "\n" if $debug;
- $wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
- }
- elsif( $symbol =~ /\*$/o
- && ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
- && $symbol !~ /^\*/o
- && $symbol !~ /operator\*$/o )
- {
- print STDERR "regwildcard:" . $symbol . "\n" if $debug;
- $symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
- $regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
- }
- else
- {
- print STDERR "exact:" . $symbol . "\n" if $debug;
- $exacts_ref->{ $symbol } = 1;
- }
- $i++;
- }
-}
diff --git a/libs/taglib/admin/oldinclude.m4.in b/libs/taglib/admin/oldinclude.m4.in
deleted file mode 100644
index 0ed7bcf62f..0000000000
--- a/libs/taglib/admin/oldinclude.m4.in
+++ /dev/null
@@ -1,192 +0,0 @@
-### -*- autoconf -*-
-
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
-dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-dnl Boston, MA 02110-1301, USA.
-
-AC_DEFUN([KDE_CHECK_MICO],
-[
-AC_REQUIRE([KDE_CHECK_LIBDL])
-AC_REQUIRE([KDE_MISC_TESTS])
-AC_MSG_CHECKING(for MICO)
-
-if test -z "$MICODIR"; then
- kde_micodir=/usr/local
- else
- kde_micodir="$MICODIR"
-fi
-
-AC_ARG_WITH(micodir,
- [ --with-micodir=micodir where mico is installed ],
- kde_micodir=$withval,
- kde_micodir=$kde_micodir
-)
-
-AC_CACHE_VAL(kde_cv_mico_incdir,
-[
- mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
-AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
-
-])
-kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
-
-if test ! -r $kde_micodir/include/CORBA.h; then
- AC_MSG_ERROR([No CORBA.h found, specify another micodir])
-fi
-
-AC_MSG_RESULT($kde_micodir)
-
-MICO_INCLUDES=-I$kde_micodir/include
-AC_SUBST(MICO_INCLUDES)
-MICO_LDFLAGS=-L$kde_micodir/lib
-AC_SUBST(MICO_LDFLAGS)
-micodir=$kde_micodir
-AC_SUBST(micodir)
-
-AC_MSG_CHECKING([for MICO version])
-AC_CACHE_VAL(kde_cv_mico_version,
-[
-AC_LANG_C
-cat >conftest.$ac_ext <<EOF
-#include <stdio.h>
-#include <mico/version.h>
-int main() {
-
- printf("MICO_VERSION=%s\n",MICO_VERSION);
- return (0);
-}
-EOF
-ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
-if AC_TRY_EVAL(ac_compile); then
- if eval `./conftest 2>&5`; then
- kde_cv_mico_version=$MICO_VERSION
- else
- AC_MSG_ERROR([your system is not able to execute a small application to
- find MICO version! Check $kde_micodir/include/mico/version.h])
- fi
-else
- AC_MSG_ERROR([your system is not able to compile a small application to
- find MICO version! Check $kde_micodir/include/mico/version.h])
-fi
-])
-
-dnl installed MICO version
-mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
-mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
-mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
-
-if test "x$1" = "x"; then
- req_version="2.3.0"
-else
- req_version=$1
-fi
-
-dnl required MICO version
-req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
-req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
-req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
-
-if test "$mico_v_maj" -lt "$req_v_maj" || \
- ( test "$mico_v_maj" -eq "$req_v_maj" && \
- test "$mico_v_mid" -lt "$req_v_mid" ) || \
- ( test "$mico_v_mid" -eq "$req_v_mid" && \
- test "$mico_v_min" -lt "$req_v_min" )
-
-then
- AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
-at least is required. You should upgrade MICO.])
-else
- AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
-fi
-
-LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
-AC_SUBST(LIBMICO)
-if test -z "$IDL"; then
- IDL='$(kde_bindir)/cuteidl'
-fi
-AC_SUBST(IDL)
-IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
-AC_SUBST(IDL_DEPENDENCIES)
-
-idldir="\$(includedir)/idl"
-AC_SUBST(idldir)
-
-])
-
-AC_DEFUN([KDE_CHECK_MINI_STL],
-[
-AC_REQUIRE([KDE_CHECK_MICO])
-
-AC_MSG_CHECKING(if we use mico's mini-STL)
-AC_CACHE_VAL(kde_cv_have_mini_stl,
-[
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-kde_save_cxxflags="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
-AC_TRY_COMPILE(
-[
-#include <mico/config.h>
-],
-[
-#ifdef HAVE_MINI_STL
-#error "nothing"
-#endif
-],
-kde_cv_have_mini_stl=no,
-kde_cv_have_mini_stl=yes)
-CXXFLAGS="$kde_save_cxxflags"
-AC_LANG_RESTORE
-])
-
-if test "x$kde_cv_have_mini_stl" = "xyes"; then
- AC_MSG_RESULT(yes)
- $1
-else
- AC_MSG_RESULT(no)
- $2
-fi
-])
-
-])
-
-AC_DEFUN([KDE_CHECK_ANSI],
-[
-])
-
-AC_DEFUN([KDE_CHECK_INSURE],
-[
- AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
- [
- if test $enableval = "no"; dnl
- then ac_use_insure="no"
- else ac_use_insure="yes"
- fi
- ], [ac_use_insure="no"])
-
- AC_MSG_CHECKING(if we will use Insure++ to debug)
- AC_MSG_RESULT($ac_use_insure)
- if test "$ac_use_insure" = "yes"; dnl
- then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
- fi
-])
-
-AC_DEFUN([KDE_CHECK_NEWLIBS],
-[
-
-])
diff --git a/libs/taglib/admin/pkg.m4.in b/libs/taglib/admin/pkg.m4.in
deleted file mode 100644
index f2bfc2d49f..0000000000
--- a/libs/taglib/admin/pkg.m4.in
+++ /dev/null
@@ -1,57 +0,0 @@
-
-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/libs/taglib/admin/ylwrap b/libs/taglib/admin/ylwrap
deleted file mode 100755
index 102bd893f7..0000000000
--- a/libs/taglib/admin/ylwrap
+++ /dev/null
@@ -1,223 +0,0 @@
-#! /bin/sh
-# ylwrap - wrapper for lex/yacc invocations.
-
-scriptversion=2005-05-14.22
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, 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.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-case "$1" in
- '')
- echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
- exit 1
- ;;
- --basedir)
- basedir=$2
- shift 2
- ;;
- -h|--h*)
- cat <<\EOF
-Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
-
-Wrapper for lex/yacc invocations, renaming files as desired.
-
- INPUT is the input file
- OUTPUT is one file PROG generates
- DESIRED is the file we actually want instead of OUTPUT
- PROGRAM is program to run
- ARGS are passed to PROG
-
-Any number of OUTPUT,DESIRED pairs may be used.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v|--v*)
- echo "ylwrap $scriptversion"
- exit $?
- ;;
-esac
-
-
-# The input.
-input="$1"
-shift
-case "$input" in
- [\\/]* | ?:[\\/]*)
- # Absolute path; do nothing.
- ;;
- *)
- # Relative path. Make it absolute.
- input="`pwd`/$input"
- ;;
-esac
-
-pairlist=
-while test "$#" -ne 0; do
- if test "$1" = "--"; then
- shift
- break
- fi
- pairlist="$pairlist $1"
- shift
-done
-
-# The program to run.
-prog="$1"
-shift
-# Make any relative path in $prog absolute.
-case "$prog" in
- [\\/]* | ?:[\\/]*) ;;
- *[\\/]*) prog="`pwd`/$prog" ;;
-esac
-
-# FIXME: add hostname here for parallel makes that run commands on
-# other machines. But that might take us over the 14-char limit.
-dirname=ylwrap$$
-trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
-mkdir $dirname || exit 1
-
-cd $dirname
-
-case $# in
- 0) $prog "$input" ;;
- *) $prog "$@" "$input" ;;
-esac
-ret=$?
-
-if test $ret -eq 0; then
- set X $pairlist
- shift
- first=yes
- # Since DOS filename conventions don't allow two dots,
- # the DOS version of Bison writes out y_tab.c instead of y.tab.c
- # and y_tab.h instead of y.tab.h. Test to see if this is the case.
- y_tab_nodot="no"
- if test -f y_tab.c || test -f y_tab.h; then
- y_tab_nodot="yes"
- fi
-
- # The directory holding the input.
- input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
- # Quote $INPUT_DIR so we can use it in a regexp.
- # FIXME: really we should care about more than `.' and `\'.
- input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
-
- while test "$#" -ne 0; do
- from="$1"
- # Handle y_tab.c and y_tab.h output by DOS
- if test $y_tab_nodot = "yes"; then
- if test $from = "y.tab.c"; then
- from="y_tab.c"
- else
- if test $from = "y.tab.h"; then
- from="y_tab.h"
- fi
- fi
- fi
- if test -f "$from"; then
- # If $2 is an absolute path name, then just use that,
- # otherwise prepend `../'.
- case "$2" in
- [\\/]* | ?:[\\/]*) target="$2";;
- *) target="../$2";;
- esac
-
- # We do not want to overwrite a header file if it hasn't
- # changed. This avoid useless recompilations. However the
- # parser itself (the first file) should always be updated,
- # because it is the destination of the .y.c rule in the
- # Makefile. Divert the output of all other files to a temporary
- # file so we can compare them to existing versions.
- if test $first = no; then
- realtarget="$target"
- target="tmp-`echo $target | sed s/.*[\\/]//g`"
- fi
- # Edit out `#line' or `#' directives.
- #
- # We don't want the resulting debug information to point at
- # an absolute srcdir; it is better for it to just mention the
- # .y file with no path.
- #
- # We want to use the real output file name, not yy.lex.c for
- # instance.
- #
- # We want the include guards to be adjusted too.
- FROM=`echo "$from" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
- TARGET=`echo "$2" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
-
- sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
- -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
-
- # Check whether header files must be updated.
- if test $first = no; then
- if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
- echo "$2" is unchanged
- rm -f "$target"
- else
- echo updating "$2"
- mv -f "$target" "$realtarget"
- fi
- fi
- else
- # A missing file is only an error for the first file. This
- # is a blatant hack to let us support using "yacc -d". If -d
- # is not specified, we don't want an error when the header
- # file is "missing".
- if test $first = yes; then
- ret=1
- fi
- fi
- shift
- shift
- first=no
- done
-else
- ret=$?
-fi
-
-# Remove the directory.
-cd ..
-rm -rf $dirname
-
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/libs/taglib/bindings/CMakeLists.txt b/libs/taglib/bindings/CMakeLists.txt
deleted file mode 100644
index 0afe119564..0000000000
--- a/libs/taglib/bindings/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-ADD_SUBDIRECTORY( c )
diff --git a/libs/taglib/bindings/Makefile.am b/libs/taglib/bindings/Makefile.am
deleted file mode 100644
index 6f20b92e0b..0000000000
--- a/libs/taglib/bindings/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = c
diff --git a/libs/taglib/bindings/Makefile.in b/libs/taglib/bindings/Makefile.in
deleted file mode 100644
index 2238169484..0000000000
--- a/libs/taglib/bindings/Makefile.in
+++ /dev/null
@@ -1,606 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = bindings
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = c
-#>- all: all-recursive
-#>+ 1
-all: docs-am all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu bindings/Makefile
-#>+ 12
- @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 bindings/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu bindings/Makefile
- cd $(top_srcdir) && perl admin/am_edit bindings/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-#>- clean: clean-recursive
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libtool mostlyclean-am
-#>+ 1
-clean-am: clean-bcheck clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- ctags ctags-recursive distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 bindings/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu bindings/Makefile
- cd $(top_srcdir) && perl admin/am_edit bindings/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in ; do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 3
-final:
- $(MAKE) all-am
-
-#>+ 3
-final-install:
- $(MAKE) install-am
-
-#>+ 3
-no-final:
- $(MAKE) all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/bindings/README b/libs/taglib/bindings/README
deleted file mode 100644
index f9e912463a..0000000000
--- a/libs/taglib/bindings/README
+++ /dev/null
@@ -1,6 +0,0 @@
-There are a few other people that have done bindings externally that I have
-been made aware of. I have not personally reviewed these bindings, but I'm
-listing them here so that those who find them useful are able to find them:
-
-- Ruby - http://www.hakubi.us/ruby-taglib/
-- Python - http://namingmuse.berlios.de/
diff --git a/libs/taglib/bindings/c/CMakeLists.txt b/libs/taglib/bindings/c/CMakeLists.txt
deleted file mode 100644
index 8c6dc4a17c..0000000000
--- a/libs/taglib/bindings/c/CMakeLists.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/toolkit
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/mpeg
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/ogg
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/ogg/vorbis
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/ogg/flac
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/flac
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/mpc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/mpeg/id3v2
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/wavpack
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/ogg/speex
- ${CMAKE_CURRENT_SOURCE_DIR}/../../taglib/trueaudio
-)
-
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib_c.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc )
-########### next target ###############
-
-SET(tag_c_LIB_SRCS
-tag_c.cpp
-)
-
-
-ADD_LIBRARY(tag_c SHARED ${tag_c_LIB_SRCS})
-
-TARGET_LINK_LIBRARIES(tag_c tag )
-
-# On Solaris we need to explicitly add the C++ standard and runtime
-# libraries to the libs used by this library, to link them to apps
-# using these bindings.
-CHECK_LIBRARY_EXISTS(Crun __RTTI___ "" HAVE_CRUN_LIB)
-IF(HAVE_CRUN_LIB)
- # Which libraries to link depends critically on which
- # STL version is going to be used by your application
- # and which runtime is in use. While Crun is pretty much
- # the only game in town, the three available STLs -- Cstd,
- # stlport4 and stdcxx -- make this a mess. We really only
- # support stdcxx, but won't force the issue here.
- #
- TARGET_LINK_LIBRARIES(tag_c Crun)
-ENDIF(HAVE_CRUN_LIB)
-
-SET_TARGET_PROPERTIES(tag_c PROPERTIES
- VERSION 0.0.0
- SOVERSION 0
- DEFINE_SYMBOL MAKE_TAGLIB_C_LIB
- )
-INSTALL(TARGETS tag_c
- LIBRARY DESTINATION ${LIB_INSTALL_DIR}
- RUNTIME DESTINATION bin
- ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-)
-
-
-########### install files ###############
-
-INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL( FILES tag_c.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
-
diff --git a/libs/taglib/bindings/c/Makefile.am b/libs/taglib/bindings/c/Makefile.am
deleted file mode 100644
index 09e89703fb..0000000000
--- a/libs/taglib/bindings/c/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/ogg/vorbis \
- -I$(top_srcdir)/taglib/ogg/speex \
- -I$(top_srcdir)/taglib/ogg/flac \
- -I$(top_srcdir)/taglib/flac \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/wavpack \
- -I$(top_srcdir)/taglib/trueaudio \
- $(all_includes)
-
-lib_LTLIBRARIES = libtag_c.la
-
-libtag_c_la_SOURCES = tag_c.cpp
-taglib_include_HEADERS = tag_c.h
-taglib_includedir = $(includedir)/taglib
-
-libtag_c_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 0:0
-libtag_c_la_LIBADD = ../../taglib/libtag.la
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = taglib_c.pc
diff --git a/libs/taglib/bindings/c/Makefile.in b/libs/taglib/bindings/c/Makefile.in
deleted file mode 100644
index 4a792da219..0000000000
--- a/libs/taglib/bindings/c/Makefile.in
+++ /dev/null
@@ -1,668 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = bindings/c
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/taglib_c.pc.in $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = taglib_c.pc
-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)" "$(DESTDIR)$(pkgconfigdir)" \
- "$(DESTDIR)$(taglib_includedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libtag_c_la_DEPENDENCIES = ../../taglib/libtag.la
-am_libtag_c_la_OBJECTS = tag_c.lo
-#>- libtag_c_la_OBJECTS = $(am_libtag_c_la_OBJECTS)
-#>+ 1
-libtag_c_la_OBJECTS = tag_c.lo
-#>- libtag_c_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-#>- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-#>- $(CXXFLAGS) $(libtag_c_la_LDFLAGS) $(LDFLAGS) -o $@
-#>+ 3
-libtag_c_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(KDE_CXXFLAGS) $(libtag_c_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libtag_c_la_SOURCES)
-DIST_SOURCES = $(libtag_c_la_SOURCES)
-pkgconfigDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkgconfig_DATA)
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/ogg/vorbis \
- -I$(top_srcdir)/taglib/ogg/speex \
- -I$(top_srcdir)/taglib/ogg/flac \
- -I$(top_srcdir)/taglib/flac \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/wavpack \
- -I$(top_srcdir)/taglib/trueaudio \
- $(all_includes)
-
-lib_LTLIBRARIES = libtag_c.la
-libtag_c_la_SOURCES = tag_c.cpp
-taglib_include_HEADERS = tag_c.h
-taglib_includedir = $(includedir)/taglib
-libtag_c_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 0:0
-libtag_c_la_LIBADD = ../../taglib/libtag.la
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = taglib_c.pc
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/c/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu bindings/c/Makefile
-#>+ 12
- @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 bindings/c/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu bindings/c/Makefile
- cd $(top_srcdir) && perl admin/am_edit bindings/c/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-taglib_c.pc: $(top_builddir)/config.status $(srcdir)/taglib_c.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-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)
- @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
-libtag_c.la: $(libtag_c_la_OBJECTS) $(libtag_c_la_DEPENDENCIES)
- $(libtag_c_la_LINK) -rpath $(libdir) $(libtag_c_la_OBJECTS) $(libtag_c_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tag_c.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-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
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgconfigDATA install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigDATA \
- uninstall-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-pdf install-pdf-am \
- install-pkgconfigDATA install-ps install-ps-am install-strip \
- install-taglib_includeHEADERS installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-libLTLIBRARIES uninstall-pkgconfigDATA \
- uninstall-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in taglib_c.pc.cmake taglib_c.pc.in configure.in.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 bindings/c/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu bindings/c/Makefile
- cd $(top_srcdir) && perl admin/am_edit bindings/c/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 3
-final:
- $(MAKE) all-am
-
-#>+ 3
-final-install:
- $(MAKE) install-am
-
-#>+ 3
-no-final:
- $(MAKE) all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/bindings/c/configure.in.in b/libs/taglib/bindings/c/configure.in.in
deleted file mode 100644
index 3e8474072a..0000000000
--- a/libs/taglib/bindings/c/configure.in.in
+++ /dev/null
@@ -1 +0,0 @@
-dnl AC_OUTPUT(bindings/c/taglib_c.pc)
diff --git a/libs/taglib/bindings/c/tag_c.cpp b/libs/taglib/bindings/c/tag_c.cpp
deleted file mode 100644
index 377d92c733..0000000000
--- a/libs/taglib/bindings/c/tag_c.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- ***************************************************************************/
-
-#include "tag_c.h"
-
-#include <stdlib.h>
-#include <fileref.h>
-#include <tfile.h>
-#include <vorbisfile.h>
-#include <mpegfile.h>
-#include <flacfile.h>
-#include <oggflacfile.h>
-#include <mpcfile.h>
-#include <wavpackfile.h>
-#include <speexfile.h>
-#include <trueaudiofile.h>
-#include <tag.h>
-#include <string.h>
-#include <id3v2framefactory.h>
-
-using namespace TagLib;
-
-static List<char *> strings;
-static bool unicodeStrings = true;
-static bool stringManagementEnabled = true;
-
-void taglib_set_strings_unicode(BOOL unicode)
-{
- unicodeStrings = bool(unicode);
-}
-
-void taglib_set_string_management_enabled(BOOL management)
-{
- stringManagementEnabled = bool(management);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// TagLib::File wrapper
-////////////////////////////////////////////////////////////////////////////////
-
-TagLib_File *taglib_file_new(const char *filename)
-{
- return reinterpret_cast<TagLib_File *>(FileRef::create(filename));
-}
-
-TagLib_File *taglib_file_new_type(const char *filename, TagLib_File_Type type)
-{
- switch(type) {
- case TagLib_File_MPEG:
- return reinterpret_cast<TagLib_File *>(new MPEG::File(filename));
- case TagLib_File_OggVorbis:
- return reinterpret_cast<TagLib_File *>(new Ogg::Vorbis::File(filename));
- case TagLib_File_FLAC:
- return reinterpret_cast<TagLib_File *>(new FLAC::File(filename));
- case TagLib_File_MPC:
- return reinterpret_cast<TagLib_File *>(new MPC::File(filename));
- case TagLib_File_OggFlac:
- return reinterpret_cast<TagLib_File *>(new Ogg::FLAC::File(filename));
- case TagLib_File_WavPack:
- return reinterpret_cast<TagLib_File *>(new WavPack::File(filename));
- case TagLib_File_Speex:
- return reinterpret_cast<TagLib_File *>(new Ogg::Speex::File(filename));
- case TagLib_File_TrueAudio:
- return reinterpret_cast<TagLib_File *>(new TrueAudio::File(filename));
- }
-
- return 0;
-}
-
-void taglib_file_free(TagLib_File *file)
-{
- delete reinterpret_cast<File *>(file);
-}
-
-BOOL taglib_file_is_valid(const TagLib_File *file)
-{
- return reinterpret_cast<const File *>(file)->isValid();
-}
-
-TagLib_Tag *taglib_file_tag(const TagLib_File *file)
-{
- const File *f = reinterpret_cast<const File *>(file);
- return reinterpret_cast<TagLib_Tag *>(f->tag());
-}
-
-const TagLib_AudioProperties *taglib_file_audioproperties(const TagLib_File *file)
-{
- const File *f = reinterpret_cast<const File *>(file);
- return reinterpret_cast<const TagLib_AudioProperties *>(f->audioProperties());
-}
-
-BOOL taglib_file_save(TagLib_File *file)
-{
- return reinterpret_cast<File *>(file)->save();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// TagLib::Tag wrapper
-////////////////////////////////////////////////////////////////////////////////
-
-char *taglib_tag_title(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- char *s = ::strdup(t->title().toCString(unicodeStrings));
- if(stringManagementEnabled)
- strings.append(s);
- return s;
-}
-
-char *taglib_tag_artist(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- char *s = ::strdup(t->artist().toCString(unicodeStrings));
- if(stringManagementEnabled)
- strings.append(s);
- return s;
-}
-
-char *taglib_tag_album(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- char *s = ::strdup(t->album().toCString(unicodeStrings));
- if(stringManagementEnabled)
- strings.append(s);
- return s;
-}
-
-char *taglib_tag_comment(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- char *s = ::strdup(t->comment().toCString(unicodeStrings));
- if(stringManagementEnabled)
- strings.append(s);
- return s;
-}
-
-char *taglib_tag_genre(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- char *s = ::strdup(t->genre().toCString(unicodeStrings));
- if(stringManagementEnabled)
- strings.append(s);
- return s;
-}
-
-unsigned int taglib_tag_year(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- return t->year();
-}
-
-unsigned int taglib_tag_track(const TagLib_Tag *tag)
-{
- const Tag *t = reinterpret_cast<const Tag *>(tag);
- return t->track();
-}
-
-void taglib_tag_set_title(TagLib_Tag *tag, const char *title)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setTitle(String(title, unicodeStrings ? String::UTF8 : String::Latin1));
-}
-
-void taglib_tag_set_artist(TagLib_Tag *tag, const char *artist)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setArtist(String(artist, unicodeStrings ? String::UTF8 : String::Latin1));
-}
-
-void taglib_tag_set_album(TagLib_Tag *tag, const char *album)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setAlbum(String(album, unicodeStrings ? String::UTF8 : String::Latin1));
-}
-
-void taglib_tag_set_comment(TagLib_Tag *tag, const char *comment)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setComment(String(comment, unicodeStrings ? String::UTF8 : String::Latin1));
-}
-
-void taglib_tag_set_genre(TagLib_Tag *tag, const char *genre)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setGenre(String(genre, unicodeStrings ? String::UTF8 : String::Latin1));
-}
-
-void taglib_tag_set_year(TagLib_Tag *tag, unsigned int year)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setYear(year);
-}
-
-void taglib_tag_set_track(TagLib_Tag *tag, unsigned int track)
-{
- Tag *t = reinterpret_cast<Tag *>(tag);
- t->setTrack(track);
-}
-
-void taglib_tag_free_strings()
-{
- if(!stringManagementEnabled)
- return;
-
- for(List<char *>::Iterator it = strings.begin(); it != strings.end(); ++it)
- free(*it);
- strings.clear();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// TagLib::AudioProperties wrapper
-////////////////////////////////////////////////////////////////////////////////
-
-int taglib_audioproperties_length(const TagLib_AudioProperties *audioProperties)
-{
- const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties);
- return p->length();
-}
-
-int taglib_audioproperties_bitrate(const TagLib_AudioProperties *audioProperties)
-{
- const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties);
- return p->bitrate();
-}
-
-int taglib_audioproperties_samplerate(const TagLib_AudioProperties *audioProperties)
-{
- const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties);
- return p->sampleRate();
-}
-
-int taglib_audioproperties_channels(const TagLib_AudioProperties *audioProperties)
-{
- const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties);
- return p->channels();
-}
-
-void taglib_id3v2_set_default_text_encoding(TagLib_ID3v2_Encoding encoding)
-{
- String::Type type = String::Latin1;
-
- switch(encoding)
- {
- case TagLib_ID3v2_Latin1:
- type = String::Latin1;
- break;
- case TagLib_ID3v2_UTF16:
- type = String::UTF16;
- break;
- case TagLib_ID3v2_UTF16BE:
- type = String::UTF16BE;
- break;
- case TagLib_ID3v2_UTF8:
- type = String::UTF8;
- break;
- }
-
- ID3v2::FrameFactory::instance()->setDefaultTextEncoding(type);
-}
diff --git a/libs/taglib/bindings/c/tag_c.h b/libs/taglib/bindings/c/tag_c.h
deleted file mode 100644
index d70629ece0..0000000000
--- a/libs/taglib/bindings/c/tag_c.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- ***************************************************************************/
-
-#ifndef TAGLIB_TAG_C
-#define TAGLIB_TAG_C
-
-/* Do not include this in the main TagLib documentation. */
-#ifndef DO_NOT_DOCUMENT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(_WIN32) || defined(_WIN64)
-#ifdef MAKE_TAGLIB_C_LIB
-#define TAGLIB_C_EXPORT __declspec(dllexport)
-#else
-#define TAGLIB_C_EXPORT __declspec(dllimport)
-#endif
-#else
-#define TAGLIB_C_EXPORT
-#endif
-
-#ifndef BOOL
-#define BOOL int
-#endif
-
-/*******************************************************************************
- * [ TagLib C Binding ]
- *
- * This is an interface to TagLib's "simple" API, meaning that you can read and
- * modify media files in a generic, but not specialized way. This is a rough
- * representation of TagLib::File and TagLib::Tag, for which the documentation
- * is somewhat more complete and worth consulting.
- *******************************************************************************/
-
-/*
- * These are used for type provide some type safety to the C API (as opposed to
- * using void *, but pointers to them are simply cast to the corresponding C++
- * types in the implementation.
- */
-
-typedef struct { int dummy; } TagLib_File;
-typedef struct { int dummy; } TagLib_Tag;
-typedef struct { int dummy; } TagLib_AudioProperties;
-
-/*!
- * By default all strings coming into or out of TagLib's C API are in UTF8.
- * However, it may be desirable for TagLib to operate on Latin1 (ISO-8859-1)
- * strings in which case this should be set to FALSE.
- */
-TAGLIB_C_EXPORT void taglib_set_strings_unicode(BOOL unicode);
-
-/*!
- * TagLib can keep track of strings that are created when outputting tag values
- * and clear them using taglib_tag_clear_strings(). This is enabled by default.
- * However if you wish to do more fine grained management of strings, you can do
- * so by setting \a management to FALSE.
- */
-TAGLIB_C_EXPORT void taglib_set_string_management_enabled(BOOL management);
-
-/*******************************************************************************
- * File API
- ******************************************************************************/
-
-typedef enum {
- TagLib_File_MPEG,
- TagLib_File_OggVorbis,
- TagLib_File_FLAC,
- TagLib_File_MPC,
- TagLib_File_OggFlac,
- TagLib_File_WavPack,
- TagLib_File_Speex,
- TagLib_File_TrueAudio
-} TagLib_File_Type;
-
-/*!
- * Creates a TagLib file based on \a filename. TagLib will try to guess the file
- * type.
- *
- * \returns NULL if the file type cannot be determined or the file cannot
- * be opened.
- */
-TAGLIB_C_EXPORT TagLib_File *taglib_file_new(const char *filename);
-
-/*!
- * Creates a TagLib file based on \a filename. Rather than attempting to guess
- * the type, it will use the one specified by \a type.
- */
-TAGLIB_C_EXPORT TagLib_File *taglib_file_new_type(const char *filename, TagLib_File_Type type);
-
-/*!
- * Frees and closes the file.
- */
-TAGLIB_C_EXPORT void taglib_file_free(TagLib_File *file);
-
-/*!
- * Returns true if the file is open and readble and valid information for
- * the Tag and / or AudioProperties was found.
- */
-
-TAGLIB_C_EXPORT BOOL taglib_file_is_valid(const TagLib_File *file);
-
-/*!
- * Returns a pointer to the tag associated with this file. This will be freed
- * automatically when the file is freed.
- */
-TAGLIB_C_EXPORT TagLib_Tag *taglib_file_tag(const TagLib_File *file);
-
-/*!
- * Returns a pointer to the the audio properties associated with this file. This
- * will be freed automatically when the file is freed.
- */
-TAGLIB_C_EXPORT const TagLib_AudioProperties *taglib_file_audioproperties(const TagLib_File *file);
-
-/*!
- * Saves the \a file to disk.
- */
-TAGLIB_C_EXPORT BOOL taglib_file_save(TagLib_File *file);
-
-/******************************************************************************
- * Tag API
- ******************************************************************************/
-
-/*!
- * Returns a string with this tag's title.
- *
- * \note By default this string should be UTF8 encoded and its memory should be
- * freed using taglib_tag_free_strings().
- */
-TAGLIB_C_EXPORT char *taglib_tag_title(const TagLib_Tag *tag);
-
-/*!
- * Returns a string with this tag's artist.
- *
- * \note By default this string should be UTF8 encoded and its memory should be
- * freed using taglib_tag_free_strings().
- */
-TAGLIB_C_EXPORT char *taglib_tag_artist(const TagLib_Tag *tag);
-
-/*!
- * Returns a string with this tag's album name.
- *
- * \note By default this string should be UTF8 encoded and its memory should be
- * freed using taglib_tag_free_strings().
- */
-TAGLIB_C_EXPORT char *taglib_tag_album(const TagLib_Tag *tag);
-
-/*!
- * Returns a string with this tag's comment.
- *
- * \note By default this string should be UTF8 encoded and its memory should be
- * freed using taglib_tag_free_strings().
- */
-TAGLIB_C_EXPORT char *taglib_tag_comment(const TagLib_Tag *tag);
-
-/*!
- * Returns a string with this tag's genre.
- *
- * \note By default this string should be UTF8 encoded and its memory should be
- * freed using taglib_tag_free_strings().
- */
-TAGLIB_C_EXPORT char *taglib_tag_genre(const TagLib_Tag *tag);
-
-/*!
- * Returns the tag's year or 0 if year is not set.
- */
-TAGLIB_C_EXPORT unsigned int taglib_tag_year(const TagLib_Tag *tag);
-
-/*!
- * Returns the tag's track number or 0 if track number is not set.
- */
-TAGLIB_C_EXPORT unsigned int taglib_tag_track(const TagLib_Tag *tag);
-
-/*!
- * Sets the tag's title.
- *
- * \note By default this string should be UTF8 encoded.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_title(TagLib_Tag *tag, const char *title);
-
-/*!
- * Sets the tag's artist.
- *
- * \note By default this string should be UTF8 encoded.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_artist(TagLib_Tag *tag, const char *artist);
-
-/*!
- * Sets the tag's album.
- *
- * \note By default this string should be UTF8 encoded.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_album(TagLib_Tag *tag, const char *album);
-
-/*!
- * Sets the tag's comment.
- *
- * \note By default this string should be UTF8 encoded.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_comment(TagLib_Tag *tag, const char *comment);
-
-/*!
- * Sets the tag's genre.
- *
- * \note By default this string should be UTF8 encoded.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_genre(TagLib_Tag *tag, const char *genre);
-
-/*!
- * Sets the tag's year. 0 indicates that this field should be cleared.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_year(TagLib_Tag *tag, unsigned int year);
-
-/*!
- * Sets the tag's track number. 0 indicates that this field should be cleared.
- */
-TAGLIB_C_EXPORT void taglib_tag_set_track(TagLib_Tag *tag, unsigned int track);
-
-/*!
- * Frees all of the strings that have been created by the tag.
- */
-TAGLIB_C_EXPORT void taglib_tag_free_strings(void);
-
-/******************************************************************************
- * Audio Properties API
- ******************************************************************************/
-
-/*!
- * Returns the length of the file in seconds.
- */
-TAGLIB_C_EXPORT int taglib_audioproperties_length(const TagLib_AudioProperties *audioProperties);
-
-/*!
- * Returns the bitrate of the file in kb/s.
- */
-TAGLIB_C_EXPORT int taglib_audioproperties_bitrate(const TagLib_AudioProperties *audioProperties);
-
-/*!
- * Returns the sample rate of the file in Hz.
- */
-TAGLIB_C_EXPORT int taglib_audioproperties_samplerate(const TagLib_AudioProperties *audioProperties);
-
-/*!
- * Returns the number of channels in the audio stream.
- */
-TAGLIB_C_EXPORT int taglib_audioproperties_channels(const TagLib_AudioProperties *audioProperties);
-
-/*******************************************************************************
- * Special convenience ID3v2 functions
- *******************************************************************************/
-
-typedef enum {
- TagLib_ID3v2_Latin1,
- TagLib_ID3v2_UTF16,
- TagLib_ID3v2_UTF16BE,
- TagLib_ID3v2_UTF8
-} TagLib_ID3v2_Encoding;
-
-/*!
- * This sets the default encoding for ID3v2 frames that are written to tags.
- */
-
-TAGLIB_C_EXPORT void taglib_id3v2_set_default_text_encoding(TagLib_ID3v2_Encoding encoding);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* DO_NOT_DOCUMENT */
-#endif
diff --git a/libs/taglib/bindings/c/taglib_c.pc.cmake b/libs/taglib/bindings/c/taglib_c.pc.cmake
deleted file mode 100644
index a48ae0a6e9..0000000000
--- a/libs/taglib/bindings/c/taglib_c.pc.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=${CMAKE_INSTALL_PREFIX}
-exec_prefix=${CMAKE_INSTALL_PREFIX}
-libdir=${LIB_INSTALL_DIR}
-includedir=${INCLUDE_INSTALL_DIR}
-
-
-Name: TagLib C Bindings
-Description: Audio meta-data library (C bindings)
-Requires: taglib
-Version: ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
-Libs: -L${LIB_INSTALL_DIR} -ltag_c
-Cflags: -I=${INCLUDE_INSTALL_DIR}/taglib
diff --git a/libs/taglib/bindings/c/taglib_c.pc.in b/libs/taglib/bindings/c/taglib_c.pc.in
deleted file mode 100644
index 01c63a6b8c..0000000000
--- a/libs/taglib/bindings/c/taglib_c.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: TagLib C Bindings
-Description: Audio meta-data library (C bindings)
-Requires: taglib
-Version: 1.5
-Libs: -L${libdir} -ltag_c
-Cflags: -I${includedir}/taglib
diff --git a/libs/taglib/cmake/modules/FindCppUnit.cmake b/libs/taglib/cmake/modules/FindCppUnit.cmake
deleted file mode 100644
index 08dd42dab8..0000000000
--- a/libs/taglib/cmake/modules/FindCppUnit.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-INCLUDE(UsePkgConfig)
-PKGCONFIG(cppunit _CppUnitIncDir _CppUnitLinkDir _CppUnitLinkFlags _CppUnitCflags)
-
-FIND_PATH(CPPUNIT_INCLUDE_DIR cppunit/TestCase.h
- ${_CppUnitIncDir}
- /usr/local/include
- /usr/include
-)
-
-FIND_LIBRARY(CPPUNIT_LIBRARIES cppunit
- ${_CppUnitLinkDir}
- /usr/local/lib
- /usr/lib
-)
-
-IF (CPPUNIT_INCLUDE_DIR AND CPPUNIT_LIBRARIES)
- SET(CPPUNIT_FOUND TRUE)
-ENDIF (CPPUNIT_INCLUDE_DIR AND CPPUNIT_LIBRARIES)
-
-IF (CPPUNIT_FOUND)
- IF (NOT CppUnit_FIND_QUIETLY)
- MESSAGE(STATUS "Found CppUnit: ${CPPUNIT_LIBRARIES}")
- ENDIF (NOT CppUnit_FIND_QUIETLY)
-ELSE (CPPUNIT_FOUND)
- IF (CppUnit_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find CppUnit")
- ENDIF (CppUnit_FIND_REQUIRED)
-ENDIF (CPPUNIT_FOUND)
diff --git a/libs/taglib/config-taglib.h.cmake b/libs/taglib/config-taglib.h.cmake
deleted file mode 100644
index 56674d6bc3..0000000000
--- a/libs/taglib/config-taglib.h.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-/* config-taglib.h. Generated by cmake from config-taglib.h.cmake */
-
-/* NOTE: only add something here if it is really needed by all of kdelibs.
- Otherwise please prefer adding to the relevant config-foo.h.cmake file,
- to minimize recompilations and increase modularity. */
-/* Define if you have libz */
-#cmakedefine HAVE_ZLIB 1
-
-#cmakedefine NO_ITUNES_HACKS 1
diff --git a/libs/taglib/config.h.in b/libs/taglib/config.h.in
deleted file mode 100644
index a3c25d00f9..0000000000
--- a/libs/taglib/config.h.in
+++ /dev/null
@@ -1,64 +0,0 @@
-/* config.h.in. Generated from configure.in by autoheader. */
-
-/* have cppunit */
-#undef HAVE_CPPUNIT
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* have zlib */
-#undef HAVE_ZLIB
-
-/* Suffix for lib directories */
-#undef KDELIBSUFF
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
diff --git a/libs/taglib/configure b/libs/taglib/configure
deleted file mode 100755
index 5a7b09723d..0000000000
--- a/libs/taglib/configure
+++ /dev/null
@@ -1,24271 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
-else
- as_have_required=no
-fi
-
- if test $as_have_required = yes && (eval ":
-(as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=\$LINENO
- as_lineno_2=\$LINENO
- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
- :
-else
- as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- case $as_dir in
- /*)
- for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
- done;;
- esac
-done
-IFS=$as_save_IFS
-
-
- for as_shell in $as_candidate_shells $SHELL; do
- # Try only shells that exist, to save several forks.
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
- CONFIG_SHELL=$as_shell
- as_have_required=yes
- if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
- (exit $1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
- break
-fi
-
-fi
-
- done
-
- if test "x$CONFIG_SHELL" != x; then
- for as_var in BASH_ENV ENV
- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- done
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
- if test $as_have_required = no; then
- echo This script requires a shell more modern than all the
- echo shells that I found on your system. Please install a
- echo modern shell, or manually run the script under such a
- echo shell if you do have one.
- { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
- echo No shell found that supports shell functions.
- echo Please tell autoconf@gnu.org about your system,
- echo including any error possibly output before this
- echo message
-}
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
- # Remove one level of quotation (which was required for Make).
- ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
- ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-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 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="acinclude.m4"
-ac_default_prefix=/usr/local
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-target
-target_cpu
-target_vendor
-target_os
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-am__isrc
-CYGPATH_W
-PACKAGE
-VERSION
-ACLOCAL
-AUTOCONF
-AUTOMAKE
-AUTOHEADER
-MAKEINFO
-install_sh
-STRIP
-INSTALL_STRIP_PROGRAM
-mkdir_p
-AWK
-SET_MAKE
-am__leading_dot
-AMTAR
-am__tar
-am__untar
-CONF_FILES
-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
-CPP
-CXX
-CXXFLAGS
-ac_ct_CXX
-CXXDEPMODE
-am__fastdepCXX_TRUE
-am__fastdepCXX_FALSE
-WOVERLOADED_VIRTUAL
-HAVE_GCC_VISIBILITY
-unsermake_enable_pch_TRUE
-unsermake_enable_pch_FALSE
-USE_EXCEPTIONS
-USE_RTTI
-CXXCPP
-NOOPT_CXXFLAGS
-NOOPT_CFLAGS
-ENABLE_PERMISSIVE_FLAG
-LDFLAGS_AS_NEEDED
-LDFLAGS_NEW_DTAGS
-KDE_USE_FINAL_TRUE
-KDE_USE_FINAL_FALSE
-KDE_USE_CLOSURE_TRUE
-KDE_USE_CLOSURE_FALSE
-KDE_NO_UNDEFINED
-KDE_USE_NMCHECK_TRUE
-KDE_USE_NMCHECK_FALSE
-GREP
-EGREP
-LN_S
-ECHO
-AR
-RANLIB
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
-KDE_PLUGIN
-KDE_CHECK_PLUGIN
-all_includes
-all_libraries
-AUTODIRS
-link_zlib_TRUE
-link_zlib_FALSE
-build_tests_TRUE
-build_tests_FALSE
-TOPSUBDIRS
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files=''
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
-F77
-FFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
- eval enable_$ac_feature=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
- eval enable_$ac_feature=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
- eval with_$ac_package=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
- eval with_$ac_package=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- { echo "$as_me: error: Working directory cannot be determined" >&2
- { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- { echo "$as_me: error: pwd does not report name of working directory" >&2
- { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
- --target=TARGET configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-fast-perl disable fast Makefile generation (needs perl)
- --enable-debug=ARG enables debug symbols (yes|no|full) default=no
- --disable-debug disables debug output and debug symbols default=no
- --enable-strict compiles with strict compiler options (may not
- work!)
- --disable-warnings disables compilation with -Wall and similar
- --enable-profile creates profiling infos default=no
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --enable-pch enables precompiled header support (currently only
- KCC or gcc >=3.4+unsermake) default=no
- --enable-coverage use gcc coverage testing
- --enable-new-ldflags enable the new linker flags
- --enable-final build size optimized apps (experimental - needs lots
- of memory)
- --enable-closure delay template instantiation
- --enable-nmcheck enable automatic namespace cleanness check
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=no]
- --enable-libsuffix /lib directory suffix (64,32,none,auto=default)
- --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<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CXXCPP C++ preprocessor
- F77 Fortran 77 compiler command
- FFLAGS Fortran 77 compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" || continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.61. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args '$ac_arg'"
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- *) $as_unset $ac_var ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
- set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
- set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
- set x "$ac_default_prefix/share/config.site" \
- "$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_aux_dir=
-for ac_dir in admin "$srcdir"/admin; 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 admin \"$srcdir\"/admin" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in admin \"$srcdir\"/admin" >&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.
-
-
-
-unset CDPATH
-
-# 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 target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
-if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "x$target_alias" = x; then
- ac_cv_target=$ac_cv_host
-else
- ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-echo "$as_me: error: invalid value of canonical target" >&2;}
- { (exit 1); exit 1; }; };;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-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
-
-
-am__api_version='1.10'
-
-
-
- test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
- test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
- test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
- # Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-IFS=$as_save_IFS
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
- if test -z "$kde_save_INSTALL_given" ; then
- # OK, user hasn't given any INSTALL, autoconf found one for us
- # now we test, if it supports the -p flag
- { echo "$as_me:$LINENO: checking for -p flag to install" >&5
-echo $ECHO_N "checking for -p flag to install... $ECHO_C" >&6; }
- rm -f confinst.$$.* > /dev/null 2>&1
- echo "Testtest" > confinst.$$.orig
- ac_res=no
- if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
- if test -f confinst.$$.new ; then
- # OK, -p seems to do no harm to install
- INSTALL="${INSTALL} -p"
- ac_res=yes
- fi
- fi
- rm -f confinst.$$.*
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
- fi
-
- if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
- INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
- fi
- if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
- INSTALL_SCRIPT='${INSTALL}'
- fi
-
-{ 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; }
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
-if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
-done
-IFS=$as_save_IFS
-
-fi
-
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- test -d ./--version && rmdir ./--version
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- SET_MAKE=
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE=taglib
- VERSION=1.4
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-unset CDPATH
-
-
-if test "x$prefix" = "xNONE"; then
- prefix=$ac_default_prefix
- ac_configure_args="$ac_configure_args --prefix $prefix"
-fi
-
- # Check whether --enable-fast-perl was given.
-if test "${enable_fast_perl+set}" = set; then
- enableval=$enable_fast_perl; with_fast_perl=$enableval
-else
- with_fast_perl=yes
-fi
-
-
-
- val=
- if test -f $srcdir/configure.files ; then
- val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
- fi
- CONF_FILES=
- if test -n "$val" ; then
- for i in $val ; do
- CONF_FILES="$CONF_FILES $i"
- done
- fi
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-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
-
-
-
-
-
- # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval=$enable_debug;
- case $enableval in
- yes)
- kde_use_debug_code="yes"
- kde_use_debug_define=no
- ;;
- full)
- kde_use_debug_code="full"
- kde_use_debug_define=no
- ;;
- *)
- kde_use_debug_code="no"
- kde_use_debug_define=yes
- ;;
- esac
-
-else
- kde_use_debug_code="no"
- kde_use_debug_define=no
-
-fi
-
-
- # Check whether --enable-dummyoption was given.
-if test "${enable_dummyoption+set}" = set; then
- enableval=$enable_dummyoption;
-fi
-
-
- # Check whether --enable-strict was given.
-if test "${enable_strict+set}" = set; then
- enableval=$enable_strict;
- if test $enableval = "no"; then
- kde_use_strict_options="no"
- else
- kde_use_strict_options="yes"
- fi
-
-else
- kde_use_strict_options="no"
-fi
-
-
- # Check whether --enable-warnings was given.
-if test "${enable_warnings+set}" = set; then
- enableval=$enable_warnings;
- if test $enableval = "no"; then
- kde_use_warnings="no"
- else
- kde_use_warnings="yes"
- fi
-
-else
- kde_use_warnings="yes"
-fi
-
-
- if test "$kde_use_debug_code" != "no"; then
- kde_use_warnings=yes
- fi
-
- # Check whether --enable-profile was given.
-if test "${enable_profile+set}" = set; then
- enableval=$enable_profile; kde_use_profiling=$enableval
-else
- kde_use_profiling="no"
-
-fi
-
-
- CFLAGS=" $CFLAGS"
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort. b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions. Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- CFLAGS=""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_c89=$ac_arg
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
- xno)
- { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CC" am_compiler_list=
-
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
- ac_ext=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 <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- if test "$GCC" = "yes"; then
- if test "$kde_use_debug_code" != "no"; then
- if test $kde_use_debug_code = "full"; then
- CFLAGS="-g3 -fno-inline $CFLAGS"
- else
- CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
- fi
- else
- CFLAGS="-O2 $CFLAGS"
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CFLAGS="-DNDEBUG $CFLAGS"
- fi
-
-
- case "$host" in
- *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
- *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
- esac
-
- if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
- LDFLAGS=""
- fi
-
- CXXFLAGS=" $CXXFLAGS"
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
- if test -n "$CCC"; then
- CXX=$CCC
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$ac_ct_CXX" && break
-done
-
- if test "x$ac_ct_CXX" = x; then
- CXX="g++"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- CXX=$ac_ct_CXX
- fi
-fi
-
- fi
-fi
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_cxx_werror_flag=$ac_cxx_werror_flag
- ac_cxx_werror_flag=yes
- ac_cv_prog_cxx_g=no
- CXXFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cxx_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- CXXFLAGS=""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
- CXXFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cxx_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX" am_compiler_list=
-
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CXX_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CXX_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
- am__fastdepCXX_TRUE=
- am__fastdepCXX_FALSE='#'
-else
- am__fastdepCXX_TRUE='#'
- am__fastdepCXX_FALSE=
-fi
-
-
-
-
- { echo "$as_me:$LINENO: checking whether $CC is blacklisted" >&5
-echo $ECHO_N "checking whether $CC is blacklisted... $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. */
-
-#ifdef __GNUC__
-#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
-choke me
-#endif
-#endif
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- kde_bad_compiler=no
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- kde_bad_compiler=yes
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
- { echo "$as_me:$LINENO: result: $kde_bad_compiler" >&5
-echo "${ECHO_T}$kde_bad_compiler" >&6; }
-
-if test "$kde_bad_compiler" = "yes"; then
- { { echo "$as_me:$LINENO: error:
-
-This particular compiler version is blacklisted because it
-is known to miscompile KDE. Please use a newer version, or
-if that is not yet available, choose an older version.
-
-Please do not report a bug or bother us reporting this
-configure error. We know about it, and we introduced
-it by intention to avoid untraceable bugs or crashes in KDE.
-
-" >&5
-echo "$as_me: error:
-
-This particular compiler version is blacklisted because it
-is known to miscompile KDE. Please use a newer version, or
-if that is not yet available, choose an older version.
-
-Please do not report a bug or bother us reporting this
-configure error. We know about it, and we introduced
-it by intention to avoid untraceable bugs or crashes in KDE.
-
-" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-
- if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
- if test "$kde_use_debug_code" != "no"; then
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
- else
- if test "$kde_use_debug_code" = "full"; then
- CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
- else
- CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
- fi
- fi
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-builtin" >&5
-echo $ECHO_N "checking whether $CXX supports -fno-builtin... $ECHO_C" >&6; }
-kde_cache=`echo fno-builtin | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-builtin"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="-fno-builtin $CXXFLAGS"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Woverloaded-virtual" >&5
-echo $ECHO_N "checking whether $CXX supports -Woverloaded-virtual... $ECHO_C" >&6; }
-kde_cache=`echo Woverloaded-virtual | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Woverloaded-virtual"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- WOVERLOADED_VIRTUAL="-Woverloaded-virtual"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
- WOVERLOADED_VRITUAL=""
-fi
-
-
- else
- if test "$CXX" = "KCC"; then
- CXXFLAGS="+K3 $CXXFLAGS"
- else
- CXXFLAGS="-O2 $CXXFLAGS"
- fi
- fi
- fi
-
- if test "$kde_use_debug_define" = "yes"; then
- CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
- fi
-
- if test "$kde_use_profiling" = "yes"; then
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -pg" >&5
-echo $ECHO_N "checking whether $CXX supports -pg... $ECHO_C" >&6; }
-kde_cache=`echo pg | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -pg"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-
- CFLAGS="-pg $CFLAGS"
- CXXFLAGS="-pg $CXXFLAGS"
-
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- fi
-
- if test "$kde_use_warnings" = "yes"; then
- if test "$GCC" = "yes"; then
- CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
- case $host in
- *-*-linux-gnu)
- CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
- CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wmissing-format-attribute" >&5
-echo $ECHO_N "checking whether $CXX supports -Wmissing-format-attribute... $ECHO_C" >&6; }
-kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wmissing-format-attribute"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CC supports -Wmissing-format-attribute" >&5
-echo $ECHO_N "checking whether $CC supports -Wmissing-format-attribute... $ECHO_C" >&6; }
-kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cc_$kde_cache; eval "test \"\${$as_var+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
-
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Wmissing-format-attribute"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cc_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CFLAGS="$save_CFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- ;;
- esac
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wundef" >&5
-echo $ECHO_N "checking whether $CXX supports -Wundef... $ECHO_C" >&6; }
-kde_cache=`echo Wundef | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wundef"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="-Wundef $CXXFLAGS"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wno-long-long" >&5
-echo $ECHO_N "checking whether $CXX supports -Wno-long-long... $ECHO_C" >&6; }
-kde_cache=`echo Wno-long-long | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wno-long-long"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="-Wno-long-long $CXXFLAGS"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wno-non-virtual-dtor" >&5
-echo $ECHO_N "checking whether $CXX supports -Wno-non-virtual-dtor... $ECHO_C" >&6; }
-kde_cache=`echo Wno-non-virtual-dtor | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- fi
- fi
-
- if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
- CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
- fi
-
- # Check whether --enable-pch was given.
-if test "${enable_pch+set}" = set; then
- enableval=$enable_pch; kde_use_pch=$enableval
-else
- kde_use_pch=no
-fi
-
-
- HAVE_GCC_VISIBILITY=0
-
-
- if test "$GXX" = "yes"; then
- gcc_no_reorder_blocks=NO
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-reorder-blocks" >&5
-echo $ECHO_N "checking whether $CXX supports -fno-reorder-blocks... $ECHO_C" >&6; }
-kde_cache=`echo fno-reorder-blocks | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- gcc_no_reorder_blocks=YES
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- if test $kde_use_debug_code != "no" && \
- test $kde_use_debug_code != "full" && \
- test "YES" = "$gcc_no_reorder_blocks" ; then
- CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
- CFLAGS="$CFLAGS -fno-reorder-blocks"
- fi
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-exceptions" >&5
-echo $ECHO_N "checking whether $CXX supports -fno-exceptions... $ECHO_C" >&6; }
-kde_cache=`echo fno-exceptions | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-check-new" >&5
-echo $ECHO_N "checking whether $CXX supports -fno-check-new... $ECHO_C" >&6; }
-kde_cache=`echo fno-check-new | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-check-new"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS -fno-check-new"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fno-common" >&5
-echo $ECHO_N "checking whether $CXX supports -fno-common... $ECHO_C" >&6; }
-kde_cache=`echo fno-common | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-common"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS -fno-common"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -fexceptions" >&5
-echo $ECHO_N "checking whether $CXX supports -fexceptions... $ECHO_C" >&6; }
-kde_cache=`echo fexceptions | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fexceptions"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- USE_EXCEPTIONS="-fexceptions"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
- USE_EXCEPTIONS=
-fi
-
- ENABLE_PERMISSIVE_FLAG="-fpermissive"
-
- if test "$kde_use_pch" = "yes"; then
- { echo "$as_me:$LINENO: checking whether gcc supports precompiling c header files" >&5
-echo $ECHO_N "checking whether gcc supports precompiling c header files... $ECHO_C" >&6; }
- echo >conftest.h
- if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- else
- kde_gcc_supports_pch=no
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- fi
- if test "$kde_gcc_supports_pch" = "yes"; then
- { echo "$as_me:$LINENO: checking whether gcc supports precompiling c++ header files" >&5
-echo $ECHO_N "checking whether gcc supports precompiling c++ header files... $ECHO_C" >&6; }
- if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
- kde_gcc_supports_pch=yes
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- else
- kde_gcc_supports_pch=no
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- fi
- fi
- rm -f conftest.h conftest.h.gch
- fi
-
-
- { echo "$as_me:$LINENO: checking whether system headers can cope with -O2 -fno-inline" >&5
-echo $ECHO_N "checking whether system headers can cope with -O2 -fno-inline... $ECHO_C" >&6; }
-if test "${kde_cv_opt_noinline_match+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- kde_cv_opt_noinline_match=irrelevant
- if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
- && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
-
- ac_cflags_save="$CFLAGS"
- CFLAGS="$CFLAGS -D_USE_GNU"
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
- #include <string.h>
-
-int
-main ()
-{
- const char *pt, *et;
- et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- kde_cv_opt_noinline_match=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- kde_cv_opt_noinline_match=no
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-
- CFLAGS="$ac_cflags_save"
- fi
-
-fi
-{ echo "$as_me:$LINENO: result: $kde_cv_opt_noinline_match" >&5
-echo "${ECHO_T}$kde_cv_opt_noinline_match" >&6; }
-
- if test "x$kde_cv_opt_noinline_match" = "xno" ; then
- CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
- fi
- fi
- if test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes"; then
- unsermake_enable_pch_TRUE=
- unsermake_enable_pch_FALSE='#'
-else
- unsermake_enable_pch_TRUE='#'
- unsermake_enable_pch_FALSE=
-fi
-
- if test "$CXX" = "KCC"; then
-
- if test "$kde_use_pch" = "yes"; then
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --pch" >&5
-echo $ECHO_N "checking whether $CXX supports --pch... $ECHO_C" >&6; }
-kde_cache=`echo -pch | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --pch"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --pch"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- fi
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_keyword_space_time=6" >&5
-echo $ECHO_N "checking whether $CXX supports --inline_keyword_space_time=6... $ECHO_C" >&6; }
-kde_cache=`echo -inline_keyword_space_time=6 | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_auto_space_time=2" >&5
-echo $ECHO_N "checking whether $CXX supports --inline_auto_space_time=2... $ECHO_C" >&6; }
-kde_cache=`echo -inline_auto_space_time=2 | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_implicit_space_time=2.0" >&5
-echo $ECHO_N "checking whether $CXX supports --inline_implicit_space_time=2.0... $ECHO_C" >&6; }
-kde_cache=`echo -inline_implicit_space_time=2.0 | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --inline_generated_space_time=2.0" >&5
-echo $ECHO_N "checking whether $CXX supports --inline_generated_space_time=2.0... $ECHO_C" >&6; }
-kde_cache=`echo -inline_generated_space_time=2.0 | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports --one_per" >&5
-echo $ECHO_N "checking whether $CXX supports --one_per... $ECHO_C" >&6; }
-kde_cache=`echo -one_per | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS --one_per"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- CXXFLAGS="$CXXFLAGS --one_per"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- fi
-
- USE_RTTI=
-
-
- case "$host" in
- *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
- *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
- *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
- *-*-solaris*)
- if test "$GXX" = yes; then
- libstdcpp=`$CXX -print-file-name=libstdc++.so`
- if test ! -f $libstdcpp; then
- { { echo "$as_me:$LINENO: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&5
-echo "$as_me: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
- ;;
- esac
-
- if test "x$kde_use_qt_emb" != "xyes"; then
- __val=$CXX
- __forbid=" -fno-rtti -rpath "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5
-echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- CXX=$__new
- fi
-
- __val=$CXXFLAGS
- __forbid=" -fno-rtti -rpath "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5
-echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- CXXFLAGS=$__new
- fi
-
-else
- __val=$CXX
- __forbid=" -rpath "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5
-echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- CXX=$__new
- fi
-
- __val=$CXXFLAGS
- __forbid=" -rpath "
- if test -n "$__val"; then
- __new=""
- ac_save_IFS=$IFS
- IFS=" "
- for i in $__val; do
- case "$__forbid" in
- *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5
-echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;;
- *) # Careful to not add spaces, where there were none, because otherwise
- # libtool gets confused, if we change e.g. CXX
- if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
- esac
- done
- IFS=$ac_save_IFS
- CXXFLAGS=$__new
- fi
-
-fi
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=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 "$GCC" = yes; then
- NOOPT_CFLAGS=-O0
- fi
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -O0" >&5
-echo $ECHO_N "checking whether $CXX supports -O0... $ECHO_C" >&6; }
-kde_cache=`echo O0 | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -O0"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- NOOPT_CXXFLAGS=-O0
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
- # Check whether --enable-coverage was given.
-if test "${enable_coverage+set}" = set; then
- enableval=$enable_coverage;
- if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker="-lgcc"
- elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
- ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
- ac_coverage_linker=""
- else
- { { echo "$as_me:$LINENO: error: coverage with your compiler is not supported" >&5
-echo "$as_me: error: coverage with your compiler is not supported" >&2;}
- { (exit 1); exit 1; }; }
- fi
- CFLAGS="$CFLAGS $ac_coverage_compiler"
- CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
- LDFLAGS="$LDFLAGS $ac_coverage_linker"
-
-fi
-
-
-
-
-
-
-
- # Check whether --enable-new_ldflags was given.
-if test "${enable_new_ldflags+set}" = set; then
- enableval=$enable_new_ldflags; kde_use_new_ldflags=$enableval
-else
- kde_use_new_ldflags=no
-fi
-
-
- LDFLAGS_AS_NEEDED=""
- LDFLAGS_NEW_DTAGS=""
- if test "x$kde_use_new_ldflags" = "xyes"; then
- LDFLAGS_NEW_DTAGS=""
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--enable-new-dtags" >&5
-echo $ECHO_N "checking whether $CXX supports -Wl,--enable-new-dtags... $ECHO_C" >&6; }
-kde_cache=`echo Wl,--enable-new-dtags | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wl,--enable-new-dtags"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--as-needed" >&5
-echo $ECHO_N "checking whether $CXX supports -Wl,--as-needed... $ECHO_C" >&6; }
-kde_cache=`echo Wl,--as-needed | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wl,--as-needed"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- LDFLAGS_AS_NEEDED="-Wl,--as-needed"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
-
-fi
-
- fi
-
-
-
-
- # Check whether --enable-final was given.
-if test "${enable_final+set}" = set; then
- enableval=$enable_final; kde_use_final=$enableval
-else
- kde_use_final=no
-fi
-
-
- if test "x$kde_use_final" = "xyes"; then
- KDE_USE_FINAL_TRUE=""
- KDE_USE_FINAL_FALSE="#"
- else
- KDE_USE_FINAL_TRUE="#"
- KDE_USE_FINAL_FALSE=""
- fi
-
-
-
-
- # Check whether --enable-closure was given.
-if test "${enable_closure+set}" = set; then
- enableval=$enable_closure; kde_use_closure=$enableval
-else
- kde_use_closure=no
-fi
-
-
- KDE_NO_UNDEFINED=""
- if test "x$kde_use_closure" = "xyes"; then
- KDE_USE_CLOSURE_TRUE=""
- KDE_USE_CLOSURE_FALSE="#"
-# CXXFLAGS="$CXXFLAGS $REPO"
- else
- KDE_USE_CLOSURE_TRUE="#"
- KDE_USE_CLOSURE_FALSE=""
- KDE_NO_UNDEFINED=""
- case $host in
- *-*-linux-gnu)
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--no-undefined" >&5
-echo $ECHO_N "checking whether $CXX supports -Wl,--no-undefined... $ECHO_C" >&6; }
-kde_cache=`echo Wl,--no-undefined | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wl,--no-undefined"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-
-{ echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--allow-shlib-undefined" >&5
-echo $ECHO_N "checking whether $CXX supports -Wl,--allow-shlib-undefined... $ECHO_C" >&6; }
-kde_cache=`echo Wl,--allow-shlib-undefined | sed 'y% .=/+-,%____p__%'`
-if { as_var=kde_cv_prog_cxx_$kde_cache; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wl,--allow-shlib-undefined"
- 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;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "kde_cv_prog_cxx_$kde_cache=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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS="$save_CXXFLAGS"
- 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
-
-if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
- KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
- KDE_NO_UNDEFINED=""
-fi
-
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- :
- KDE_NO_UNDEFINED=""
-fi
-
- ;;
- esac
- fi
-
-
-
-
-
- # Check whether --enable-nmcheck was given.
-if test "${enable_nmcheck+set}" = set; then
- enableval=$enable_nmcheck; kde_use_nmcheck=$enableval
-else
- kde_use_nmcheck=no
-fi
-
-
- if test "$kde_use_nmcheck" = "yes"; then
- KDE_USE_NMCHECK_TRUE=""
- KDE_USE_NMCHECK_FALSE="#"
- else
- KDE_USE_NMCHECK_TRUE="#"
- KDE_USE_NMCHECK_FALSE=""
- fi
-
-
-
-
-
-
-
-CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
-# 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=no
-fi
-
-
-
-
-
-
- # Check whether --enable-libsuffix was given.
-if test "${enable_libsuffix+set}" = set; then
- enableval=$enable_libsuffix; kdelibsuff=$enableval
-else
- kdelibsuff="auto"
-fi
-
-
- if test "$kdelibsuff" = "auto"; then
-
-cat > conftest.c << EOF
-#include <stdio.h>
-int main() {
- return 0;
-}
-EOF
- kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
- s,.*/lib\([^\/]*\)/.*,\1,
- p
-}'`
- rm -rf conftest.*
- fi
-
- if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
- kdelibsuff=
- fi
- if test -z "$kdelibsuff"; then
- { echo "$as_me:$LINENO: result: not using lib directory suffix" >&5
-echo "${ECHO_T}not using lib directory suffix" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define KDELIBSUFF ""
-_ACEOF
-
- else
- if test "$libdir" = '${exec_prefix}/lib'; then
- libdir="$libdir${kdelibsuff}"
- libdir="$libdir"
- fi
-
-cat >>confdefs.h <<_ACEOF
-#define KDELIBSUFF "${kdelibsuff}"
-_ACEOF
-
- { echo "$as_me:$LINENO: result: using lib directory suffix $kdelibsuff" >&5
-echo "${ECHO_T}using lib directory suffix $kdelibsuff" >&6; }
- 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
-
-
-{ 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 && break
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-
-fi
-
-SED=$lt_cv_path_SED
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
-
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
- # Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_GREP_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_GREP=$GREP
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
- # Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_EGREP_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
-
- fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
- { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { echo "$as_me:$LINENO: result: $LD" >&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 ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&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'
-
-{ 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_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/${ac_tool_prefix}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"
- 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
- ;;
-
-bsdi4*)
- 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*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-mingw* | pw32*)
- # 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='win32_libid'
- ;;
-
-darwin* | rhapsody*)
- # this will be overwritten by pass_all, but leave it in just in case
- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- case "$host_os" in
- rhapsody* | darwin1.[012])
- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
- ;;
- *) # Darwin 1.3 on
- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
- ;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu)
- 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)/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
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- irix5* | nonstopux*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux*)
- case $host_cpu in
- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
- lt_cv_deplibs_check_method=pass_all ;;
- # the debian people say, arm and glibc 2.3.1 works for them with pass_all
- arm* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-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*)
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- else
- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
- esac
- ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | 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"}
-
-# 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 8077 "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*)
- LINUX_64_MODE="32"
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*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*)
- LINUX_64_MODE="64"
- 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); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- lt_cv_cc_needs_belf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- lt_cv_cc_needs_belf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-
-{ 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 <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_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 <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$F77"; then
- ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
- { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$F77" && break
- done
-fi
-if test -z "$F77"; then
- ac_ct_F77=$F77
- for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_F77"; then
- ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_F77="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
- { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$ac_ct_F77" && break
-done
-
- if test "x$ac_ct_F77" = x; then
- F77=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- F77=$ac_ct_F77
- fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file. (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
- program main
-#ifndef __GNUC__
- choke me
-#endif
-
- end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_f77_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_f77_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_f77_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_f77_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_prog_f77_g=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
- FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
- if test "x$ac_cv_f77_compiler_gnu" = xyes; then
- FFLAGS="-g -O2"
- else
- FFLAGS="-g"
- fi
-else
- if test "x$ac_cv_f77_compiler_gnu" = xyes; then
- FFLAGS="-O2"
- else
- FFLAGS=
- fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo yes`
-ac_ext=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
- testring="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;
- ;;
-
- *)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
- = "XX$testring") >/dev/null 2>&1 &&
- new_result=`expr "X$testring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- testring=$testring$testring
- done
- testring=
- # 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 the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# 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'"
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris* | sysv5*)
- symcode='[BDT]'
- ;;
-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='[ABCDGISTW]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # 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 <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- 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
- # 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 <<EOF > 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 <<EOF >> 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 s/^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 M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AR="ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-else
- AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$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="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
- ;;
- *)
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# 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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-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=yes
-enable_win32_dll=no
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
- withval=$with_pic; pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\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"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-#
-# Check for any special shared library compilation flags.
-#
-lt_prog_cc_shlib=
-if test "$GCC" = no; then
- case $host_os in
- sco3.2v5*)
- lt_prog_cc_shlib='-belf'
- ;;
- esac
-fi
-if test -n "$lt_prog_cc_shlib"; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
-echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
- if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then :
- else
- { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
-echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
- lt_cv_prog_cc_can_build_shared=no
- fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The compiler 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
- 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
-
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9818: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:9822: \$? = $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
- if test ! -s conftest.err; 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'
- ;;
-
- 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
- ;;
-
- 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 in
- icc* | ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- 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'
- ;;
-
- sco3.2v5*)
- lt_prog_compiler_pic='-Kpic'
- lt_prog_compiler_static='-dn'
- ;;
-
- solaris*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10051: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:10055: \$? = $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
- if test ! -s conftest.err; 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
-
-{ 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10118: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:10122: \$? = $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
- if test ! -s out/conftest.err; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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=
-
- 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
- ;;
- 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}'
-
- # 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 <<EOF 1>&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 <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we 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 <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $compiler_flags $libobjs $deplibs ${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=no
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = yes; then
- 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
- 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 "$link_static_flag"; 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
-
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- always_export_symbols=no
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- # -bexpall does not export symbols beginning with underscore (_)
- always_export_symbols=yes
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec=' '
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${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
- ;;
-
- bsdi4*)
- 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=no
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $compiler_flags $libobjs `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*)
- if test "$GXX" = yes ; then
- archive_cmds_need_lc=no
- 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
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- whole_archive_flag_spec='-all_load $convenience'
- link_all_deplibs=yes
- else
- ld_shlibs=no
- fi
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- 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)
- archive_cmds='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~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* | hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- *)
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- esac
- else
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
- ;;
- *)
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld='+b $libdir'
- hardcode_libdir_separator=:
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- ia64*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=no
- hardcode_shlibpath_var=no
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- *)
- 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
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 ${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=:
- ;;
-
- sco3.2v5*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- no_undefined_flag=' -z text'
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~$rm $lib.exp'
- else
- 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].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- 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 $compiler_flags $libobjs $deplibs'
- 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.2uw2*)
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=no
- hardcode_shlibpath_var=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
- no_undefined_flag='${wl}-z ${wl}text'
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- else
- archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- fi
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv5*)
- no_undefined_flag=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- 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'
- hardcode_libdir_flag_spec=
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- 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
-
-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
-
-#
-# 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
- 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.01* | freebsdelf3.01*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-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
-
-{ 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); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
- lt_cv_dlopen="shl_load"
-else
- { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-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 <limits.h> declares dlopen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
- lt_cv_dlopen="dlopen"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_svld_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_dld_link=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-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"
- 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 <<EOF
-#line 12204 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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
- LDFLAGS="$LDFLAGS $link_static_flag"
- { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-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 <<EOF
-#line 12302 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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 librarie types wil actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ 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*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- darwin* | rhapsody*)
- if test "$GCC" = yes; then
- archive_cmds_need_lc=no
- 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
- output_verbose_link_cmd='echo'
- archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- module_cmds='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- whole_archive_flag_spec='-all_load $convenience'
- link_all_deplibs=yes
- else
- ld_shlibs=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 NM SED SHELL \
- 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 <gord@gnu.ai.mit.edu>, 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 s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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
-
- # 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"; 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_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=cc
-
-# 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"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# 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
- 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
- unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-compiler_CXX=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# 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 GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { echo "$as_me:$LINENO: result: $LD" >&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 ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -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
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- always_export_symbols_CXX=no
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_CXX='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- archive_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_CXX=' ${wl}-bernotok'
- allow_undefined_flag_CXX=' ${wl}-berok'
- # -bexpall does not export symbols beginning with underscore (_)
- always_export_symbols_CXX=yes
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_CXX=' '
- archive_cmds_need_lc_CXX=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- 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=no
- 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes; then
- archive_cmds_need_lc_CXX=no
- 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
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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 $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
-
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- 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 $compiler_flags $libobjs $deplibs -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 ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- hardcode_direct_CXX=no
- hardcode_automatic_CXX=yes
- hardcode_shlibpath_var_CXX=unsupported
- whole_archive_flag_spec_CXX='-all_load $convenience'
- link_all_deplibs_CXX=yes
- else
- ld_shlibs_CXX=no
- 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
- ;;
- freebsd12*)
- # 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)
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~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
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
- hardcode_libdir_separator_CXX=:
- ;;
- ia64*)
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- export_dynamic_flag_spec_CXX='${wl}-E'
- ;;
- esac
- fi
- case "$host_cpu" in
- hppa*64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- ;;
- ia64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- *)
- 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*|ia64*)
- archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- 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
- ia64*|hppa*64*)
- archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
- ;;
- *)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC)
- # SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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
- archive_cmds_need_lc_CXX=no
- archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- 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'
- ;;
- cxx)
- # Compaq C++
- archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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::"'
- ;;
- 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $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} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${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
- ;;
- sco*)
- archive_cmds_need_lc_CXX=no
- case $cc_basename in
- CC)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
- 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++
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
- 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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- link_all_deplibs_CXX=yes
-
- # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
- # 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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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
- ;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
- archive_cmds_need_lc_CXX=no
- ;;
- 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"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-EOF
-
-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
- # 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|*.$libext)
- # 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
-
-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=
- ;;
- 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
- ;;
- 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)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_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="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
- case "$host_cpu" in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_CXX='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- 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)
- # Intel C++
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- 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*)
- ;;
- sco*)
- case $cc_basename in
- CC)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- *)
- ;;
- esac
- ;;
- 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
- ;;
- unixware*)
- ;;
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14463: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:14467: \$? = $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
- if test ! -s conftest.err; 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
-
-{ 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14530: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:14534: \$? = $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
- if test ! -s out/conftest.err; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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 '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[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
-
-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
-
-#
-# 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
- 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.01* | freebsdelf3.01*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-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
-
-{ 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
-
-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); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- 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 <limits.h> declares shl_load.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
- lt_cv_dlopen="shl_load"
-else
- { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
- 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 <limits.h> declares dlopen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
- lt_cv_dlopen="dlopen"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_svld_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_dld_link=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
- 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"
- 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 <<EOF
-#line 15833 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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
- LDFLAGS="$LDFLAGS $link_static_flag"
- { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-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 <<EOF
-#line 15931 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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
-
-
-# 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 NM SED SHELL \
- 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ 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*)
- test "$enable_shared" = yes && enable_static=no
- ;;
-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; }
-
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-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'
- ;;
-
- 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
- ;;
-
- 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 in
- icc* | ecc*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-static'
- ;;
- 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'
- ;;
-
- sco3.2v5*)
- lt_prog_compiler_pic_F77='-Kpic'
- lt_prog_compiler_static_F77='-dn'
- ;;
-
- solaris*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- 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* | sysv5*)
- 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
- ;;
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16754: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:16758: \$? = $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
- if test ! -s conftest.err; 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
-
-{ 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16821: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:16825: \$? = $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
- if test ! -s out/conftest.err; then
- lt_cv_prog_compiler_c_o_F77=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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=
-
- 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
- ;;
- 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}'
-
- # 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 <<EOF 1>&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 <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we 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 <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_F77='$CC -nostart $compiler_flags $libobjs $deplibs ${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=no
- always_export_symbols_F77=no
- enable_shared_with_static_runtimes_F77=yes
- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- ld_shlibs=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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs_F77=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
-
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${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" = yes; then
- 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
- 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 "$link_static_flag"; 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
-
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- always_export_symbols_F77=no
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_F77='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_f77_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_f77_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_F77=' ${wl}-bernotok'
- allow_undefined_flag_F77=' ${wl}-berok'
- # -bexpall does not export symbols beginning with underscore (_)
- always_export_symbols_F77=yes
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_F77=' '
- archive_cmds_need_lc_F77=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${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
- ;;
-
- bsdi4*)
- 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=no
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_F77='$CC -o $lib $compiler_flags $libobjs `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='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes_F77=yes
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes ; then
- archive_cmds_need_lc_F77=no
- 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
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- 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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- hardcode_direct_F77=no
- hardcode_automatic_F77=yes
- hardcode_shlibpath_var_F77=unsupported
- whole_archive_flag_spec_F77='-all_load $convenience'
- link_all_deplibs_F77=yes
- else
- ld_shlibs_F77=no
- 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)
- archive_cmds_F77='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~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* | hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- *)
- archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- esac
- else
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
- ;;
- *)
- archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld_F77='+b $libdir'
- hardcode_libdir_separator_F77=:
- hardcode_direct_F77=no
- hardcode_shlibpath_var_F77=no
- ;;
- ia64*)
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_direct_F77=no
- hardcode_shlibpath_var_F77=no
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_F77=yes
- ;;
- *)
- 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
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 ${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=:
- ;;
-
- sco3.2v5*)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_F77=no
- export_dynamic_flag_spec_F77='${wl}-Bexport'
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- no_undefined_flag_F77=' -z text'
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~$rm $lib.exp'
- else
- 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].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
- 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 $compiler_flags $libobjs $deplibs'
- 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.2uw2*)
- archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_F77=yes
- hardcode_minus_L_F77=no
- hardcode_shlibpath_var_F77=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
- no_undefined_flag_F77='${wl}-z ${wl}text'
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- else
- archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- fi
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var_F77=no
- ;;
-
- sysv5*)
- no_undefined_flag_F77=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- 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'
- hardcode_libdir_flag_spec_F77=
- hardcode_shlibpath_var_F77=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- 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
-
-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
-
-#
-# 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
- 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.01* | freebsdelf3.01*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-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
-
-{ 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
-
-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
-
-
-
-# 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 NM SED SHELL \
- 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:18789: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:18793: \$? = $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
- if test ! -s conftest.err; 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'
- ;;
-
- 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
- ;;
-
- 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 in
- icc* | ecc*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-static'
- ;;
- 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'
- ;;
-
- sco3.2v5*)
- lt_prog_compiler_pic_GCJ='-Kpic'
- lt_prog_compiler_static_GCJ='-dn'
- ;;
-
- solaris*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- 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* | sysv5*)
- 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
- ;;
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19022: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:19026: \$? = $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
- if test ! -s conftest.err; 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
-
-{ 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
-
- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
- # that will create temporary files in the current directory regardless of
- # the output directory. Thus, making CWD read-only will cause this test
- # to fail, enabling locking or at least warning the user not to do parallel
- # builds.
- chmod -w .
-
- 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}? :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19089: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:19093: \$? = $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
- if test ! -s out/conftest.err; then
- lt_cv_prog_compiler_c_o_GCJ=yes
- fi
- fi
- chmod u+w .
- $rm conftest* 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=
-
- 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
- ;;
- 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}'
-
- # 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 <<EOF 1>&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 <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we 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 <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_GCJ='$CC -nostart $compiler_flags $libobjs $deplibs ${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=no
- always_export_symbols_GCJ=no
- enable_shared_with_static_runtimes_GCJ=yes
- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
- else
- ld_shlibs=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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs_GCJ=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
- 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 $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${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" = yes; then
- 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
- 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 "$link_static_flag"; 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
-
- # KDE requires run time linking. Make it the default.
- aix_use_runtimelinking=yes
- 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'
- 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='-qmkshrobj ${wl}-G'
- else
- shared_flag='-qmkshrobj'
- fi
- fi
- fi
-
- # Let the compiler handle the export list.
- always_export_symbols_GCJ=no
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_GCJ='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; 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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
- archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `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 $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-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_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_GCJ=' ${wl}-bernotok'
- allow_undefined_flag_GCJ=' ${wl}-berok'
- # -bexpall does not export symbols beginning with underscore (_)
- always_export_symbols_GCJ=yes
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_GCJ=' '
- archive_cmds_need_lc_GCJ=yes
- # This is similar to how AIX traditionally builds it's shared libraries.
- archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${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
- ;;
-
- bsdi4*)
- 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=no
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_GCJ='$CC -o $lib $compiler_flags $libobjs `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='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes_GCJ=yes
- ;;
-
- darwin* | rhapsody*)
- if test "$GXX" = yes ; then
- archive_cmds_need_lc_GCJ=no
- 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
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep '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_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
- else
- archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
- fi
- module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- 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 $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- hardcode_direct_GCJ=no
- hardcode_automatic_GCJ=yes
- hardcode_shlibpath_var_GCJ=unsupported
- whole_archive_flag_spec_GCJ='-all_load $convenience'
- link_all_deplibs_GCJ=yes
- else
- ld_shlibs_GCJ=no
- 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)
- archive_cmds_GCJ='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~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* | hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- *)
- archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
- ;;
- esac
- else
- case "$host_cpu" in
- hppa*64*|ia64*)
- archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
- ;;
- *)
- archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
- hardcode_libdir_separator_GCJ=:
- hardcode_direct_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- ;;
- ia64*)
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_direct_GCJ=no
- hardcode_shlibpath_var_GCJ=no
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_GCJ=yes
- ;;
- *)
- 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
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs$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} $compiler_flags $libobjs $deplibs ${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} $compiler_flags $libobjs $deplibs ${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 ${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=:
- ;;
-
- sco3.2v5*)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_GCJ=no
- export_dynamic_flag_spec_GCJ='${wl}-Bexport'
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- no_undefined_flag_GCJ=' -z text'
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- 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 $compiler_flags $libobjs $deplibs~$rm $lib.exp'
- else
- 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].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
- 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 $compiler_flags $libobjs $deplibs'
- 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.2uw2*)
- archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_GCJ=yes
- hardcode_minus_L_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
- no_undefined_flag_GCJ='${wl}-z ${wl}text'
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- else
- archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
- fi
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- sysv5*)
- no_undefined_flag_GCJ=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- 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'
- hardcode_libdir_flag_spec_GCJ=
- hardcode_shlibpath_var_GCJ=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- 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
-
-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
-
-#
-# 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
- 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=".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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-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<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- 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
- ;;
-
-bsdi4*)
- 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=".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'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext='$(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*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.01* | freebsdelf3.01*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- 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='.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='.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='.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'
- ;;
-
-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'
- libsuff=
- if test "x$LINUX_64_MODE" = x64; then
- # Some platforms are per default 64-bit, so there's no /lib64
- if test -d /lib64 -a ! -h /lib64; then
- libsuff=64
- fi
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${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
- need_lib_prefix=no
- need_version=no
- 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=".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"
- ;;
-
-sco3.2v5*)
- version_type=osf
- 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
- ;;
-
-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.2uw2* | sysv4.3* | sysv5*)
- 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
- ;;
-
-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
-
-{ 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
-
-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); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
- lt_cv_dlopen="shl_load"
-else
- { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-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 <limits.h> declares dlopen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
- lt_cv_dlopen="dlopen"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_svld_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_dld_link=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-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"
- 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 <<EOF
-#line 21175 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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
- LDFLAGS="$LDFLAGS $link_static_flag"
- { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-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 <<EOF
-#line 21273 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#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); */
- }
-
- 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; ) 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_unknown|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
-
-
-# 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 NM SED SHELL \
- 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$CC
-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 NM SED SHELL \
- 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
-
-# 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
-
-# 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=$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='$shrext'
-
-# 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.
- test -f Makefile && make "$ltmain"
-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 --silent'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-LIBTOOL_SHELL="/bin/sh ./libtool"
-# LIBTOOL="$LIBTOOL --silent"
-KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
-
-
-# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
-KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
-
-
-# we patch configure quite some so we better keep that consistent for incremental runs
-AUTOCONF='$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure'
-
-
-
-
-
-
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-
-
-
-
-
-#AM_INIT_AUTOMAKE(taglib,1.0)
-
-
-
-
-
-if test "${ac_cv_header_zlib_h+set}" = set; then
- { echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_zlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking zlib.h usability" >&5
-echo $ECHO_N "checking zlib.h 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 <zlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking zlib.h presence" >&5
-echo $ECHO_N "checking zlib.h 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 <zlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: zlib.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_zlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_zlib_h=$ac_header_preproc
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6; }
-
-fi
-if test $ac_cv_header_zlib_h = yes; then
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ZLIB 1
-_ACEOF
-
- have_zlib=true
-
-else
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ZLIB 0
-_ACEOF
-
- have_zlib=false
-
-fi
-
-
- if test x$have_zlib = xtrue; then
- link_zlib_TRUE=
- link_zlib_FALSE='#'
-else
- link_zlib_TRUE='#'
- link_zlib_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
-
-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-
-
-
-if test "${ac_cv_header_cppunit_extensions_HelperMacros_h+set}" = set; then
- { echo "$as_me:$LINENO: checking for cppunit/extensions/HelperMacros.h" >&5
-echo $ECHO_N "checking for cppunit/extensions/HelperMacros.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_cppunit_extensions_HelperMacros_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_cppunit_extensions_HelperMacros_h" >&5
-echo "${ECHO_T}$ac_cv_header_cppunit_extensions_HelperMacros_h" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking cppunit/extensions/HelperMacros.h usability" >&5
-echo $ECHO_N "checking cppunit/extensions/HelperMacros.h 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 <cppunit/extensions/HelperMacros.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking cppunit/extensions/HelperMacros.h presence" >&5
-echo $ECHO_N "checking cppunit/extensions/HelperMacros.h 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 <cppunit/extensions/HelperMacros.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: cppunit/extensions/HelperMacros.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: cppunit/extensions/HelperMacros.h: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for cppunit/extensions/HelperMacros.h" >&5
-echo $ECHO_N "checking for cppunit/extensions/HelperMacros.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_cppunit_extensions_HelperMacros_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_cppunit_extensions_HelperMacros_h=$ac_header_preproc
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_cppunit_extensions_HelperMacros_h" >&5
-echo "${ECHO_T}$ac_cv_header_cppunit_extensions_HelperMacros_h" >&6; }
-
-fi
-if test $ac_cv_header_cppunit_extensions_HelperMacros_h = yes; then
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CPPUNIT 1
-_ACEOF
-
- have_cppunit=true
-
-else
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CPPUNIT 0
-_ACEOF
-
- have_cppunit=false
-
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- if test x$have_cppunit = xtrue; then
- build_tests_TRUE=
- build_tests_FALSE='#'
-else
- build_tests_TRUE='#'
- build_tests_FALSE=
-fi
-
-
-
-
-DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
-TOPSUBDIRS=""
-
-if test ! -s $srcdir/subdirs; then
- files=`cd $srcdir && ls -1`
- dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
- for i in $dirs; do
- echo $i >> $srcdir/subdirs
- done
-fi
-
-ac_topsubdirs=
-if test -s $srcdir/inst-apps; then
- ac_topsubdirs="`cat $srcdir/inst-apps`"
-elif test -s $srcdir/subdirs; then
- ac_topsubdirs="`cat $srcdir/subdirs`"
-fi
-
-for i in $ac_topsubdirs; do
- { echo "$as_me:$LINENO: checking if $i should be compiled" >&5
-echo $ECHO_N "checking if $i should be compiled... $ECHO_C" >&6; }
- if test -d $srcdir/$i; then
- install_it="yes"
- for j in $DO_NOT_COMPILE; do
- if test $i = $j; then
- install_it="no"
- fi
- done
- else
- install_it="no"
- fi
- { echo "$as_me:$LINENO: result: $install_it" >&5
-echo "${ECHO_T}$install_it" >&6; }
- vari=`echo $i | sed -e 's,[-+.@],_,g'`
- if test $install_it = "yes"; then
- TOPSUBDIRS="$TOPSUBDIRS $i"
- eval "$vari""_SUBDIR_included=yes"
- else
- eval "$vari""_SUBDIR_included=no"
- fi
-done
-
-
-
-ac_config_files="$ac_config_files Makefile"
-
-ac_config_files="$ac_config_files bindings/Makefile"
-
-ac_config_files="$ac_config_files bindings/c/Makefile"
-
-ac_config_files="$ac_config_files examples/Makefile"
-
-ac_config_files="$ac_config_files taglib/Makefile"
-
-ac_config_files="$ac_config_files taglib/ape/Makefile"
-
-ac_config_files="$ac_config_files taglib/flac/Makefile"
-
-ac_config_files="$ac_config_files taglib/mpc/Makefile"
-
-ac_config_files="$ac_config_files taglib/mpeg/Makefile"
-
-ac_config_files="$ac_config_files taglib/mpeg/id3v1/Makefile"
-
-ac_config_files="$ac_config_files taglib/mpeg/id3v2/Makefile"
-
-ac_config_files="$ac_config_files taglib/mpeg/id3v2/frames/Makefile"
-
-ac_config_files="$ac_config_files taglib/ogg/Makefile"
-
-ac_config_files="$ac_config_files taglib/ogg/flac/Makefile"
-
-ac_config_files="$ac_config_files taglib/ogg/speex/Makefile"
-
-ac_config_files="$ac_config_files taglib/ogg/vorbis/Makefile"
-
-ac_config_files="$ac_config_files taglib/toolkit/Makefile"
-
-ac_config_files="$ac_config_files taglib/trueaudio/Makefile"
-
-ac_config_files="$ac_config_files taglib/wavpack/Makefile"
-
-ac_config_files="$ac_config_files tests/Makefile"
-
-ac_config_files="$ac_config_files taglib-config"
-
-ac_config_files="$ac_config_files taglib.pc"
-
-ac_config_files="$ac_config_files bindings/c/taglib_c.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}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${unsermake_enable_pch_TRUE}" && test -z "${unsermake_enable_pch_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"unsermake_enable_pch\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"unsermake_enable_pch\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${link_zlib_TRUE}" && test -z "${link_zlib_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"link_zlib\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"link_zlib\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${build_tests_TRUE}" && test -z "${build_tests_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"build_tests\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"build_tests\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.61. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.61,
- with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- echo "$ac_cs_version"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- { echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- CONFIG_SHELL=$SHELL
- export CONFIG_SHELL
- exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;;
- "bindings/c/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/c/Makefile" ;;
- "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
- "taglib/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/Makefile" ;;
- "taglib/ape/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/ape/Makefile" ;;
- "taglib/flac/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/flac/Makefile" ;;
- "taglib/mpc/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/mpc/Makefile" ;;
- "taglib/mpeg/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/mpeg/Makefile" ;;
- "taglib/mpeg/id3v1/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/mpeg/id3v1/Makefile" ;;
- "taglib/mpeg/id3v2/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/mpeg/id3v2/Makefile" ;;
- "taglib/mpeg/id3v2/frames/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/mpeg/id3v2/frames/Makefile" ;;
- "taglib/ogg/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/ogg/Makefile" ;;
- "taglib/ogg/flac/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/ogg/flac/Makefile" ;;
- "taglib/ogg/speex/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/ogg/speex/Makefile" ;;
- "taglib/ogg/vorbis/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/ogg/vorbis/Makefile" ;;
- "taglib/toolkit/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/toolkit/Makefile" ;;
- "taglib/trueaudio/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/trueaudio/Makefile" ;;
- "taglib/wavpack/Makefile") CONFIG_FILES="$CONFIG_FILES taglib/wavpack/Makefile" ;;
- "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
- "taglib-config") CONFIG_FILES="$CONFIG_FILES taglib-config" ;;
- "taglib.pc") CONFIG_FILES="$CONFIG_FILES taglib.pc" ;;
- "bindings/c/taglib_c.pc") CONFIG_FILES="$CONFIG_FILES bindings/c/taglib_c.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_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp=
- trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-target!$target$ac_delim
-target_cpu!$target_cpu$ac_delim
-target_vendor!$target_vendor$ac_delim
-target_os!$target_os$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-am__isrc!$am__isrc$ac_delim
-CYGPATH_W!$CYGPATH_W$ac_delim
-PACKAGE!$PACKAGE$ac_delim
-VERSION!$VERSION$ac_delim
-ACLOCAL!$ACLOCAL$ac_delim
-AUTOCONF!$AUTOCONF$ac_delim
-AUTOMAKE!$AUTOMAKE$ac_delim
-AUTOHEADER!$AUTOHEADER$ac_delim
-MAKEINFO!$MAKEINFO$ac_delim
-install_sh!$install_sh$ac_delim
-STRIP!$STRIP$ac_delim
-INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
-mkdir_p!$mkdir_p$ac_delim
-AWK!$AWK$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-am__leading_dot!$am__leading_dot$ac_delim
-AMTAR!$AMTAR$ac_delim
-am__tar!$am__tar$ac_delim
-am__untar!$am__untar$ac_delim
-CONF_FILES!$CONF_FILES$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
-CPP!$CPP$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
-WOVERLOADED_VIRTUAL!$WOVERLOADED_VIRTUAL$ac_delim
-HAVE_GCC_VISIBILITY!$HAVE_GCC_VISIBILITY$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 <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$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
-unsermake_enable_pch_TRUE!$unsermake_enable_pch_TRUE$ac_delim
-unsermake_enable_pch_FALSE!$unsermake_enable_pch_FALSE$ac_delim
-USE_EXCEPTIONS!$USE_EXCEPTIONS$ac_delim
-USE_RTTI!$USE_RTTI$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-NOOPT_CXXFLAGS!$NOOPT_CXXFLAGS$ac_delim
-NOOPT_CFLAGS!$NOOPT_CFLAGS$ac_delim
-ENABLE_PERMISSIVE_FLAG!$ENABLE_PERMISSIVE_FLAG$ac_delim
-LDFLAGS_AS_NEEDED!$LDFLAGS_AS_NEEDED$ac_delim
-LDFLAGS_NEW_DTAGS!$LDFLAGS_NEW_DTAGS$ac_delim
-KDE_USE_FINAL_TRUE!$KDE_USE_FINAL_TRUE$ac_delim
-KDE_USE_FINAL_FALSE!$KDE_USE_FINAL_FALSE$ac_delim
-KDE_USE_CLOSURE_TRUE!$KDE_USE_CLOSURE_TRUE$ac_delim
-KDE_USE_CLOSURE_FALSE!$KDE_USE_CLOSURE_FALSE$ac_delim
-KDE_NO_UNDEFINED!$KDE_NO_UNDEFINED$ac_delim
-KDE_USE_NMCHECK_TRUE!$KDE_USE_NMCHECK_TRUE$ac_delim
-KDE_USE_NMCHECK_FALSE!$KDE_USE_NMCHECK_FALSE$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
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-KDE_PLUGIN!$KDE_PLUGIN$ac_delim
-KDE_CHECK_PLUGIN!$KDE_CHECK_PLUGIN$ac_delim
-all_includes!$all_includes$ac_delim
-all_libraries!$all_libraries$ac_delim
-AUTODIRS!$AUTODIRS$ac_delim
-link_zlib_TRUE!$link_zlib_TRUE$ac_delim
-link_zlib_FALSE!$link_zlib_FALSE$ac_delim
-build_tests_TRUE!$build_tests_TRUE$ac_delim
-build_tests_FALSE!$build_tests_FALSE$ac_delim
-TOPSUBDIRS!$TOPSUBDIRS$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` = 39; 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 <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
- { (exit 1); exit 1; }; };;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
- { (exit 1); exit 1; }; };;
- esac
- ac_file_inputs="$ac_file_inputs $ac_f"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input="Generated from "`IFS=:
- echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- fi
-
- case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin";;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { as_dir="$ac_dir"
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
-
- rm -f "$tmp/stdin"
- case $ac_file in
- -) cat "$tmp/out"; rm -f "$tmp/out";;
- *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
- esac
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status. If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless. But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*'
-ac_dB='\\)[ (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
- sed -n '
- t rset
- :rset
- s/^[ ]*#[ ]*define[ ][ ]*//
- t ok
- d
- :ok
- s/[\\&,]/\\&/g
- s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
- s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
- ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[ #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
- # Write a here document:
- cat >>$CONFIG_STATUS <<_ACEOF
- # First, check the format of the line:
- cat >"\$tmp/defines.sed" <<\\CEOF
-/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def
-/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def
-b
-:def
-_ACEOF
- sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
- ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
- sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
- grep . conftest.tail >/dev/null || break
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
- if test x"$ac_file" != x-; then
- echo "/* $configure_input */" >"$tmp/config.h"
- cat "$ac_result" >>"$tmp/config.h"
- if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f $ac_file
- mv "$tmp/config.h" $ac_file
- fi
- else
- echo "/* $configure_input */"
- cat "$ac_result"
- fi
- rm -f "$tmp/out12"
-# Compute $ac_file's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $ac_file | $ac_file:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
- X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
-echo X$ac_file |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed 10q "$mf" | grep '^#.*generated by automake' > /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
-if test "x$with_fast_perl" = "xyes"; then
- perl -i.bak $ac_aux_dir/conf.change.pl $CONFIG_STATUS \
- || mv $CONFIG_STATUS.bak $CONFIG_STATUS
- rm -f $CONFIG_STATUS.bak
-fi
-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
-
-if test "x$have_zlib" = "xfalse"; then
- echo "**************************************************"
- echo "*"
- echo "* You don't seem to have libz / zlib.h installed."
- echo "* Compressed frames have been disabled."
- echo "*"
- echo "**************************************************"
-fi
-# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
-if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
- # And if so, warn when they don't match
- if test "$kde_libs_prefix" != "$given_prefix"; then
- # And if kde doesn't know about the prefix yet
- echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
- if test $? -ne 0; then
- echo ""
- echo "Warning: you chose to install this package in $given_prefix,"
- echo "but KDE was found in $kde_libs_prefix."
- echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
- echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
- echo "Then restart KDE."
- echo ""
- fi
- fi
-fi
-
-if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
- echo ""
- echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
- echo "was not included. Therefore, GCC symbol visibility support remains disabled."
- echo ""
- echo "For better performance, consider including the Qt visibility supporting patch"
- echo "located at:"
- echo ""
- echo "http://bugs.kde.org/show_bug.cgi?id=109386"
- echo ""
- echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
- echo "everything will continue to work just fine without it."
- echo ""
-fi
-
-if test "$all_tests" = "bad"; then
- if test ! "$cache_file" = "/dev/null"; then
- echo ""
- echo "Please remove the file $cache_file after changing your setup"
- echo "so that configure will find the changes next time."
- echo ""
- fi
-else
- echo ""
- echo "Good - your configure finished. Start make now"
- echo ""
-fi
diff --git a/libs/taglib/configure.files b/libs/taglib/configure.files
deleted file mode 100644
index ad8f660b77..0000000000
--- a/libs/taglib/configure.files
+++ /dev/null
@@ -1,3 +0,0 @@
-configure.in.in
-./bindings/c/configure.in.in
-configure.in.bot
diff --git a/libs/taglib/configure.in b/libs/taglib/configure.in
deleted file mode 100644
index 93906ede48..0000000000
--- a/libs/taglib/configure.in
+++ /dev/null
@@ -1,220 +0,0 @@
-dnl =======================================================
-dnl FILE: configure.in.in
-dnl =======================================================
-
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
-dnl modified by Walter Tasin (tasin@kdevelop.org)
-dnl for c++ console applications
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-dnl Boston, MA 02111-1307, USA.
-
-# Original Author was Kalle@kde.org
-# I lifted it in some mater. (Stephan Kulow)
-# I used much code from Janos Farkas
-
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(acinclude.m4) dnl a source file from your sub dir
-
-dnl This is so we can use kde-common
-AC_CONFIG_AUX_DIR(admin)
-
-dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
-unset CDPATH
-
-dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_SYSTEM
-dnl Perform program name transformation
-AC_ARG_PROGRAM
-
-dnl Automake doc recommends to do this only here. (Janos)
-AM_INIT_AUTOMAKE(taglib,1.4)
-
-dnl almost the same like KDE_SET_PEFIX but the path is /usr/local
-dnl
-unset CDPATH
-dnl make /usr/local the default for the installation
-AC_PREFIX_DEFAULT(/usr/local)
-
-if test "x$prefix" = "xNONE"; then
- prefix=$ac_default_prefix
- ac_configure_args="$ac_configure_args --prefix $prefix"
-fi
-KDE_FAST_CONFIGURE
-KDE_CONF_FILES
-
-dnl without this order in this file, automake will be confused!
-dnl
-AM_CONFIG_HEADER(config.h)
-
-dnl checks for programs.
-dnl first check for c/c++ compilers
-AC_CHECK_COMPILERS
-
-dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
-dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
-CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
-
-dnl create only shared libtool-libraries
-AC_ENABLE_SHARED(yes)
-
-dnl set the following to yes, if you want to create static
-dnl libtool-libraries, too.
-AC_ENABLE_STATIC(no)
-
-dnl create a working libtool-script
-KDE_PROG_LIBTOOL
-
-dnl activate the next macro call for DLOPEN tests and setting LIBDL
-dnl (n.b. KDE_MISC_TESTS does the same to you, so use either this or the next one)
-dnl KDE_CHECK_DLOPEN
-
-dnl activate the next macro call for some additional tests
-dnl (compat, crypt, socket, nsl, dlopen, ...)
-dnl KDE_MISC_TESTS dnl __kdevelop__
-
-dnl KDE_NEED_FLEX dnl __kdevelop__
-dnl AC_PROG_YACC dnl __kdevelop__
-
-dnl KDE_CHECK_EXTRA_LIBS
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
-
-AC_SUBST(AUTODIRS)
-
-#AM_INIT_AUTOMAKE(taglib,1.0)
-dnl don't remove the below
-dnl AC_OUTPUT(taglib-config)
-dnl AC_OUTPUT(taglib.pc)
-
-AC_DEFUN([AC_HAVE_ZLIB],
-[
- AC_DEFINE(HAVE_ZLIB, 1, [have zlib])
- have_zlib=true
-])
-
-AC_DEFUN([AC_NO_ZLIB],
-[
- AC_DEFINE(HAVE_ZLIB, 0, [have zlib])
- have_zlib=false
-])
-
-AC_CHECK_HEADER(zlib.h, AC_HAVE_ZLIB, AC_NO_ZLIB)
-AM_CONDITIONAL(link_zlib, test x$have_zlib = xtrue)
-
-AC_DEFUN([AC_HAVE_CPPUNIT],
-[
- AC_DEFINE(HAVE_CPPUNIT, 1, [have cppunit])
- have_cppunit=true
-])
-
-AC_DEFUN([AC_NO_CPPUNIT],
-[
- AC_DEFINE(HAVE_CPPUNIT, 0, [have cppunit])
- have_cppunit=false
-])
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADER(cppunit/extensions/HelperMacros.h, AC_HAVE_CPPUNIT, AC_NO_CPPUNIT)
-AC_LANG_RESTORE
-AM_CONDITIONAL(build_tests, test x$have_cppunit = xtrue)
-dnl =======================================================
-dnl FILE: ./bindings/c/configure.in.in
-dnl =======================================================
-
-dnl AC_OUTPUT(bindings/c/taglib_c.pc)
-KDE_CREATE_SUBDIRSLIST
-AC_CONFIG_FILES([ Makefile ])
-AC_CONFIG_FILES([ bindings/Makefile ])
-AC_CONFIG_FILES([ bindings/c/Makefile ])
-AC_CONFIG_FILES([ examples/Makefile ])
-AC_CONFIG_FILES([ taglib/Makefile ])
-AC_CONFIG_FILES([ taglib/ape/Makefile ])
-AC_CONFIG_FILES([ taglib/flac/Makefile ])
-AC_CONFIG_FILES([ taglib/mpc/Makefile ])
-AC_CONFIG_FILES([ taglib/mpeg/Makefile ])
-AC_CONFIG_FILES([ taglib/mpeg/id3v1/Makefile ])
-AC_CONFIG_FILES([ taglib/mpeg/id3v2/Makefile ])
-AC_CONFIG_FILES([ taglib/mpeg/id3v2/frames/Makefile ])
-AC_CONFIG_FILES([ taglib/ogg/Makefile ])
-AC_CONFIG_FILES([ taglib/ogg/flac/Makefile ])
-AC_CONFIG_FILES([ taglib/ogg/speex/Makefile ])
-AC_CONFIG_FILES([ taglib/ogg/vorbis/Makefile ])
-AC_CONFIG_FILES([ taglib/toolkit/Makefile ])
-AC_CONFIG_FILES([ taglib/trueaudio/Makefile ])
-AC_CONFIG_FILES([ taglib/wavpack/Makefile ])
-AC_CONFIG_FILES([ tests/Makefile ])
-AC_CONFIG_FILES([ taglib-config ])
-AC_CONFIG_FILES([ taglib.pc ])
-AC_CONFIG_FILES([ bindings/c/taglib_c.pc ])
-AC_OUTPUT
-if test "x$have_zlib" = "xfalse"; then
- echo "**************************************************"
- echo "*"
- echo "* You don't seem to have libz / zlib.h installed."
- echo "* Compressed frames have been disabled."
- echo "*"
- echo "**************************************************"
-fi
-# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
-if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
- # And if so, warn when they don't match
- if test "$kde_libs_prefix" != "$given_prefix"; then
- # And if kde doesn't know about the prefix yet
- echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
- if test $? -ne 0; then
- echo ""
- echo "Warning: you chose to install this package in $given_prefix,"
- echo "but KDE was found in $kde_libs_prefix."
- echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
- echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
- echo "Then restart KDE."
- echo ""
- fi
- fi
-fi
-
-if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
- echo ""
- echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
- echo "was not included. Therefore, GCC symbol visibility support remains disabled."
- echo ""
- echo "For better performance, consider including the Qt visibility supporting patch"
- echo "located at:"
- echo ""
- echo "http://bugs.kde.org/show_bug.cgi?id=109386"
- echo ""
- echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
- echo "everything will continue to work just fine without it."
- echo ""
-fi
-
-if test "$all_tests" = "bad"; then
- if test ! "$cache_file" = "/dev/null"; then
- echo ""
- echo "Please remove the file $cache_file after changing your setup"
- echo "so that configure will find the changes next time."
- echo ""
- fi
-else
- echo ""
- echo "Good - your configure finished. Start make now"
- echo ""
-fi
diff --git a/libs/taglib/configure.in.bot b/libs/taglib/configure.in.bot
deleted file mode 100644
index b3e513c0d7..0000000000
--- a/libs/taglib/configure.in.bot
+++ /dev/null
@@ -1,8 +0,0 @@
-if test "x$have_zlib" = "xfalse"; then
- echo "**************************************************"
- echo "*"
- echo "* You don't seem to have libz / zlib.h installed."
- echo "* Compressed frames have been disabled."
- echo "*"
- echo "**************************************************"
-fi
diff --git a/libs/taglib/configure.in.in b/libs/taglib/configure.in.in
deleted file mode 100644
index 0a3414ba6a..0000000000
--- a/libs/taglib/configure.in.in
+++ /dev/null
@@ -1,133 +0,0 @@
-dnl This file is part of the KDE libraries/packages
-dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
-dnl modified by Walter Tasin (tasin@kdevelop.org)
-dnl for c++ console applications
-
-dnl This file is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
-
-dnl You should have received a copy of the GNU Library General Public License
-dnl along with this library; see the file COPYING.LIB. If not, write to
-dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-dnl Boston, MA 02111-1307, USA.
-
-# Original Author was Kalle@kde.org
-# I lifted it in some mater. (Stephan Kulow)
-# I used much code from Janos Farkas
-
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(acinclude.m4) dnl a source file from your sub dir
-
-dnl This is so we can use kde-common
-AC_CONFIG_AUX_DIR(admin)
-
-dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
-unset CDPATH
-
-dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_SYSTEM
-dnl Perform program name transformation
-AC_ARG_PROGRAM
-
-dnl Automake doc recommends to do this only here. (Janos)
-AM_INIT_AUTOMAKE(taglib,1.4)
-
-dnl almost the same like KDE_SET_PEFIX but the path is /usr/local
-dnl
-unset CDPATH
-dnl make /usr/local the default for the installation
-AC_PREFIX_DEFAULT(/usr/local)
-
-if test "x$prefix" = "xNONE"; then
- prefix=$ac_default_prefix
- ac_configure_args="$ac_configure_args --prefix $prefix"
-fi
-KDE_FAST_CONFIGURE
-KDE_CONF_FILES
-
-dnl without this order in this file, automake will be confused!
-dnl
-AM_CONFIG_HEADER(config.h)
-
-dnl checks for programs.
-dnl first check for c/c++ compilers
-AC_CHECK_COMPILERS
-
-dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
-dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
-CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
-
-dnl create only shared libtool-libraries
-AC_ENABLE_SHARED(yes)
-
-dnl set the following to yes, if you want to create static
-dnl libtool-libraries, too.
-AC_ENABLE_STATIC(no)
-
-dnl create a working libtool-script
-KDE_PROG_LIBTOOL
-
-dnl activate the next macro call for DLOPEN tests and setting LIBDL
-dnl (n.b. KDE_MISC_TESTS does the same to you, so use either this or the next one)
-dnl KDE_CHECK_DLOPEN
-
-dnl activate the next macro call for some additional tests
-dnl (compat, crypt, socket, nsl, dlopen, ...)
-dnl KDE_MISC_TESTS dnl __kdevelop__
-
-dnl KDE_NEED_FLEX dnl __kdevelop__
-dnl AC_PROG_YACC dnl __kdevelop__
-
-dnl KDE_CHECK_EXTRA_LIBS
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
-
-AC_SUBST(AUTODIRS)
-
-#AM_INIT_AUTOMAKE(taglib,1.0)
-dnl don't remove the below
-dnl AC_OUTPUT(taglib-config)
-dnl AC_OUTPUT(taglib.pc)
-
-AC_DEFUN([AC_HAVE_ZLIB],
-[
- AC_DEFINE(HAVE_ZLIB, 1, [have zlib])
- have_zlib=true
-])
-
-AC_DEFUN([AC_NO_ZLIB],
-[
- AC_DEFINE(HAVE_ZLIB, 0, [have zlib])
- have_zlib=false
-])
-
-AC_CHECK_HEADER(zlib.h, AC_HAVE_ZLIB, AC_NO_ZLIB)
-AM_CONDITIONAL(link_zlib, test x$have_zlib = xtrue)
-
-AC_DEFUN([AC_HAVE_CPPUNIT],
-[
- AC_DEFINE(HAVE_CPPUNIT, 1, [have cppunit])
- have_cppunit=true
-])
-
-AC_DEFUN([AC_NO_CPPUNIT],
-[
- AC_DEFINE(HAVE_CPPUNIT, 0, [have cppunit])
- have_cppunit=false
-])
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADER(cppunit/extensions/HelperMacros.h, AC_HAVE_CPPUNIT, AC_NO_CPPUNIT)
-AC_LANG_RESTORE
-AM_CONDITIONAL(build_tests, test x$have_cppunit = xtrue)
diff --git a/libs/taglib/doc/README b/libs/taglib/doc/README
deleted file mode 100644
index ad634e1d4c..0000000000
--- a/libs/taglib/doc/README
+++ /dev/null
@@ -1 +0,0 @@
-Run "doxygen taglib.doxgen" to generate the TagLib API documentation.
diff --git a/libs/taglib/doc/api-footer.html b/libs/taglib/doc/api-footer.html
deleted file mode 100644
index 9b151ee897..0000000000
--- a/libs/taglib/doc/api-footer.html
+++ /dev/null
@@ -1,4 +0,0 @@
- </div>
- </div>
- </body>
-</html>
diff --git a/libs/taglib/doc/api-header.html b/libs/taglib/doc/api-header.html
deleted file mode 100644
index 91e7dc5203..0000000000
--- a/libs/taglib/doc/api-header.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>$title ($projectname)</title>
- <link href="taglib-api.css" rel="stylesheet" type="text/css">
- </head>
- <body>
-
-
- <div id="container">
-
- <table border="0" width="100%">
- <tr>
- <td width="1">
- <img src="../taglib.png">
- </td>
- <td>
- <div id="intro">
- <table border="0" height="119" cellpadding="0" cellspacing="0" width="100%">
- <tr><td valign="top"><h1>TagLib 1.5 ($title)</h1></td></tr>
- <tr>
- <td valign="bottom">
- <div id="links">
- <a href="index.html">Home</a>
- <a href="inherits.html">Class&nbsp;Hierarchy</a>
- <a href="namespaces.html">Namespaces</a>
- <a href="annotated.html">Classes</a>
- <a href="files.html">Headers</a>
- <a href="namespacemembers.html">Namespace&nbsp;Members</a>
- <a href="functions.html">Class&nbsp;Members</a>
- <a href="globals.html">File&nbsp;Members</a>
- </div>
- </td>
- </tr>
- </table>
- </div>
- </td>
- </tr>
- </table>
-
- <div id="text">
diff --git a/libs/taglib/doc/taglib-api.css b/libs/taglib/doc/taglib-api.css
deleted file mode 100644
index 3fa820e25e..0000000000
--- a/libs/taglib/doc/taglib-api.css
+++ /dev/null
@@ -1,395 +0,0 @@
-body {
- font-family: sans-serif;
- background: white;
- color: black;
- margin: 0px;
- padding: 15px;
-}
-
-a:link {
- font-weight: bold;
- text-decoration: none;
- color: gray;
-}
-
-a:visited {
- font-weight: bold;
- text-decoration: none;
- color: gray;
-}
-
-a:hover {
- color: #cccccc;
- text-decoration: underline;
-}
-
-a:active {
- color: #cccccc;
- text-decoration: underline;
-}
-
-img {
- border-style: none;
-}
-
-h1 {
- font-family: sans-serif;
-}
-
-h2 {
- font-family: sans-serif;
-}
-
-h3 {
- font-family: sans-serif;
-}
-
-/* container */
-
-#container {
- position: absolute;
- border-width: thin;
- border-style: solid;
- width: 95%;
-}
-
-/* intro */
-
-#intro {
- padding: 5px;
- margin: 0px;
- background: #cccccc;
- border-width: medium;
- border-style: solid;
-}
-
-#intro h1 {
- margin: 5px;
- padding: 5px;
-}
-
-/* links */
-
-#links {
- font-size: x-small;
- vertical-align: bottom;
-}
-
-#links a {
- border-width: thin;
- border-style: dotted;
- border-color: white;
- /* margin: 0px 10px 0px 0px; */
- margin: 1px;
- padding: 3px;
- line-height: 230%
-}
-
-#links a:hover {
- color: black;
- text-decoration: underline;
-}
-
-#links h3 {
- outline-width: thin;
- border-style: solid;
- padding: 2px;
- margin: 3px 0px 3px 0px;
-}
-
-/* menu */
-
-#menu h3 {
- text-align: center;
-}
-
-/* text */
-
-#text {
- margin: 0px;
- padding: 5px 5px 0px 5px;
- float: left;
-}
-
-#text h3 {
- border-width: thin;
- border-style: solid;
- padding: 2px;
- margin: 3px 0px 3px 0px;
-}
-
-#text li {
- margin: 0px 0px 10px 0px;
-}
-
-#text ul {
- margin: 5px;
- padding: 0px 0px 0px 20px;
-}
-
-#leftcolumn {
- float: left;
- width: 300px;
- margin: 0px 10px 0px 0px;
- padding: 0px;
-}
-
-#rightcolumn {
- float: right;
- width: 210px;
- margin: 0px;
- padding: 0px;
-}
-
-/* vspacer */
-
-.vspacer {
- height: 10px;
-}
-
-.silver {
- border-width: thin;
- border-color: black;
- border-style: solid;
- background: #cccccc;
-}
-
-a.code {
- text-decoration: none;
- font-weight: normal;
- color: #4444ee
-}
-
-a.codeRef {
- font-weight: normal;
- color: #4444ee
-}
-
-div.fragment {
- width: 98%;
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- padding-left: 4px;
- margin: 4px;
-}
-
-div.ah {
- background-color: black;
- font-weight: bold; color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px
-}
-
-#text td {
- width: auto;
-}
-
-div.memdoc {
- margin-top: 0px;
- margin-bottom: 20px;
- padding: 10px 10px 10px 40px;
-}
-
-div.memproto {
- border: thin solid black;
- background-color: #f2f2ff;
- width: 100%;
- margin-top: 20px;
- padding-top: 10px;
- padding-bottom: 10px;
-}
-
-td.paramtype {
- color: #602020;
-}
-
-table.memname {
- font-weight: bold;
-}
-
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold
-}
-
-div.groupText {
- margin-left: 16px;
- font-style: italic;
- font-size: smaller
-}
-
-body {
- background: white;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-
-td.indexkey {
- background-color: #eeeeff;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-
-td.indexvalue {
- background-color: #eeeeff;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-
-tr.memlist {
- background-color: #f0f0f0;
-}
-
-p.formulaDsp {
- text-align: center;
-}
-
-img.formulaDsp {
-
-}
-
-img.formulaInl {
- vertical-align: middle;
-}
-
-span.keyword {
- color: #008000
-}
-
-span.keywordtype {
- color: #604020
-}
-
-span.keywordflow {
- color: #e08000
-}
-
-span.comment {
- color: #800000
-}
-
-span.preprocessor {
- color: #806020
-}
-
-span.stringliteral {
- color: #002080
-}
-
-span.charliteral {
- color: #008080
-}
-
-.mdTable {
- border: 1px solid #868686;
- background-color: #f2f2ff;
-}
-
-.mdRow {
- padding: 8px 20px;
-}
-
-.mdescLeft {
- font-size: smaller;
- font-family: Arial, Helvetica, sans-serif;
- background-color: #FAFAFA;
- padding-left: 8px;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-
-.mdescRight {
- font-size: smaller;
- font-family: Arial, Helvetica, sans-serif;
- font-style: italic;
- background-color: #FAFAFA;
- padding-left: 4px;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
- padding-bottom: 0px;
- padding-right: 8px;
-}
-
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-style: solid;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-family: Geneva, Arial, Helvetica, sans-serif;
- font-size: 12px;
-}
-
-.memItemRight {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-style: solid;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-family: Geneva, Arial, Helvetica, sans-serif;
- font-size: 13px;
-}
-
-.search {
- color: #0000ee;
- font-weight: bold;
-}
-
-form.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-
-input.search {
- font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #eeeeff;
-}
-
-td.tiny {
- font-size: 75%;
-}
diff --git a/libs/taglib/doc/taglib.doxygen b/libs/taglib/doc/taglib.doxygen
deleted file mode 100644
index f31c0f1537..0000000000
--- a/libs/taglib/doc/taglib.doxygen
+++ /dev/null
@@ -1,208 +0,0 @@
-# Doxyfile 1.3.4
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = TagLib
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-SHORT_NAMES = NO
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = NO
-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 = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = YES
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-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 = NO
-WARN_IF_DOC_ERROR = YES
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = ../taglib/
-FILE_PATTERNS = *.h \
- *.hh \
- *.H
-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 = 5
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = html
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = api-header.html
-HTML_FOOTER = api-footer.html
-HTML_STYLESHEET = taglib-api.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-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 = letter
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = YES
-USE_PDFLATEX = YES
-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 = DO_NOT_DOCUMENT \
- DOXYGEN
-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 = NO
-TEMPLATE_RELATIONS = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-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
diff --git a/libs/taglib/doc/taglib.png b/libs/taglib/doc/taglib.png
deleted file mode 100644
index 7174ee9182..0000000000
--- a/libs/taglib/doc/taglib.png
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/examples/CMakeLists.txt b/libs/taglib/examples/CMakeLists.txt
deleted file mode 100644
index 50711d071f..0000000000
--- a/libs/taglib/examples/CMakeLists.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-if(BUILD_EXAMPLES)
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../taglib
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/toolkit
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/ape
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg/id3v1
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg/id3v2
- ${CMAKE_CURRENT_SOURCE_DIR}/../bindings/c/ )
-
-########### next target ###############
-
-SET(tagreader_SRCS
-tagreader.cpp
-)
-
-
-ADD_EXECUTABLE(tagreader ${tagreader_SRCS})
-
-TARGET_LINK_LIBRARIES(tagreader tag )
-
-#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tagreader DESTINATION ${BIN_INSTALL_DIR} )
-
-
-########### next target ###############
-
-SET(tagreader_c_SRCS
-tagreader_c.c
-)
-
-
-ADD_EXECUTABLE(tagreader_c ${tagreader_c_SRCS})
-
-TARGET_LINK_LIBRARIES(tagreader_c tag_c )
-
-#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tagreader_c DESTINATION ${BIN_INSTALL_DIR})
-
-
-########### next target ###############
-
-SET(tagwriter_SRCS
-tagwriter.cpp
-)
-
-
-ADD_EXECUTABLE(tagwriter ${tagwriter_SRCS})
-
-TARGET_LINK_LIBRARIES(tagwriter tag )
-
-#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tagwriter DESTINATION ${BIN_INSTALL_DIR})
-
-
-########### next target ###############
-
-SET(framelist_SRCS
-framelist.cpp
-)
-
-
-ADD_EXECUTABLE(framelist ${framelist_SRCS})
-
-TARGET_LINK_LIBRARIES(framelist tag )
-
-#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/framelist DESTINATION ${BIN_INSTALL_DIR})
-
-
-########### next target ###############
-
-SET(strip-id3v1_SRCS
- strip-id3v1.cpp)
-
-ADD_EXECUTABLE(strip-id3v1 ${strip-id3v1_SRCS})
-
-TARGET_LINK_LIBRARIES(strip-id3v1 tag )
-
-#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/strip-id3v1 DESTINATION ${BIN_INSTALL_DIR})
-
-endif(BUILD_EXAMPLES)
-
diff --git a/libs/taglib/examples/Makefile.am b/libs/taglib/examples/Makefile.am
deleted file mode 100644
index bfb0f77f14..0000000000
--- a/libs/taglib/examples/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-bin_PROGRAMS = tagreader tagreader_c tagwriter framelist strip-id3v1
-tagreader_SOURCES = tagreader.cpp
-tagreader_c_SOURCES = tagreader_c.c
-tagwriter_SOURCES = tagwriter.cpp
-framelist_SOURCES = framelist.cpp
-strip_id3v1_SOURCES = strip-id3v1.cpp
-
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/bindings/c
-
-LDADD = ../taglib/libtag.la
-tagreader_c_LDADD = ../bindings/c/libtag_c.la
diff --git a/libs/taglib/examples/Makefile.in b/libs/taglib/examples/Makefile.in
deleted file mode 100644
index dabdb3d254..0000000000
--- a/libs/taglib/examples/Makefile.in
+++ /dev/null
@@ -1,677 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-bin_PROGRAMS = tagreader$(EXEEXT) tagreader_c$(EXEEXT) \
- tagwriter$(EXEEXT) framelist$(EXEEXT) strip-id3v1$(EXEEXT)
-subdir = examples
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_framelist_OBJECTS = framelist.$(OBJEXT)
-#>- framelist_OBJECTS = $(am_framelist_OBJECTS)
-#>+ 1
-framelist_OBJECTS = framelist.$(OBJEXT)
-framelist_LDADD = $(LDADD)
-framelist_DEPENDENCIES = ../taglib/libtag.la
-am_strip_id3v1_OBJECTS = strip-id3v1.$(OBJEXT)
-#>- strip_id3v1_OBJECTS = $(am_strip_id3v1_OBJECTS)
-#>+ 1
-strip_id3v1_OBJECTS = strip-id3v1.$(OBJEXT)
-strip_id3v1_LDADD = $(LDADD)
-strip_id3v1_DEPENDENCIES = ../taglib/libtag.la
-am_tagreader_OBJECTS = tagreader.$(OBJEXT)
-#>- tagreader_OBJECTS = $(am_tagreader_OBJECTS)
-#>+ 1
-tagreader_OBJECTS = tagreader.$(OBJEXT)
-tagreader_LDADD = $(LDADD)
-tagreader_DEPENDENCIES = ../taglib/libtag.la
-am_tagreader_c_OBJECTS = tagreader_c.$(OBJEXT)
-#>- tagreader_c_OBJECTS = $(am_tagreader_c_OBJECTS)
-#>+ 1
-tagreader_c_OBJECTS = tagreader_c.$(OBJEXT)
-tagreader_c_DEPENDENCIES = ../bindings/c/libtag_c.la
-am_tagwriter_OBJECTS = tagwriter.$(OBJEXT)
-#>- tagwriter_OBJECTS = $(am_tagwriter_OBJECTS)
-#>+ 1
-tagwriter_OBJECTS = tagwriter.$(OBJEXT)
-tagwriter_LDADD = $(LDADD)
-tagwriter_DEPENDENCIES = ../taglib/libtag.la
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(framelist_SOURCES) $(strip_id3v1_SOURCES) \
- $(tagreader_SOURCES) $(tagreader_c_SOURCES) \
- $(tagwriter_SOURCES)
-DIST_SOURCES = $(framelist_SOURCES) $(strip_id3v1_SOURCES) \
- $(tagreader_SOURCES) $(tagreader_c_SOURCES) \
- $(tagwriter_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-tagreader_SOURCES = tagreader.cpp
-tagreader_c_SOURCES = tagreader_c.c
-tagwriter_SOURCES = tagwriter.cpp
-framelist_SOURCES = framelist.cpp
-strip_id3v1_SOURCES = strip-id3v1.cpp
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/bindings/c
-
-LDADD = ../taglib/libtag.la
-tagreader_c_LDADD = ../bindings/c/libtag_c.la
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu examples/Makefile
-#>+ 12
- @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 examples/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu examples/Makefile
- cd $(top_srcdir) && perl admin/am_edit examples/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- || test -f $$p1 \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-framelist$(EXEEXT): $(framelist_OBJECTS) $(framelist_DEPENDENCIES)
- @rm -f framelist$(EXEEXT)
- $(CXXLINK) $(framelist_OBJECTS) $(framelist_LDADD) $(LIBS)
-strip-id3v1$(EXEEXT): $(strip_id3v1_OBJECTS) $(strip_id3v1_DEPENDENCIES)
- @rm -f strip-id3v1$(EXEEXT)
- $(CXXLINK) $(strip_id3v1_OBJECTS) $(strip_id3v1_LDADD) $(LIBS)
-tagreader$(EXEEXT): $(tagreader_OBJECTS) $(tagreader_DEPENDENCIES)
- @rm -f tagreader$(EXEEXT)
- $(CXXLINK) $(tagreader_OBJECTS) $(tagreader_LDADD) $(LIBS)
-tagreader_c$(EXEEXT): $(tagreader_c_OBJECTS) $(tagreader_c_DEPENDENCIES)
- @rm -f tagreader_c$(EXEEXT)
- $(LINK) $(tagreader_c_OBJECTS) $(tagreader_c_LDADD) $(LIBS)
-tagwriter$(EXEEXT): $(tagwriter_OBJECTS) $(tagwriter_DEPENDENCIES)
- @rm -f tagwriter$(EXEEXT)
- $(CXXLINK) $(tagwriter_OBJECTS) $(tagwriter_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/framelist.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strip-id3v1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagreader.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagreader_c.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagwriter.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-#>+ 1
-clean-am: clean-bcheck clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic 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-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-binPROGRAMS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 examples/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu examples/Makefile
- cd $(top_srcdir) && perl admin/am_edit examples/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in ; do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 3
-final:
- $(MAKE) all-am
-
-#>+ 3
-final-install:
- $(MAKE) install-am
-
-#>+ 3
-no-final:
- $(MAKE) all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/examples/framelist.cpp b/libs/taglib/examples/framelist.cpp
deleted file mode 100644
index dbe80feb82..0000000000
--- a/libs/taglib/examples/framelist.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <iostream>
-#include <stdlib.h>
-
-#include <tbytevector.h>
-
-#include <mpegfile.h>
-
-#include <id3v2tag.h>
-#include <id3v2frame.h>
-#include <id3v2header.h>
-
-#include <id3v1tag.h>
-
-#include <apetag.h>
-
-using namespace std;
-using namespace TagLib;
-
-int main(int argc, char *argv[])
-{
- // process the command line args
-
-
- for(int i = 1; i < argc; i++) {
-
- cout << "******************** \"" << argv[i] << "\"********************" << endl;
-
- MPEG::File f(argv[i]);
-
- ID3v2::Tag *id3v2tag = f.ID3v2Tag();
-
- if(id3v2tag) {
-
- cout << "ID3v2."
- << id3v2tag->header()->majorVersion()
- << "."
- << id3v2tag->header()->revisionNumber()
- << ", "
- << id3v2tag->header()->tagSize()
- << " bytes in tag"
- << endl;
-
- ID3v2::FrameList::ConstIterator it = id3v2tag->frameList().begin();
- for(; it != id3v2tag->frameList().end(); it++)
- cout << (*it)->frameID() << " - \"" << (*it)->toString() << "\"" << endl;
- }
- else
- cout << "file does not have a valid id3v2 tag" << endl;
-
- cout << endl << "ID3v1" << endl;
-
- ID3v1::Tag *id3v1tag = f.ID3v1Tag();
-
- if(id3v1tag) {
- cout << "title - \"" << id3v1tag->title() << "\"" << endl;
- cout << "artist - \"" << id3v1tag->artist() << "\"" << endl;
- cout << "album - \"" << id3v1tag->album() << "\"" << endl;
- cout << "year - \"" << id3v1tag->year() << "\"" << endl;
- cout << "comment - \"" << id3v1tag->comment() << "\"" << endl;
- cout << "track - \"" << id3v1tag->track() << "\"" << endl;
- cout << "genre - \"" << id3v1tag->genre() << "\"" << endl;
- }
- else
- cout << "file does not have a valid id3v1 tag" << endl;
-
- APE::Tag *ape = f.APETag();
-
- cout << endl << "APE" << endl;
-
- if(ape) {
- for(APE::ItemListMap::ConstIterator it = ape->itemListMap().begin();
- it != ape->itemListMap().end(); ++it)
- {
- cout << (*it).first << " - \"" << (*it).second.toString() << "\"" << endl;
- }
- }
- else
- cout << "file does not have a valid APE tag" << endl;
-
- cout << endl;
- }
-}
diff --git a/libs/taglib/examples/strip-id3v1.cpp b/libs/taglib/examples/strip-id3v1.cpp
deleted file mode 100644
index ab36d7117b..0000000000
--- a/libs/taglib/examples/strip-id3v1.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <iostream>
-#include <mpegfile.h>
-#include <tstring.h>
-
-using namespace TagLib;
-
-int main(int argc, char *argv[])
-{
- for(int i = 1; i < argc; i++) {
-
- std::cout << "******************** Stripping ID3v1 Tag From: \"" << argv[i] << "\"********************" << std::endl;
-
- MPEG::File f(argv[i]);
- f.strip(MPEG::File::ID3v1);
- }
-}
diff --git a/libs/taglib/examples/tagreader.cpp b/libs/taglib/examples/tagreader.cpp
deleted file mode 100644
index 76fe0d1a3b..0000000000
--- a/libs/taglib/examples/tagreader.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <iostream>
-#include <stdio.h>
-
-#include <fileref.h>
-#include <tag.h>
-
-using namespace std;
-
-TagLib::String formatSeconds(int seconds)
-{
- char secondsString[3];
- sprintf(secondsString, "%02i", seconds);
- return secondsString;
-}
-
-int main(int argc, char *argv[])
-{
- for(int i = 1; i < argc; i++) {
-
- cout << "******************** \"" << argv[i] << "\" ********************" << endl;
-
- TagLib::FileRef f(argv[i]);
-
- if(!f.isNull() && f.tag()) {
-
- TagLib::Tag *tag = f.tag();
-
- cout << "-- TAG --" << endl;
- cout << "title - \"" << tag->title() << "\"" << endl;
- cout << "artist - \"" << tag->artist() << "\"" << endl;
- cout << "album - \"" << tag->album() << "\"" << endl;
- cout << "year - \"" << tag->year() << "\"" << endl;
- cout << "comment - \"" << tag->comment() << "\"" << endl;
- cout << "track - \"" << tag->track() << "\"" << endl;
- cout << "genre - \"" << tag->genre() << "\"" << endl;
- }
-
- if(!f.isNull() && f.audioProperties()) {
-
- TagLib::AudioProperties *properties = f.audioProperties();
-
- int seconds = properties->length() % 60;
- int minutes = (properties->length() - seconds) / 60;
-
- cout << "-- AUDIO --" << endl;
- cout << "bitrate - " << properties->bitrate() << endl;
- cout << "sample rate - " << properties->sampleRate() << endl;
- cout << "channels - " << properties->channels() << endl;
- cout << "length - " << minutes << ":" << formatSeconds(seconds) << endl;
- }
- }
- return 0;
-}
diff --git a/libs/taglib/examples/tagreader_c.c b/libs/taglib/examples/tagreader_c.c
deleted file mode 100644
index 0220e19a42..0000000000
--- a/libs/taglib/examples/tagreader_c.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <stdio.h>
-#include <tag_c.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-int main(int argc, char *argv[])
-{
- int i;
- int seconds;
- int minutes;
- TagLib_File *file;
- TagLib_Tag *tag;
- const TagLib_AudioProperties *properties;
-
- taglib_set_strings_unicode(FALSE);
-
- for(i = 1; i < argc; i++) {
- printf("******************** \"%s\" ********************\n", argv[i]);
-
- file = taglib_file_new(argv[i]);
-
- if(file == NULL)
- break;
-
- tag = taglib_file_tag(file);
- properties = taglib_file_audioproperties(file);
-
- printf("-- TAG --\n");
- printf("title - \"%s\"\n", taglib_tag_title(tag));
- printf("artist - \"%s\"\n", taglib_tag_artist(tag));
- printf("album - \"%s\"\n", taglib_tag_album(tag));
- printf("year - \"%i\"\n", taglib_tag_year(tag));
- printf("comment - \"%s\"\n", taglib_tag_comment(tag));
- printf("track - \"%i\"\n", taglib_tag_track(tag));
- printf("genre - \"%s\"\n", taglib_tag_genre(tag));
-
- seconds = taglib_audioproperties_length(properties) % 60;
- minutes = (taglib_audioproperties_length(properties) - seconds) / 60;
-
- printf("-- AUDIO --\n");
- printf("bitrate - %i\n", taglib_audioproperties_bitrate(properties));
- printf("sample rate - %i\n", taglib_audioproperties_samplerate(properties));
- printf("channels - %i\n", taglib_audioproperties_channels(properties));
- printf("length - %i:%02i\n", minutes, seconds);
-
- taglib_tag_free_strings();
- taglib_file_free(file);
- }
-
- return 0;
-}
diff --git a/libs/taglib/examples/tagwriter.cpp b/libs/taglib/examples/tagwriter.cpp
deleted file mode 100644
index 63163fbedc..0000000000
--- a/libs/taglib/examples/tagwriter.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (C) 2004 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <iostream>
-#include <string.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-
-#include <tlist.h>
-#include <fileref.h>
-#include <tfile.h>
-#include <tag.h>
-
-using namespace std;
-
-bool isArgument(const char *s)
-{
- return strlen(s) == 2 && s[0] == '-';
-}
-
-bool isFile(const char *s)
-{
- struct stat st;
-#ifdef _WIN32
- return ::stat(s, &st) == 0 && (st.st_mode & (S_IFREG));
-#else
- return ::stat(s, &st) == 0 && (st.st_mode & (S_IFREG | S_IFLNK));
-#endif
-}
-
-void usage()
-{
- cout << endl;
- cout << "Usage: tagwriter <fields> <files>" << endl;
- cout << endl;
- cout << "Where the valid fields are:" << endl;
- cout << " -t <title>" << endl;
- cout << " -a <artist>" << endl;
- cout << " -A <album>" << endl;
- cout << " -c <comment>" << endl;
- cout << " -g <genre>" << endl;
- cout << " -y <year>" << endl;
- cout << " -T <track>" << endl;
- cout << endl;
-
- exit(1);
-}
-
-int main(int argc, char *argv[])
-{
- TagLib::List<TagLib::FileRef> fileList;
-
- while(argc > 0 && isFile(argv[argc - 1])) {
-
- TagLib::FileRef f(argv[argc - 1]);
-
- if(!f.isNull() && f.tag())
- fileList.append(f);
-
- argc--;
- }
-
- if(fileList.isEmpty())
- usage();
-
- for(int i = 1; i < argc - 1; i += 2) {
-
- if(isArgument(argv[i]) && i + 1 < argc && !isArgument(argv[i + 1])) {
-
- char field = argv[i][1];
- TagLib::String value = argv[i + 1];
-
- TagLib::List<TagLib::FileRef>::Iterator it;
- for(it = fileList.begin(); it != fileList.end(); ++it) {
-
- TagLib::Tag *t = (*it).tag();
-
- switch (field) {
- case 't':
- t->setTitle(value);
- break;
- case 'a':
- t->setArtist(value);
- break;
- case 'A':
- t->setAlbum(value);
- break;
- case 'c':
- t->setComment(value);
- break;
- case 'g':
- t->setGenre(value);
- break;
- case 'y':
- t->setYear(value.toInt());
- break;
- case 'T':
- t->setTrack(value.toInt());
- break;
- default:
- usage();
- break;
- }
- }
- }
- else
- usage();
- }
-
- TagLib::List<TagLib::FileRef>::Iterator it;
- for(it = fileList.begin(); it != fileList.end(); ++it)
- (*it).file()->save();
-
- return 0;
-}
diff --git a/libs/taglib/stamp-h.in b/libs/taglib/stamp-h.in
deleted file mode 100644
index e69de29bb2..0000000000
--- a/libs/taglib/stamp-h.in
+++ /dev/null
diff --git a/libs/taglib/subdirs b/libs/taglib/subdirs
deleted file mode 100644
index 0e5b6343fa..0000000000
--- a/libs/taglib/subdirs
+++ /dev/null
@@ -1,4 +0,0 @@
-bindings
-examples
-taglib
-tests
diff --git a/libs/taglib/taglib-config.cmake b/libs/taglib/taglib-config.cmake
deleted file mode 100644
index 9dc5ed1d7b..0000000000
--- a/libs/taglib/taglib-config.cmake
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-
-usage()
-{
- echo "usage: $0 [OPTIONS]"
-cat << EOH
-
-options:
- [--libs]
- [--cflags]
- [--version]
- [--prefix]
-EOH
- exit 1;
-}
-
-prefix=${CMAKE_INSTALL_PREFIX}
-exec_prefix=${CMAKE_INSTALL_PREFIX}
-libdir=${LIB_INSTALL_DIR}
-includedir=${INCLUDE_INSTALL_DIR}
-
-flags=""
-
-if test $# -eq 0 ; then
- usage
-fi
-
-while test $# -gt 0
-do
- case $1 in
- --libs)
- flags="$flags -L$libdir -ltag"
- ;;
- --cflags)
- flags="$flags -I$includedir/taglib"
- ;;
- --version)
- echo 1.5
- ;;
- --prefix)
- echo $prefix
- ;;
- *)
- echo "$0: unknown option $1"
- echo
- usage
- ;;
- esac
- shift
-done
-
-if test -n "$flags"
-then
- echo $flags
-fi
diff --git a/libs/taglib/taglib-config.in b/libs/taglib/taglib-config.in
deleted file mode 100644
index 10b977953e..0000000000
--- a/libs/taglib/taglib-config.in
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-
-usage()
-{
- echo "usage: $0 [OPTIONS]"
-cat << EOH
-
-options:
- [--libs]
- [--cflags]
- [--version]
- [--prefix]
-EOH
- exit 1;
-}
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-flags=""
-
-if test $# -eq 0 ; then
- usage
-fi
-
-while test $# -gt 0
-do
- case $1 in
- --libs)
- flags="$flags -L$libdir -ltag"
- ;;
- --cflags)
- flags="$flags -I$includedir/taglib"
- ;;
- --version)
- echo 1.5
- ;;
- --prefix)
- echo $prefix
- ;;
- *)
- echo "$0: unknown option $1"
- echo
- usage
- ;;
- esac
- shift
-done
-
-if test -n "$flags"
-then
- echo $flags
-fi
diff --git a/libs/taglib/taglib.pc.cmake b/libs/taglib/taglib.pc.cmake
deleted file mode 100644
index 909b8fcfc5..0000000000
--- a/libs/taglib/taglib.pc.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=${CMAKE_INSTALL_PREFIX}
-exec_prefix=${CMAKE_INSTALL_PREFIX}
-libdir=${LIB_INSTALL_DIR}
-includedir=${INCLUDE_INSTALL_DIR}
-
-Name: TagLib
-Description: Audio meta-data library
-Requires:
-Version: ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
-Libs: -L${LIB_INSTALL_DIR} -ltag
-Cflags: -I${INCLUDE_INSTALL_DIR}/taglib
diff --git a/libs/taglib/taglib.pc.in b/libs/taglib/taglib.pc.in
deleted file mode 100644
index 93d0a414f0..0000000000
--- a/libs/taglib/taglib.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: TagLib
-Description: Audio meta-data library
-Requires:
-Version: 1.5
-Libs: -L${libdir} -ltag
-Cflags: -I${includedir}/taglib
diff --git a/libs/taglib/taglib/CMakeLists.txt b/libs/taglib/taglib/CMakeLists.txt
deleted file mode 100644
index c4976f9739..0000000000
--- a/libs/taglib/taglib/CMakeLists.txt
+++ /dev/null
@@ -1,160 +0,0 @@
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}/toolkit
- ${CMAKE_CURRENT_SOURCE_DIR}/mpeg
- ${CMAKE_CURRENT_SOURCE_DIR}/ogg
- ${CMAKE_CURRENT_SOURCE_DIR}/ogg/flac
- ${CMAKE_CURRENT_SOURCE_DIR}/flac
- ${CMAKE_CURRENT_SOURCE_DIR}/mpc
- ${CMAKE_CURRENT_SOURCE_DIR}/ogg/vorbis
- ${CMAKE_CURRENT_SOURCE_DIR}/ogg/speex
- ${CMAKE_CURRENT_SOURCE_DIR}/mpeg/id3v2
- ${CMAKE_CURRENT_SOURCE_DIR}/mpeg/id3v1
- ${CMAKE_CURRENT_SOURCE_DIR}/ape
- ${CMAKE_CURRENT_SOURCE_DIR}/wavpack
- ${CMAKE_CURRENT_SOURCE_DIR}/trueaudio
- ${CMAKE_CURRENT_BINARY_DIR}/taglib
- ${CMAKE_CURRENT_BINARY_DIR}/..
-)
-if(ZLIB_FOUND)
- INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
-endif(ZLIB_FOUND)
-
-ADD_SUBDIRECTORY( toolkit )
-ADD_SUBDIRECTORY( mpeg )
-ADD_SUBDIRECTORY( ogg )
-ADD_SUBDIRECTORY( flac )
-ADD_SUBDIRECTORY( ape )
-ADD_SUBDIRECTORY( mpc )
-ADD_SUBDIRECTORY( wavpack )
-ADD_SUBDIRECTORY( trueaudio )
-
-
-
-########### next target ###############
-
-SET(mpeg_SRCS
-mpeg/mpegfile.cpp
-mpeg/mpegproperties.cpp
-mpeg/mpegheader.cpp
-mpeg/xingheader.cpp
-)
-
-SET(id3v1_SRCS
-mpeg/id3v1/id3v1tag.cpp
-mpeg/id3v1/id3v1genres.cpp
-)
-
-
-SET(id3v2_SRCS
-mpeg/id3v2/id3v2framefactory.cpp
-mpeg/id3v2/id3v2synchdata.cpp
-mpeg/id3v2/id3v2tag.cpp
-mpeg/id3v2/id3v2header.cpp
-mpeg/id3v2/id3v2frame.cpp
-mpeg/id3v2/id3v2footer.cpp
-mpeg/id3v2/id3v2extendedheader.cpp
-)
-
-
-SET(frames_SRCS
-mpeg/id3v2/frames/attachedpictureframe.cpp
-mpeg/id3v2/frames/commentsframe.cpp
-mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp
-mpeg/id3v2/frames/relativevolumeframe.cpp
-mpeg/id3v2/frames/textidentificationframe.cpp
-mpeg/id3v2/frames/uniquefileidentifierframe.cpp
-mpeg/id3v2/frames/unknownframe.cpp
-mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp
-mpeg/id3v2/frames/urllinkframe.cpp
-)
-
-SET(ogg_SRCS
-ogg/oggfile.cpp
-ogg/oggpage.cpp
-ogg/oggpageheader.cpp
-ogg/xiphcomment.cpp
-)
-
-SET(vorbis_SRCS
-ogg/vorbis/vorbisfile.cpp
-ogg/vorbis/vorbisproperties.cpp
-)
-
-
-SET(flacs_SRCS
-flac/flacfile.cpp
-flac/flacproperties.cpp
-)
-
-SET(oggflacs_SRCS
-ogg/flac/oggflacfile.cpp
-)
-
-SET(mpc_SRCS
-mpc/mpcfile.cpp
-mpc/mpcproperties.cpp
-)
-
-SET(ape_SRCS
-ape/apetag.cpp
-ape/apefooter.cpp
-ape/apeitem.cpp
-)
-
-SET(wavpack_SRCS
-wavpack/wavpackfile.cpp
-wavpack/wavpackproperties.cpp
-)
-
-SET(speex_SRCS
-ogg/speex/speexfile.cpp
-ogg/speex/speexproperties.cpp
-)
-
-SET(trueaudio_SRCS
-trueaudio/trueaudiofile.cpp
-trueaudio/trueaudioproperties.cpp
-)
-
-SET(toolkit_SRCS
-toolkit/tstring.cpp
-toolkit/tstringlist.cpp
-toolkit/tbytevector.cpp
-toolkit/tbytevectorlist.cpp
-toolkit/tfile.cpp
-toolkit/tdebug.cpp
-toolkit/unicode.cpp
-)
-
-SET(tag_LIB_SRCS ${mpeg_SRCS} ${id3v1_SRCS} ${id3v2_SRCS} ${frames_SRCS} ${ogg_SRCS}
- ${vorbis_SRCS} ${oggflacs_SRCS} ${mpc_SRCS} ${ape_SRCS} ${toolkit_SRCS} ${flacs_SRCS}
- ${wavpack_SRCS} ${speex_SRCS} ${trueaudio_SRCS}
- tag.cpp
- tagunion.cpp
- fileref.cpp
- audioproperties.cpp
-)
-
-
-ADD_LIBRARY(tag SHARED ${tag_LIB_SRCS})
-
-TARGET_LINK_LIBRARIES(tag )
-if(ZLIB_FOUND)
- TARGET_LINK_LIBRARIES(tag ${ZLIB_LIBRARIES})
-endif(ZLIB_FOUND)
-
-SET_TARGET_PROPERTIES(tag PROPERTIES
- VERSION ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
- SOVERSION ${TAGLIB_LIB_MAJOR_VERSION}
- INSTALL_NAME_DIR ${LIB_INSTALL_DIR}
- DEFINE_SYMBOL MAKE_TAGLIB_LIB
-)
-INSTALL(TARGETS tag
- LIBRARY DESTINATION ${LIB_INSTALL_DIR}
- RUNTIME DESTINATION bin
- ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-)
-
-INSTALL( FILES tag.h fileref.h audioproperties.h taglib_export.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/Makefile.am b/libs/taglib/taglib/Makefile.am
deleted file mode 100644
index d849b94413..0000000000
--- a/libs/taglib/taglib/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-SUBDIRS = toolkit mpeg ogg flac ape mpc wavpack trueaudio
-
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/ogg/flac \
- -I$(top_srcdir)/taglib/flac \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/ogg/vorbis \
- -I$(top_srcdir)/taglib/ogg/speex \
- -I$(top_srcdir)/taglib/wavpack \
- -I$(top_srcdir)/taglib/trueaudio \
- $(all_includes)
-
-lib_LTLIBRARIES = libtag.la
-
-libtag_la_SOURCES = tag.cpp tagunion.cpp fileref.cpp audioproperties.cpp
-taglib_include_HEADERS = tag.h fileref.h audioproperties.h taglib_export.h
-taglib_includedir = $(includedir)/taglib
-
-libtag_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 6:0:5
-libtag_la_LIBADD = ./mpeg/libmpeg.la ./ogg/libogg.la ./flac/libflac.la ./mpc/libmpc.la \
- ./ape/libape.la ./toolkit/libtoolkit.la ./wavpack/libwavpack.la \
- ./trueaudio/libtrueaudio.la
diff --git a/libs/taglib/taglib/Makefile.in b/libs/taglib/taglib/Makefile.in
deleted file mode 100644
index 758daf6ee2..0000000000
--- a/libs/taglib/taglib/Makefile.in
+++ /dev/null
@@ -1,794 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" \
- "$(DESTDIR)$(taglib_includedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libtag_la_DEPENDENCIES = ./mpeg/libmpeg.la ./ogg/libogg.la \
- ./flac/libflac.la ./mpc/libmpc.la ./ape/libape.la \
- ./toolkit/libtoolkit.la ./wavpack/libwavpack.la \
- ./trueaudio/libtrueaudio.la
-am_libtag_la_OBJECTS = tag.lo tagunion.lo fileref.lo \
- audioproperties.lo
-#>- libtag_la_OBJECTS = $(am_libtag_la_OBJECTS)
-#>+ 5
-libtag_la_final_OBJECTS = libtag_la.all_cpp.lo
-libtag_la_nofinal_OBJECTS = tag.lo tagunion.lo fileref.lo \
- audioproperties.lo
-@KDE_USE_FINAL_FALSE@libtag_la_OBJECTS = $(libtag_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libtag_la_OBJECTS = $(libtag_la_final_OBJECTS)
-#>- libtag_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-#>- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-#>- $(CXXFLAGS) $(libtag_la_LDFLAGS) $(LDFLAGS) -o $@
-#>+ 3
-libtag_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(KDE_CXXFLAGS) $(libtag_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libtag_la_SOURCES)
-DIST_SOURCES = $(libtag_la_SOURCES)
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = toolkit mpeg ogg flac ape mpc wavpack trueaudio
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/ogg/flac \
- -I$(top_srcdir)/taglib/flac \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/ogg/vorbis \
- -I$(top_srcdir)/taglib/ogg/speex \
- -I$(top_srcdir)/taglib/wavpack \
- -I$(top_srcdir)/taglib/trueaudio \
- $(all_includes)
-
-lib_LTLIBRARIES = libtag.la
-libtag_la_SOURCES = tag.cpp tagunion.cpp fileref.cpp audioproperties.cpp
-taglib_include_HEADERS = tag.h fileref.h audioproperties.h taglib_export.h
-taglib_includedir = $(includedir)/taglib
-libtag_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 6:0:5
-libtag_la_LIBADD = ./mpeg/libmpeg.la ./ogg/libogg.la ./flac/libflac.la ./mpc/libmpc.la \
- ./ape/libape.la ./toolkit/libtoolkit.la ./wavpack/libwavpack.la \
- ./trueaudio/libtrueaudio.la
-
-#>- all: all-recursive
-#>+ 1
-all: docs-am all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/Makefile
-#>+ 12
- @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 taglib/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(LIBTOOL) --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)
- @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
-libtag.la: $(libtag_la_OBJECTS) $(libtag_la_DEPENDENCIES)
- $(libtag_la_LINK) -rpath $(libdir) $(libtag_la_OBJECTS) $(libtag_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audioproperties.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileref.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tag.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagunion.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES uninstall-taglib_includeHEADERS
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- install-taglib_includeHEADERS installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
- uninstall-libLTLIBRARIES uninstall-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in tagunion.h taglib.pro CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libtag_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/tag.cpp $(srcdir)/tagunion.cpp $(srcdir)/fileref.cpp $(srcdir)/audioproperties.cpp
- @echo 'creating libtag_la.all_cpp.cpp ...'; \
- rm -f libtag_la.all_cpp.files libtag_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libtag_la.all_cpp.final; \
- for file in tag.cpp tagunion.cpp fileref.cpp audioproperties.cpp ; do \
- echo "#include \"$$file\"" >> libtag_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libtag_la.all_cpp.final; \
- done; \
- cat libtag_la.all_cpp.final libtag_la.all_cpp.files > libtag_la.all_cpp.cpp; \
- rm -f libtag_la.all_cpp.final libtag_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libtag_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libtag_la_OBJECTS="$(libtag_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libtag_la_OBJECTS="$(libtag_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libtag_la_OBJECTS="$(libtag_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libtag_la_OBJECTS="$(libtag_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ape/CMakeLists.txt b/libs/taglib/taglib/ape/CMakeLists.txt
deleted file mode 100644
index ce7d1c35c8..0000000000
--- a/libs/taglib/taglib/ape/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES apetag.h apefooter.h apeitem.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/ape/Makefile.am b/libs/taglib/taglib/ape/Makefile.am
deleted file mode 100644
index 149993868b..0000000000
--- a/libs/taglib/taglib/ape/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- $(all_includes)
-
-noinst_LTLIBRARIES = libape.la
-
-libape_la_SOURCES = apetag.cpp apefooter.cpp apeitem.cpp
-
-taglib_include_HEADERS = apetag.h apefooter.h apeitem.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/ape/Makefile.in b/libs/taglib/taglib/ape/Makefile.in
deleted file mode 100644
index 0ab046d0c1..0000000000
--- a/libs/taglib/taglib/ape/Makefile.in
+++ /dev/null
@@ -1,623 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/ape
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libape_la_LIBADD =
-am_libape_la_OBJECTS = apetag.lo apefooter.lo apeitem.lo
-#>- libape_la_OBJECTS = $(am_libape_la_OBJECTS)
-#>+ 4
-libape_la_final_OBJECTS = libape_la.all_cpp.lo
-libape_la_nofinal_OBJECTS = apetag.lo apefooter.lo apeitem.lo
-@KDE_USE_FINAL_FALSE@libape_la_OBJECTS = $(libape_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libape_la_OBJECTS = $(libape_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libape_la_SOURCES)
-DIST_SOURCES = $(libape_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- $(all_includes)
-
-noinst_LTLIBRARIES = libape.la
-libape_la_SOURCES = apetag.cpp apefooter.cpp apeitem.cpp
-taglib_include_HEADERS = apetag.h apefooter.h apeitem.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/ape/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/ape/Makefile
-#>+ 12
- @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 taglib/ape/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ape/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ape/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libape.la: $(libape_la_OBJECTS) $(libape_la_DEPENDENCIES)
- $(CXXLINK) $(libape_la_OBJECTS) $(libape_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apefooter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apeitem.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apetag.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in ape-tag-format.txt CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/ape/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ape/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ape/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libape_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/apetag.cpp $(srcdir)/apefooter.cpp $(srcdir)/apeitem.cpp
- @echo 'creating libape_la.all_cpp.cpp ...'; \
- rm -f libape_la.all_cpp.files libape_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libape_la.all_cpp.final; \
- for file in apetag.cpp apefooter.cpp apeitem.cpp ; do \
- echo "#include \"$$file\"" >> libape_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libape_la.all_cpp.final; \
- done; \
- cat libape_la.all_cpp.final libape_la.all_cpp.files > libape_la.all_cpp.cpp; \
- rm -f libape_la.all_cpp.final libape_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libape_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libape_la_OBJECTS="$(libape_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libape_la_OBJECTS="$(libape_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libape_la_OBJECTS="$(libape_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libape_la_OBJECTS="$(libape_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ape/ape-tag-format.txt b/libs/taglib/taglib/ape/ape-tag-format.txt
deleted file mode 100644
index 21ff1c8617..0000000000
--- a/libs/taglib/taglib/ape/ape-tag-format.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-================================================================================
-= APE Tag Specification, Version 2.000
-================================================================================
-
-Original Content (C) 2004, Frank Klemm <frank.klemm@elster.offl.uni-jena.de>
-Formatting / Editing (C) 2004, Scott Wheeler <wheeler@kde.org>
-
-================================================================================
-= Contents
-================================================================================
-
-1 - APE Tag General Structure
-2 - APE Tag Header / Footer Format
-3 - APE Tag Flags
-4 - APE Tag Item Format
-5 - APE Tag Item Supported Keys
-6 - APE Tag Item Content
-7 - Data Types
-7.1 - Data Types / UTF-8
-7.2 - Data Types / Dates
-7.3 - Data Types / Timestamps
-
-================================================================================
-= 1 - APE Tag General Structure
-================================================================================
-
-Member of Basic Components of SV8 Stream Note:
-
-It is strongly recommended that the data size be stored in the tags. The size
-should normally be in the roughly one kilobyte, never more than 8 kilobytes.
-
-Larger data should be stored externally using link entries. Linked data is much
-easier to process by normal programs, so for instance JPEG data should not be
-included inside the audio file.
-
-APE Tag Version 2.000 (with header, recommended):
-
-/================================\
-| APE Tag Header | 32 bytes |
-|-------------------|------------|
-| APE Tag Item 1 | > 10 bytes |
-| APE Tag Item 2 | > 10 bytes |
-| APE Tag Item n-1 | > 10 bytes |
-| APE Tag Item n | > 10 bytes |
-|-------------------|------------|
-| APE Tag Footer | 32 bytes |
-\================================/
-
-
-APE tag items should be sorted ascending by size. When streaming, parts of the
-APE tag may be dropped to reduce the danger of drop outs between tracks. This
-is not required, but is strongly recommended. It would be desirable for the i
-tems to be sorted by importance / size, but this is not feasible. This
-convention should only be broken when adding less important small items and it
-is not desirable to rewrite the entire tag. An APE tag at the end of a file
-(the recommended location) must have at least a footer; an APE tag at the
-beginning of a file (strongly discouraged) must have at least a header.
-
-APE Tag Version 1.000 (without header, deprecated)
-
-/================================\
-| APE Tag Item 1 | > 10 bytes |
-| APE Tag Item 2 | > 10 bytes |
-| APE Tag Item n-1 | > 10 bytes |
-| APE Tag Item n | > 10 bytes |
-|-------------------|------------|
-| APE Tag Footer | 32 bytes |
-\================================/
-
-================================================================================
-= 2 - APE Tag Header / Footer Format
-================================================================================
-
-Contains number, length and attributes of all tag items
-
-Header and Footer are different in 1 bit in the Tags Flags to distinguish
-between them.
-
-Member of APE Tag 2.0
-
-/===========================================================================\
-| Preamble | 8 bytes | { 'A', 'P', 'E', 'T', 'A', 'G', 'E', 'X' } |
-|----------------|---------|------------------------------------------------|
-| Version Number | 4 bytes | 1000 = Version 1.000, 2000 = Version 2.000 |
-|----------------|---------|------------------------------------------------|
-| Tag Size | 4 bytes | Tag size in bytes including footer and all tag |
-| | | items excluding the header (for 1.000 |
-| | | compatibility) |
-|----------------|---------|------------------------------------------------|
-| Item Count | 4 bytes | Number of items in the tag |
-|----------------|---------|------------------------------------------------|
-| Tag Flags | 4 bytes | Global flags |
-|----------------|---------|------------------------------------------------|
-| Reserved | 8 bytes | Must be zeroed |
-\===========================================================================/
-
-================================================================================
-= 3 - APE Tag Flags
-================================================================================
-
-The general flag structure for either items or headers / footers is the same.
-Bits 31, 30 and 29 are specific to headers / footers, whereas 2 through 0 are
-item specific.
-
-Note: APE Tags from Version 1.0 do not use any of the following. All flags in
-that version are zeroed and ignored when reading.
-
-/=================================================================\
-| Contains Header | Bit 31 | 1 - has header | 0 - no header |
-|-----------------|-------------|---------------------------------|
-| Contains Footer | Bit 30 | 1 - has footer | 0 - no footer |
-|-----------------|-------------|---------------------------------|
-| Is Header | Bit 29 | 1 - is header | 0 - is footer |
-|-----------------|-------------|---------------------------------|
-| Undefined | Bits 28 - 3 | Undefined, must be zeroed |
-|-----------------|-------------|---------------------------------|
-| Encoding | Bits 2 - 1 | 00 - UTF-8 |
-| | | 01 - Binary Data * |
-| | | 10 - External Reference ** |
-| | | 11 - Reserved |
-|-----------------|-------------|---------------------------------|
-| Read Only | Bit 0 | 1 - read only | 0 - read/write |
-\=================================================================/
-
- (*) Should be ignored by tools for editing text values
-(**) Allowed external reference formats:
- - http://host/directory/filename.ext
- - ftp://host/directory/filename.ext
- - filename.ext
- - /directory/filename.ext
- - DRIVE:/directory/filename.ext
-
- Note: External references are also UTF-8 encoded.
-
-================================================================================
-= 4 - APE Tag Item Format
-================================================================================
-
-APE Tag Items are stored as key-value pairs. APE Tags Item Key are case
-sensitive, however it is illegal to use keys which only differ in case and
-it is recommended that tag reading not be case sensitive.
-
-Every key can only occur (at most) once. It is not possible to repeat a key
-to signify updated contents.
-
-Tags can be partially or completely repeated in the streaming format. This
-makes it possible to display an artist and / or title if it was missed at the
-beginning of the stream. It is recommended that the important information like
-artist, album and title should occur approximately every 2 minutes in the
-stream and again 5 to 10 seconds before the end. However, care should be tak
-en not to replicate this information too often or during passages with high
-bitrate demands to avoid unnecessary drop-outs.
-
-/==============================================================================\
-| Content Size | 4 bytes | Length of the value in bytes |
-|----------------|---------------|---------------------------------------------|
-| Flags | 4 bytes | Item flags |
-|----------------|---------------|---------------------------------------------|
-| Key | 2 - 255 bytes | Item key |
-|----------------|---------------|---------------------------------------------|
-| Key Terminator | 1 byte | Null byte that indicates the end of the key |
-|----------------|---------------|---------------------------------------------|
-| Value | variable | Content (formatted according to the flags) |
-\==============================================================================/
-
-================================================================================
-
-Sections 5 - 7 haven't yet been converted from:
-
-http://www.personal.uni-jena.de/~pfk/mpp/sv8/apetag.html
diff --git a/libs/taglib/taglib/ape/apefooter.cpp b/libs/taglib/taglib/ape/apefooter.cpp
deleted file mode 100644
index da6494b0b0..0000000000
--- a/libs/taglib/taglib/ape/apefooter.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- (C) 2002 - 2008 by Scott Wheeler (id3v2header.cpp)
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <iostream>
-#include <bitset>
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "apefooter.h"
-
-using namespace TagLib;
-using namespace APE;
-
-class Footer::FooterPrivate
-{
-public:
- FooterPrivate() : version(0),
- footerPresent(true),
- headerPresent(false),
- isHeader(false),
- itemCount(0),
- tagSize(0) {}
-
- ~FooterPrivate() {}
-
- uint version;
-
- bool footerPresent;
- bool headerPresent;
-
- bool isHeader;
-
- uint itemCount;
- uint tagSize;
-
- static const uint size = 32;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members
-////////////////////////////////////////////////////////////////////////////////
-
-TagLib::uint Footer::size()
-{
- return FooterPrivate::size;
-}
-
-ByteVector Footer::fileIdentifier()
-{
- return ByteVector::fromCString("APETAGEX");
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Footer::Footer()
-{
- d = new FooterPrivate;
-}
-
-Footer::Footer(const ByteVector &data)
-{
- d = new FooterPrivate;
- parse(data);
-}
-
-Footer::~Footer()
-{
- delete d;
-}
-
-TagLib::uint Footer::version() const
-{
- return d->version;
-}
-
-bool Footer::headerPresent() const
-{
- return d->headerPresent;
-}
-
-bool Footer::footerPresent() const
-{
- return d->footerPresent;
-}
-
-bool Footer::isHeader() const
-{
- return d->isHeader;
-}
-
-void Footer::setHeaderPresent(bool b) const
-{
- d->headerPresent = b;
-}
-
-TagLib::uint Footer::itemCount() const
-{
- return d->itemCount;
-}
-
-void Footer::setItemCount(uint s)
-{
- d->itemCount = s;
-}
-
-TagLib::uint Footer::tagSize() const
-{
- return d->tagSize;
-}
-
-TagLib::uint Footer::completeTagSize() const
-{
- if(d->headerPresent)
- return d->tagSize + d->size;
- else
- return d->tagSize;
-}
-
-void Footer::setTagSize(uint s)
-{
- d->tagSize = s;
-}
-
-void Footer::setData(const ByteVector &data)
-{
- parse(data);
-}
-
-ByteVector Footer::renderFooter() const
-{
- return render(false);
-}
-
-ByteVector Footer::renderHeader() const
-{
- if (!d->headerPresent) return ByteVector();
-
- return render(true);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void Footer::parse(const ByteVector &data)
-{
- if(data.size() < size())
- return;
-
- // The first eight bytes, data[0..7], are the File Identifier, "APETAGEX".
-
- // Read the version number
-
- d->version = data.mid(8, 4).toUInt(false);
-
- // Read the tag size
-
- d->tagSize = data.mid(12, 4).toUInt(false);
-
- // Read the item count
-
- d->itemCount = data.mid(16, 4).toUInt(false);
-
- // Read the flags
-
- std::bitset<32> flags(data.mid(20, 4).toUInt(false));
-
- d->headerPresent = flags[31];
- d->footerPresent = !flags[30];
- d->isHeader = flags[29];
-
-}
-
-ByteVector Footer::render(bool isHeader) const
-{
- ByteVector v;
-
- // add the file identifier -- "APETAGEX"
-
- v.append(fileIdentifier());
-
- // add the version number -- we always render a 2.000 tag regardless of what
- // the tag originally was.
-
- v.append(ByteVector::fromUInt(2000, false));
-
- // add the tag size
-
- v.append(ByteVector::fromUInt(d->tagSize, false));
-
- // add the item count
-
- v.append(ByteVector::fromUInt(d->itemCount, false));
-
- // render and add the flags
-
- std::bitset<32> flags;
-
- flags[31] = d->headerPresent;
- flags[30] = false; // footer is always present
- flags[29] = isHeader;
-
- v.append(ByteVector::fromUInt(flags.to_ulong(), false));
-
- // add the reserved 64bit
-
- v.append(ByteVector::fromLongLong(0));
-
- return v;
-}
diff --git a/libs/taglib/taglib/ape/apefooter.h b/libs/taglib/taglib/ape/apefooter.h
deleted file mode 100644
index f0d921f5b5..0000000000
--- a/libs/taglib/taglib/ape/apefooter.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEFOOTER_H
-#define TAGLIB_APEFOOTER_H
-
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace APE {
-
- //! An implementation of APE footers
-
- /*!
- * This class implements APE footers (and headers). It attempts to follow, both
- * semantically and programatically, the structure specified in
- * the APE v2.0 standard. The API is based on the properties of APE footer and
- * headers specified there.
- */
-
- class TAGLIB_EXPORT Footer
- {
- public:
- /*!
- * Constructs an empty APE footer.
- */
- Footer();
-
- /*!
- * Constructs an APE footer based on \a data. parse() is called
- * immediately.
- */
- Footer(const ByteVector &data);
-
- /*!
- * Destroys the footer.
- */
- virtual ~Footer();
-
- /*!
- * Returns the version number. (Note: This is the 1000 or 2000.)
- */
- uint version() const;
-
- /*!
- * Returns true if a header is present in the tag.
- */
- bool headerPresent() const;
-
- /*!
- * Returns true if a footer is present in the tag.
- */
- bool footerPresent() const;
-
- /*!
- * Returns true this is actually the header.
- */
- bool isHeader() const;
-
- /*!
- * Sets whether the header should be rendered or not
- */
- void setHeaderPresent(bool b) const;
-
- /*!
- * Returns the number of items in the tag.
- */
- uint itemCount() const;
-
- /*!
- * Set the item count to \a s.
- * \see itemCount()
- */
- void setItemCount(uint s);
-
- /*!
- * Returns the tag size in bytes. This is the size of the frame content and footer.
- * The size of the \e entire tag will be this plus the header size, if present.
- *
- * \see completeTagSize()
- */
- uint tagSize() const;
-
- /*!
- * Returns the tag size, including if present, the header
- * size.
- *
- * \see tagSize()
- */
- uint completeTagSize() const;
-
- /*!
- * Set the tag size to \a s.
- * \see tagSize()
- */
- void setTagSize(uint s);
-
- /*!
- * Returns the size of the footer. Presently this is always 32 bytes.
- */
- static uint size();
-
- /*!
- * Returns the string used to identify an APE tag inside of a file.
- * Presently this is always "APETAGEX".
- */
- static ByteVector fileIdentifier();
-
- /*!
- * Sets the data that will be used as the footer. 32 bytes,
- * starting from \a data will be used.
- */
- void setData(const ByteVector &data);
-
- /*!
- * Renders the footer back to binary format.
- */
- ByteVector renderFooter() const;
-
- /*!
- * Renders the header corresponding to the footer. If headerPresent is
- * set to false, it returns an empty ByteVector.
- */
- ByteVector renderHeader() const;
-
- protected:
- /*!
- * Called by setData() to parse the footer data. It makes this information
- * available through the public API.
- */
- void parse(const ByteVector &data);
-
- /*!
- * Called by renderFooter and renderHeader
- */
- ByteVector render(bool isHeader) const;
-
- private:
- Footer(const Footer &);
- Footer &operator=(const Footer &);
-
- class FooterPrivate;
- FooterPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ape/apeitem.cpp b/libs/taglib/taglib/ape/apeitem.cpp
deleted file mode 100644
index a6fe31b9ff..0000000000
--- a/libs/taglib/taglib/ape/apeitem.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.com
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevectorlist.h>
-#include <tdebug.h>
-
-#include "apeitem.h"
-
-using namespace TagLib;
-using namespace APE;
-
-class APE::Item::ItemPrivate
-{
-public:
- ItemPrivate() : type(Text), readOnly(false) {}
-
- Item::ItemTypes type;
- String key;
- ByteVector value;
- StringList text;
- bool readOnly;
-};
-
-APE::Item::Item()
-{
- d = new ItemPrivate;
-}
-
-APE::Item::Item(const String &key, const String &value)
-{
- d = new ItemPrivate;
- d->key = key;
- d->text.append(value);
-}
-
-APE::Item::Item(const String &key, const StringList &values)
-{
- d = new ItemPrivate;
- d->key = key;
- d->text = values;
-}
-
-APE::Item::Item(const Item &item)
-{
- d = new ItemPrivate(*item.d);
-}
-
-APE::Item::~Item()
-{
- delete d;
-}
-
-Item &APE::Item::operator=(const Item &item)
-{
- delete d;
- d = new ItemPrivate(*item.d);
- return *this;
-}
-
-void APE::Item::setReadOnly(bool readOnly)
-{
- d->readOnly = readOnly;
-}
-
-bool APE::Item::isReadOnly() const
-{
- return d->readOnly;
-}
-
-void APE::Item::setType(APE::Item::ItemTypes val)
-{
- d->type = val;
-}
-
-APE::Item::ItemTypes APE::Item::type() const
-{
- return d->type;
-}
-
-String APE::Item::key() const
-{
- return d->key;
-}
-
-ByteVector APE::Item::value() const
-{
- // This seems incorrect as it won't be actually rendering the value to keep it
- // up to date.
-
- return d->value;
-}
-
-void APE::Item::setKey(const String &key)
-{
- d->key = key;
-}
-
-void APE::Item::setValue(const String &value)
-{
- d->text = value;
-}
-
-void APE::Item::setValues(const StringList &value)
-{
- d->text = value;
-}
-
-void APE::Item::appendValue(const String &value)
-{
- d->text.append(value);
-}
-
-void APE::Item::appendValues(const StringList &values)
-{
- d->text.append(values);
-}
-
-int APE::Item::size() const
-{
- return 8 + d->key.size() + 1 + d->value.size();
-}
-
-StringList APE::Item::toStringList() const
-{
- return d->text;
-}
-
-StringList APE::Item::values() const
-{
- return d->text;
-}
-
-String APE::Item::toString() const
-{
- return isEmpty() ? String::null : d->text.front();
-}
-
-bool APE::Item::isEmpty() const
-{
- switch(d->type) {
- case 0:
- case 1:
- if(d->text.isEmpty())
- return true;
- if(d->text.size() == 1 && d->text.front().isEmpty())
- return true;
- return false;
- case 2:
- return d->value.isEmpty();
- default:
- return false;
- }
-}
-
-void APE::Item::parse(const ByteVector &data)
-{
- // 11 bytes is the minimum size for an APE item
-
- if(data.size() < 11) {
- debug("APE::Item::parse() -- no data in item");
- return;
- }
-
- uint valueLength = data.mid(0, 4).toUInt(false);
- uint flags = data.mid(4, 4).toUInt(false);
-
- d->key = String(data.mid(8), String::UTF8);
-
- d->value = data.mid(8 + d->key.size() + 1, valueLength);
-
- setReadOnly(flags & 1);
- setType(ItemTypes((flags >> 1) & 3));
-
- if(int(d->type) < 2)
- d->text = StringList(ByteVectorList::split(d->value, '\0'), String::UTF8);
-}
-
-ByteVector APE::Item::render() const
-{
- ByteVector data;
- TagLib::uint flags = ((d->readOnly) ? 1 : 0) | (d->type << 1);
- ByteVector value;
-
- if(isEmpty())
- return data;
-
- if(d->type != Item::Binary) {
- StringList::ConstIterator it = d->text.begin();
- value.append(it->data(String::UTF8));
- it++;
- for(; it != d->text.end(); ++it) {
- value.append('\0');
- value.append(it->data(String::UTF8));
- }
- d->value = value;
- }
- else
- value.append(d->value);
-
- data.append(ByteVector::fromUInt(value.size(), false));
- data.append(ByteVector::fromUInt(flags, false));
- data.append(d->key.data(String::UTF8));
- data.append(ByteVector('\0'));
- data.append(value);
-
- return data;
-}
diff --git a/libs/taglib/taglib/ape/apeitem.h b/libs/taglib/taglib/ape/apeitem.h
deleted file mode 100644
index 8558bb3555..0000000000
--- a/libs/taglib/taglib/ape/apeitem.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEITEM_H
-#define TAGLIB_APEITEM_H
-
-#include "tbytevector.h"
-#include "tstring.h"
-#include "tstringlist.h"
-
-namespace TagLib {
-
- namespace APE {
-
- //! An implementation of APE-items
-
- /*!
- * This class provides the features of items in the APEv2 standard.
- */
- class TAGLIB_EXPORT Item
- {
- public:
- /*!
- * Enum of types an Item can have. The value of 3 is reserved.
- */
- enum ItemTypes {
- //! Item contains text information coded in UTF-8
- Text = 0,
- //! Item contains binary information
- Binary = 1,
- //! Item is a locator of external stored information
- Locator = 2
- };
- /*!
- * Constructs an empty item.
- */
- Item();
-
- /*!
- * Constructs an item with \a key and \a value.
- */
- // BIC: Remove this, StringList has a constructor from a single string
- Item(const String &key, const String &value);
-
- /*!
- * Constructs an item with \a key and \a values.
- */
- Item(const String &key, const StringList &values);
-
- /*!
- * Construct an item as a copy of \a item.
- */
- Item(const Item &item);
-
- /*!
- * Destroys the item.
- */
- virtual ~Item();
-
- /*!
- * Copies the contents of \a item into this item.
- */
- Item &operator=(const Item &item);
-
- /*!
- * Returns the key.
- */
- String key() const;
-
- /*!
- * Returns the binary value.
- *
- * \deprecated This will be removed in the next binary incompatible version
- * as it is not kept in sync with the things that are set using setValue()
- * and friends.
- */
- ByteVector value() const;
-
- /*!
- * Sets the key for the item to \a key.
- */
- void setKey(const String &key);
-
- /*!
- * Sets the value of the item to \a value and clears any previous contents.
- *
- * \see toString()
- */
- void setValue(const String &value);
-
- /*!
- * Sets the value of the item to the list of values in \a value and clears
- * any previous contents.
- *
- * \see toStringList()
- */
- void setValues(const StringList &values);
-
- /*!
- * Appends \a value to create (or extend) the current list of values.
- *
- * \see toString()
- */
- void appendValue(const String &value);
-
- /*!
- * Appends \a values to extend the current list of values.
- *
- * \see toStringList()
- */
- void appendValues(const StringList &values);
-
- /*!
- * Returns the size of the full item.
- */
- int size() const;
-
- /*!
- * Returns the value as a single string. In case of multiple strings,
- * the first is returned.
- */
- String toString() const;
-
- /*!
- * \deprecated
- * \see values
- */
- StringList toStringList() const;
-
- /*!
- * Returns the list of values.
- */
- StringList values() const;
-
- /*!
- * Render the item to a ByteVector.
- */
- ByteVector render() const;
-
- /*!
- * Parse the item from the ByteVector \a data.
- */
- void parse(const ByteVector& data);
-
- /*!
- * Set the item to read-only.
- */
- void setReadOnly(bool readOnly);
-
- /*!
- * Return true if the item is read-only.
- */
- bool isReadOnly() const;
-
- /*!
- * Sets the type of the item to \a type.
- *
- * \see ItemTypes
- */
- void setType(ItemTypes type);
-
- /*!
- * Returns the type of the item.
- */
- ItemTypes type() const;
-
- /*!
- * Returns if the item has any real content.
- */
- bool isEmpty() const;
-
- private:
- class ItemPrivate;
- ItemPrivate *d;
- };
- }
-
-}
-
-#endif
-
-
diff --git a/libs/taglib/taglib/ape/apetag.cpp b/libs/taglib/taglib/ape/apetag.cpp
deleted file mode 100644
index 1c38d2bdd0..0000000000
--- a/libs/taglib/taglib/ape/apetag.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.com
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifdef __SUNPRO_CC
-// Sun Studio finds multiple specializations of Map because
-// it considers specializations with and without class types
-// to be different; this define forces Map to use only the
-// specialization with the class keyword.
-#define WANT_CLASS_INSTANTIATION_OF_MAP (1)
-#endif
-
-#include <tfile.h>
-#include <tstring.h>
-#include <tmap.h>
-
-#include "apetag.h"
-#include "apefooter.h"
-#include "apeitem.h"
-
-using namespace TagLib;
-using namespace APE;
-
-class APE::Tag::TagPrivate
-{
-public:
- TagPrivate() : file(0), footerLocation(-1), tagLength(0) {}
-
- File *file;
- long footerLocation;
- long tagLength;
-
- Footer footer;
-
- ItemListMap itemListMap;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public methods
-////////////////////////////////////////////////////////////////////////////////
-
-APE::Tag::Tag() : TagLib::Tag()
-{
- d = new TagPrivate;
-}
-
-APE::Tag::Tag(File *file, long footerLocation) : TagLib::Tag()
-{
- d = new TagPrivate;
- d->file = file;
- d->footerLocation = footerLocation;
-
- read();
-}
-
-APE::Tag::~Tag()
-{
- delete d;
-}
-
-ByteVector APE::Tag::fileIdentifier()
-{
- return ByteVector::fromCString("APETAGEX");
-}
-
-String APE::Tag::title() const
-{
- if(d->itemListMap["TITLE"].isEmpty())
- return String::null;
- return d->itemListMap["TITLE"].toString();
-}
-
-String APE::Tag::artist() const
-{
- if(d->itemListMap["ARTIST"].isEmpty())
- return String::null;
- return d->itemListMap["ARTIST"].toString();
-}
-
-String APE::Tag::album() const
-{
- if(d->itemListMap["ALBUM"].isEmpty())
- return String::null;
- return d->itemListMap["ALBUM"].toString();
-}
-
-String APE::Tag::comment() const
-{
- if(d->itemListMap["COMMENT"].isEmpty())
- return String::null;
- return d->itemListMap["COMMENT"].toString();
-}
-
-String APE::Tag::genre() const
-{
- if(d->itemListMap["GENRE"].isEmpty())
- return String::null;
- return d->itemListMap["GENRE"].toString();
-}
-
-TagLib::uint APE::Tag::year() const
-{
- if(d->itemListMap["YEAR"].isEmpty())
- return 0;
- return d->itemListMap["YEAR"].toString().toInt();
-}
-
-TagLib::uint APE::Tag::track() const
-{
- if(d->itemListMap["TRACK"].isEmpty())
- return 0;
- return d->itemListMap["TRACK"].toString().toInt();
-}
-
-void APE::Tag::setTitle(const String &s)
-{
- addValue("TITLE", s, true);
-}
-
-void APE::Tag::setArtist(const String &s)
-{
- addValue("ARTIST", s, true);
-}
-
-void APE::Tag::setAlbum(const String &s)
-{
- addValue("ALBUM", s, true);
-}
-
-void APE::Tag::setComment(const String &s)
-{
- addValue("COMMENT", s, true);
-}
-
-void APE::Tag::setGenre(const String &s)
-{
- addValue("GENRE", s, true);
-}
-
-void APE::Tag::setYear(uint i)
-{
- if(i <= 0)
- removeItem("YEAR");
- else
- addValue("YEAR", String::number(i), true);
-}
-
-void APE::Tag::setTrack(uint i)
-{
- if(i <= 0)
- removeItem("TRACK");
- else
- addValue("TRACK", String::number(i), true);
-}
-
-APE::Footer *APE::Tag::footer() const
-{
- return &d->footer;
-}
-
-const APE::ItemListMap& APE::Tag::itemListMap() const
-{
- return d->itemListMap;
-}
-
-void APE::Tag::removeItem(const String &key)
-{
- Map<const String, Item>::Iterator it = d->itemListMap.find(key.upper());
- if(it != d->itemListMap.end())
- d->itemListMap.erase(it);
-}
-
-void APE::Tag::addValue(const String &key, const String &value, bool replace)
-{
- if(replace)
- removeItem(key);
- if(!value.isEmpty()) {
- if(d->itemListMap.contains(key) || !replace)
- d->itemListMap[key.upper()].appendValue(value);
- else
- setItem(key, Item(key, value));
- }
-}
-
-void APE::Tag::setItem(const String &key, const Item &item)
-{
- d->itemListMap.insert(key.upper(), item);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected methods
-////////////////////////////////////////////////////////////////////////////////
-
-void APE::Tag::read()
-{
- if(d->file && d->file->isValid()) {
-
- d->file->seek(d->footerLocation);
- d->footer.setData(d->file->readBlock(Footer::size()));
-
- if(d->footer.tagSize() <= Footer::size() ||
- d->footer.tagSize() > uint(d->file->length()))
- return;
-
- d->file->seek(d->footerLocation + Footer::size() - d->footer.tagSize());
- parse(d->file->readBlock(d->footer.tagSize() - Footer::size()));
- }
-}
-
-ByteVector APE::Tag::render() const
-{
- ByteVector data;
- uint itemCount = 0;
-
- {
- for(Map<const String, Item>::ConstIterator it = d->itemListMap.begin();
- it != d->itemListMap.end(); ++it)
- {
- data.append(it->second.render());
- itemCount++;
- }
- }
-
- d->footer.setItemCount(itemCount);
- d->footer.setTagSize(data.size() + Footer::size());
- d->footer.setHeaderPresent(true);
-
- return d->footer.renderHeader() + data + d->footer.renderFooter();
-}
-
-void APE::Tag::parse(const ByteVector &data)
-{
- uint pos = 0;
-
- // 11 bytes is the minimum size for an APE item
-
- for(uint i = 0; i < d->footer.itemCount() && pos <= data.size() - 11; i++) {
- APE::Item item;
- item.parse(data.mid(pos));
-
- d->itemListMap.insert(item.key().upper(), item);
-
- pos += item.size();
- }
-}
diff --git a/libs/taglib/taglib/ape/apetag.h b/libs/taglib/taglib/ape/apetag.h
deleted file mode 100644
index 03a3c91779..0000000000
--- a/libs/taglib/taglib/ape/apetag.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APETAG_H
-#define TAGLIB_APETAG_H
-
-#include "tag.h"
-#include "tbytevector.h"
-#include "tmap.h"
-#include "tstring.h"
-#include "taglib_export.h"
-
-#include "apeitem.h"
-
-namespace TagLib {
-
- class File;
-
- //! An implementation of the APE tagging format
-
- namespace APE {
-
- class Footer;
-
- /*!
- * A mapping between a list of item names, or keys, and the associated item.
- *
- * \see APE::Tag::itemListMap()
- */
- typedef Map<const String, Item> ItemListMap;
-
-
- //! An APE tag implementation
-
- class TAGLIB_EXPORT Tag : public TagLib::Tag
- {
- public:
- /*!
- * Create an APE tag with default values.
- */
- Tag();
-
- /*!
- * Create an APE tag and parse the data in \a file with APE footer at
- * \a tagOffset.
- */
- Tag(File *file, long footerLocation);
-
- /*!
- * Destroys this Tag instance.
- */
- virtual ~Tag();
-
- /*!
- * Renders the in memory values to a ByteVector suitable for writing to
- * the file.
- */
- ByteVector render() const;
-
- /*!
- * Returns the string "APETAGEX" suitable for usage in locating the tag in a
- * file.
- */
- static ByteVector fileIdentifier();
-
- // Reimplementations.
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(uint i);
- virtual void setTrack(uint i);
-
- /*!
- * Returns a pointer to the tag's footer.
- */
- Footer *footer() const;
-
- /*!
- * Returns a reference to the item list map. This is an ItemListMap of
- * all of the items in the tag.
- *
- * This is the most powerfull structure for accessing the items of the tag.
- *
- * \warning You should not modify this data structure directly, instead
- * use setItem() and removeItem().
- */
- const ItemListMap &itemListMap() const;
-
- /*!
- * Removes the \a key item from the tag
- */
- void removeItem(const String &key);
-
- /*!
- * Adds to the item specified by \a key the data \a value. If \a replace
- * is true, then all of the other values on the same key will be removed
- * first.
- */
- void addValue(const String &key, const String &value, bool replace = true);
-
- /*!
- * Sets the \a key item to the value of \a item. If an item with the \a key is already
- * present, it will be replaced.
- */
- void setItem(const String &key, const Item &item);
-
- protected:
-
- /*!
- * Reads from the file specified in the constructor.
- */
- void read();
-
- /*!
- * Parses the body of the tag in \a data.
- */
- void parse(const ByteVector &data);
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/audioproperties.cpp b/libs/taglib/taglib/audioproperties.cpp
deleted file mode 100644
index 324cc35c0f..0000000000
--- a/libs/taglib/taglib/audioproperties.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "audioproperties.h"
-
-using namespace TagLib;
-
-class AudioProperties::AudioPropertiesPrivate
-{
-
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public methods
-////////////////////////////////////////////////////////////////////////////////
-
-AudioProperties::~AudioProperties()
-{
-
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected methods
-////////////////////////////////////////////////////////////////////////////////
-
-AudioProperties::AudioProperties(ReadStyle)
-{
-
-}
diff --git a/libs/taglib/taglib/audioproperties.h b/libs/taglib/taglib/audioproperties.h
deleted file mode 100644
index 4841031ff4..0000000000
--- a/libs/taglib/taglib/audioproperties.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_AUDIOPROPERTIES_H
-#define TAGLIB_AUDIOPROPERTIES_H
-
-#include "taglib_export.h"
-
-namespace TagLib {
-
- //! A simple, abstract interface to common audio properties
-
- /*!
- * The values here are common to most audio formats. For more specific, codec
- * dependant values, please see see the subclasses APIs. This is meant to
- * compliment the TagLib::File and TagLib::Tag APIs in providing a simple
- * interface that is sufficient for most applications.
- */
-
- class TAGLIB_EXPORT AudioProperties
- {
- public:
-
- /*!
- * Reading audio properties from a file can sometimes be very time consuming
- * and for the most accurate results can often involve reading the entire
- * file. Because in many situations speed is critical or the accuracy of the
- * values is not particularly important this allows the level of desired
- * accuracy to be set.
- */
- enum ReadStyle {
- //! Read as little of the file as possible
- Fast,
- //! Read more of the file and make better values guesses
- Average,
- //! Read as much of the file as needed to report accurate values
- Accurate
- };
-
- /*!
- * Destroys this AudioProperties instance.
- */
- virtual ~AudioProperties();
-
- /*!
- * Returns the length of the file in seconds.
- */
- virtual int length() const = 0;
-
- /*!
- * Returns the most appropriate bit rate for the file in kb/s. For constant
- * bitrate formats this is simply the bitrate of the file. For variable
- * bitrate formats this is either the average or nominal bitrate.
- */
- virtual int bitrate() const = 0;
-
- /*!
- * Returns the sample rate in Hz.
- */
- virtual int sampleRate() const = 0;
-
- /*!
- * Returns the number of audio channels.
- */
- virtual int channels() const = 0;
-
- protected:
-
- /*!
- * Construct an audio properties instance. This is protected as this class
- * should not be instantiated directly, but should be instantiated via its
- * subclasses and can be fetched from the FileRef or File APIs.
- *
- * \see ReadStyle
- */
- AudioProperties(ReadStyle style);
-
- private:
- AudioProperties(const AudioProperties &);
- AudioProperties &operator=(const AudioProperties &);
-
- class AudioPropertiesPrivate;
- AudioPropertiesPrivate *d;
- };
-
-}
-
-#endif
diff --git a/libs/taglib/taglib/fileref.cpp b/libs/taglib/taglib/fileref.cpp
deleted file mode 100644
index eee62f2cfc..0000000000
--- a/libs/taglib/taglib/fileref.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tfile.h>
-#include <tstring.h>
-
-#include "fileref.h"
-#include "mpegfile.h"
-#include "vorbisfile.h"
-#include "flacfile.h"
-#include "oggflacfile.h"
-#include "mpcfile.h"
-#include "wavpackfile.h"
-#include "speexfile.h"
-#include "trueaudiofile.h"
-
-using namespace TagLib;
-
-class FileRef::FileRefPrivate : public RefCounter
-{
-public:
- FileRefPrivate(File *f) : RefCounter(), file(f) {}
- ~FileRefPrivate() {
- delete file;
- }
-
- File *file;
- static List<const FileTypeResolver *> fileTypeResolvers;
-};
-
-List<const FileRef::FileTypeResolver *> FileRef::FileRefPrivate::fileTypeResolvers;
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-FileRef::FileRef()
-{
- d = new FileRefPrivate(0);
-}
-
-FileRef::FileRef(FileName fileName, bool readAudioProperties,
- AudioProperties::ReadStyle audioPropertiesStyle)
-{
- d = new FileRefPrivate(create(fileName, readAudioProperties, audioPropertiesStyle));
-}
-
-FileRef::FileRef(File *file)
-{
- d = new FileRefPrivate(file);
-}
-
-FileRef::FileRef(const FileRef &ref) : d(ref.d)
-{
- d->ref();
-}
-
-FileRef::~FileRef()
-{
- if(d->deref())
- delete d;
-}
-
-Tag *FileRef::tag() const
-{
- return d->file->tag();
-}
-
-AudioProperties *FileRef::audioProperties() const
-{
- return d->file->audioProperties();
-}
-
-File *FileRef::file() const
-{
- return d->file;
-}
-
-bool FileRef::save()
-{
- return d->file->save();
-}
-
-const FileRef::FileTypeResolver *FileRef::addFileTypeResolver(const FileRef::FileTypeResolver *resolver) // static
-{
- FileRefPrivate::fileTypeResolvers.prepend(resolver);
- return resolver;
-}
-
-StringList FileRef::defaultFileExtensions()
-{
- StringList l;
-
- l.append("ogg");
- l.append("flac");
- l.append("oga");
- l.append("mp3");
- l.append("mpc");
- l.append("wv");
- l.append("spx");
- l.append("tta");
-
- return l;
-}
-
-bool FileRef::isNull() const
-{
- return !d->file || !d->file->isValid();
-}
-
-FileRef &FileRef::operator=(const FileRef &ref)
-{
- if(&ref == this)
- return *this;
-
- if(d->deref())
- delete d;
-
- d = ref.d;
- d->ref();
-
- return *this;
-}
-
-bool FileRef::operator==(const FileRef &ref) const
-{
- return ref.d->file == d->file;
-}
-
-bool FileRef::operator!=(const FileRef &ref) const
-{
- return ref.d->file != d->file;
-}
-
-File *FileRef::create(FileName fileName, bool readAudioProperties,
- AudioProperties::ReadStyle audioPropertiesStyle) // static
-{
-
- List<const FileTypeResolver *>::ConstIterator it = FileRefPrivate::fileTypeResolvers.begin();
-
- for(; it != FileRefPrivate::fileTypeResolvers.end(); ++it) {
- File *file = (*it)->createFile(fileName, readAudioProperties, audioPropertiesStyle);
- if(file)
- return file;
- }
-
- // Ok, this is really dumb for now, but it works for testing.
-
- String s;
-
-#ifdef _WIN32
- s = (wcslen((const wchar_t *) fileName) > 0) ? String((const wchar_t *) fileName) : String((const char *) fileName);
-#else
- s = fileName;
-#endif
-
- // If this list is updated, the method defaultFileExtensions() should also be
- // updated. However at some point that list should be created at the same time
- // that a default file type resolver is created.
-
- if(s.size() > 4) {
- if(s.substr(s.size() - 4, 4).upper() == ".OGG")
- return new Ogg::Vorbis::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 4, 4).upper() == ".MP3")
- return new MPEG::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 4, 4).upper() == ".OGA")
- return new Ogg::FLAC::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 5, 5).upper() == ".FLAC")
- return new FLAC::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 4, 4).upper() == ".MPC")
- return new MPC::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 3, 3).upper() == ".WV")
- return new WavPack::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 4, 4).upper() == ".SPX")
- return new Ogg::Speex::File(fileName, readAudioProperties, audioPropertiesStyle);
- if(s.substr(s.size() - 4, 4).upper() == ".TTA")
- return new TrueAudio::File(fileName, readAudioProperties, audioPropertiesStyle);
- }
-
- return 0;
-}
diff --git a/libs/taglib/taglib/fileref.h b/libs/taglib/taglib/fileref.h
deleted file mode 100644
index 706ddbae0d..0000000000
--- a/libs/taglib/taglib/fileref.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FILEREF_H
-#define TAGLIB_FILEREF_H
-
-#include <tfile.h>
-#include <tstringlist.h>
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- //! This class provides a simple abstraction for creating and handling files
-
- /*!
- * FileRef exists to provide a minimal, generic and value-based wrapper around
- * a File. It is lightweight and implicitly shared, and as such suitable for
- * pass-by-value use. This hides some of the uglier details of TagLib::File
- * and the non-generic portions of the concrete file implementations.
- *
- * This class is useful in a "simple usage" situation where it is desirable
- * to be able to get and set some of the tag information that is similar
- * across file types.
- *
- * Also note that it is probably a good idea to plug this into your mime
- * type system rather than using the constructor that accepts a file name using
- * the FileTypeResolver.
- *
- * \see FileTypeResolver
- * \see addFileTypeResolver()
- */
-
- class TAGLIB_EXPORT FileRef
- {
- public:
-
- //! A class for pluggable file type resolution.
-
- /*!
- * This class is used to add extend TagLib's very basic file name based file
- * type resolution.
- *
- * This can be accomplished with:
- *
- * \code
- *
- * class MyFileTypeResolver : FileTypeResolver
- * {
- * TagLib::File *createFile(TagLib::FileName *fileName, bool, AudioProperties::ReadStyle)
- * {
- * if(someCheckForAnMP3File(fileName))
- * return new TagLib::MPEG::File(fileName);
- * return 0;
- * }
- * }
- *
- * FileRef::addFileTypeResolver(new MyFileTypeResolver);
- *
- * \endcode
- *
- * Naturally a less contrived example would be slightly more complex. This
- * can be used to plug in mime-type detection systems or to add new file types
- * to TagLib.
- */
-
- class TAGLIB_EXPORT FileTypeResolver
- {
- public:
- // do not fix compiler warning about missing virtual destructor
- // since this would not be binary compatible
- // let Scott fix it whenever he thinks BIC changes can next be applied
- /*!
- * This method must be overridden to provide an additional file type
- * resolver. If the resolver is able to determine the file type it should
- * return a valid File object; if not it should return 0.
- *
- * \note The created file is then owned by the FileRef and should not be
- * deleted. Deletion will happen automatically when the FileRef passes
- * out of scope.
- */
- virtual File *createFile(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle
- audioPropertiesStyle = AudioProperties::Average) const = 0;
- virtual ~FileTypeResolver() {}
- };
-
- /*!
- * Creates a null FileRef.
- */
- FileRef();
-
- /*!
- * Create a FileRef from \a fileName. If \a readAudioProperties is true then
- * the audio properties will be read using \a audioPropertiesStyle. If
- * \a readAudioProperties is false then \a audioPropertiesStyle will be
- * ignored.
- *
- * Also see the note in the class documentation about why you may not want to
- * use this method in your application.
- */
- explicit FileRef(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle
- audioPropertiesStyle = AudioProperties::Average);
-
- /*!
- * Contruct a FileRef using \a file. The FileRef now takes ownership of the
- * pointer and will delete the File when it passes out of scope.
- */
- explicit FileRef(File *file);
-
- /*!
- * Make a copy of \a ref.
- */
- FileRef(const FileRef &ref);
-
- /*!
- * Destroys this FileRef instance.
- */
- virtual ~FileRef();
-
- /*!
- * Returns a pointer to represented file's tag.
- *
- * \warning This pointer will become invalid when this FileRef and all
- * copies pass out of scope.
- *
- * \see File::tag()
- */
- Tag *tag() const;
-
- /*!
- * Returns the audio properties for this FileRef. If no audio properties
- * were read then this will returns a null pointer.
- */
- AudioProperties *audioProperties() const;
-
- /*!
- * Returns a pointer to the file represented by this handler class.
- *
- * As a general rule this call should be avoided since if you need to work
- * with file objects directly, you are probably better served instantiating
- * the File subclasses (i.e. MPEG::File) manually and working with their APIs.
- *
- * This <i>handle</i> exists to provide a minimal, generic and value-based
- * wrapper around a File. Accessing the file directly generally indicates
- * a moving away from this simplicity (and into things beyond the scope of
- * FileRef).
- *
- * \warning This pointer will become invalid when this FileRef and all
- * copies pass out of scope.
- */
- File *file() const;
-
- /*!
- * Saves the file. Returns true on success.
- */
- bool save();
-
- /*!
- * Adds a FileTypeResolver to the list of those used by TagLib. Each
- * additional FileTypeResolver is added to the front of a list of resolvers
- * that are tried. If the FileTypeResolver returns zero the next resolver
- * is tried.
- *
- * Returns a pointer to the added resolver (the same one that's passed in --
- * this is mostly so that static inialializers have something to use for
- * assignment).
- *
- * \see FileTypeResolver
- */
- static const FileTypeResolver *addFileTypeResolver(const FileTypeResolver *resolver);
-
- /*!
- * As is mentioned elsewhere in this class's documentation, the default file
- * type resolution code provided by TagLib only works by comparing file
- * extensions.
- *
- * This method returns the list of file extensions that are used by default.
- *
- * The extensions are all returned in lowercase, though the comparison used
- * by TagLib for resolution is case-insensitive.
- *
- * \note This does not account for any additional file type resolvers that
- * are plugged in. Also note that this is not intended to replace a propper
- * mime-type resolution system, but is just here for reference.
- *
- * \see FileTypeResolver
- */
- static StringList defaultFileExtensions();
-
- /*!
- * Returns true if the file (and as such other pointers) are null.
- */
- bool isNull() const;
-
- /*!
- * Assign the file pointed to by \a ref to this FileRef.
- */
- FileRef &operator=(const FileRef &ref);
-
- /*!
- * Returns true if this FileRef and \a ref point to the same File object.
- */
- bool operator==(const FileRef &ref) const;
-
- /*!
- * Returns true if this FileRef and \a ref do not point to the same File
- * object.
- */
- bool operator!=(const FileRef &ref) const;
-
- /*!
- * A simple implementation of file type guessing. If \a readAudioProperties
- * is true then the audio properties will be read using
- * \a audioPropertiesStyle. If \a readAudioProperties is false then
- * \a audioPropertiesStyle will be ignored.
- *
- * \note You generally shouldn't use this method, but instead the constructor
- * directly.
- *
- * \deprecated
- */
- static File *create(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle audioPropertiesStyle = AudioProperties::Average);
-
-
- private:
- class FileRefPrivate;
- FileRefPrivate *d;
- };
-
-} // namespace TagLib
-
-#endif
diff --git a/libs/taglib/taglib/flac/CMakeLists.txt b/libs/taglib/taglib/flac/CMakeLists.txt
deleted file mode 100644
index 8c9831518d..0000000000
--- a/libs/taglib/taglib/flac/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES flacfile.h flacproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib )
diff --git a/libs/taglib/taglib/flac/Makefile.am b/libs/taglib/taglib/flac/Makefile.am
deleted file mode 100644
index 337986a811..0000000000
--- a/libs/taglib/taglib/flac/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libflac.la
-
-libflac_la_SOURCES = flacfile.cpp flacproperties.cpp
-
-taglib_include_HEADERS = flacfile.h flacproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/flac/Makefile.in b/libs/taglib/taglib/flac/Makefile.in
deleted file mode 100644
index 3ac0810dfa..0000000000
--- a/libs/taglib/taglib/flac/Makefile.in
+++ /dev/null
@@ -1,625 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/flac
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libflac_la_LIBADD =
-am_libflac_la_OBJECTS = flacfile.lo flacproperties.lo
-#>- libflac_la_OBJECTS = $(am_libflac_la_OBJECTS)
-#>+ 4
-libflac_la_final_OBJECTS = libflac_la.all_cpp.lo
-libflac_la_nofinal_OBJECTS = flacfile.lo flacproperties.lo
-@KDE_USE_FINAL_FALSE@libflac_la_OBJECTS = $(libflac_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libflac_la_OBJECTS = $(libflac_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libflac_la_SOURCES)
-DIST_SOURCES = $(libflac_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libflac.la
-libflac_la_SOURCES = flacfile.cpp flacproperties.cpp
-taglib_include_HEADERS = flacfile.h flacproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/flac/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/flac/Makefile
-#>+ 12
- @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 taglib/flac/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/flac/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/flac/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libflac.la: $(libflac_la_OBJECTS) $(libflac_la_DEPENDENCIES)
- $(CXXLINK) $(libflac_la_OBJECTS) $(libflac_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flacfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flacproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/flac/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/flac/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/flac/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libflac_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/flacfile.cpp $(srcdir)/flacproperties.cpp
- @echo 'creating libflac_la.all_cpp.cpp ...'; \
- rm -f libflac_la.all_cpp.files libflac_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libflac_la.all_cpp.final; \
- for file in flacfile.cpp flacproperties.cpp ; do \
- echo "#include \"$$file\"" >> libflac_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libflac_la.all_cpp.final; \
- done; \
- cat libflac_la.all_cpp.final libflac_la.all_cpp.files > libflac_la.all_cpp.cpp; \
- rm -f libflac_la.all_cpp.final libflac_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libflac_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libflac_la_OBJECTS="$(libflac_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libflac_la_OBJECTS="$(libflac_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libflac_la_OBJECTS="$(libflac_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libflac_la_OBJECTS="$(libflac_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/flac/flacfile.cpp b/libs/taglib/taglib/flac/flacfile.cpp
deleted file mode 100644
index 2cf35ad246..0000000000
--- a/libs/taglib/taglib/flac/flacfile.cpp
+++ /dev/null
@@ -1,431 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003-2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tlist.h>
-#include <tdebug.h>
-#include <tagunion.h>
-
-#include <id3v2header.h>
-#include <id3v2tag.h>
-#include <id3v1tag.h>
-#include <xiphcomment.h>
-
-#include "flacfile.h"
-
-using namespace TagLib;
-
-namespace
-{
- enum { XiphIndex = 0, ID3v2Index = 1, ID3v1Index = 2 };
- enum { StreamInfo = 0, Padding, Application, SeekTable, VorbisComment, CueSheet };
-}
-
-class FLAC::File::FilePrivate
-{
-public:
- FilePrivate() :
- ID3v2FrameFactory(ID3v2::FrameFactory::instance()),
- ID3v2Location(-1),
- ID3v2OriginalSize(0),
- ID3v1Location(-1),
- properties(0),
- flacStart(0),
- streamStart(0),
- streamLength(0),
- scanned(false),
- hasXiphComment(false),
- hasID3v2(false),
- hasID3v1(false) {}
-
- ~FilePrivate()
- {
- delete properties;
- }
-
- const ID3v2::FrameFactory *ID3v2FrameFactory;
- long ID3v2Location;
- uint ID3v2OriginalSize;
-
- long ID3v1Location;
-
- TagUnion tag;
-
- Properties *properties;
- ByteVector streamInfoData;
- ByteVector xiphCommentData;
-
- long flacStart;
- long streamStart;
- long streamLength;
- bool scanned;
-
- bool hasXiphComment;
- bool hasID3v2;
- bool hasID3v1;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-FLAC::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) :
- TagLib::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-FLAC::File::File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties, Properties::ReadStyle propertiesStyle) :
- TagLib::File(file)
-{
- d = new FilePrivate;
- d->ID3v2FrameFactory = frameFactory;
- read(readProperties, propertiesStyle);
-}
-
-FLAC::File::~File()
-{
- delete d;
-}
-
-TagLib::Tag *FLAC::File::tag() const
-{
- return &d->tag;
-}
-
-FLAC::Properties *FLAC::File::audioProperties() const
-{
- return d->properties;
-}
-
-
-bool FLAC::File::save()
-{
- if(readOnly()) {
- debug("FLAC::File::save() - Cannot save to a read only file.");
- return false;
- }
-
- // Create new vorbis comments
-
- Tag::duplicate(&d->tag, xiphComment(true), true);
-
- d->xiphCommentData = xiphComment()->render(false);
-
- // A Xiph comment portion of the data stream starts with a 4-byte descriptor.
- // The first byte indicates the frame type. The last three bytes are used
- // to give the length of the data segment. Here we start
-
- ByteVector data = ByteVector::fromUInt(d->xiphCommentData.size());
-
- data[0] = char(VorbisComment);
- data.append(d->xiphCommentData);
-
-
- // If file already have comment => find and update it
- // if not => insert one
-
- // TODO: Search for padding and use that
-
- if(d->hasXiphComment) {
-
- long nextBlockOffset = d->flacStart;
- bool isLastBlock = false;
-
- while(!isLastBlock) {
- seek(nextBlockOffset);
-
- ByteVector header = readBlock(4);
- char blockType = header[0] & 0x7f;
- isLastBlock = (header[0] & 0x80) != 0;
- uint blockLength = header.mid(1, 3).toUInt();
-
- if(blockType == VorbisComment) {
- data[0] = header[0];
- insert(data, nextBlockOffset, blockLength + 4);
- break;
- }
-
- nextBlockOffset += blockLength + 4;
- }
- }
- else {
-
- const long firstBlockOffset = d->flacStart;
- seek(firstBlockOffset);
-
- ByteVector header = readBlock(4);
- bool isLastBlock = (header[0] & 0x80) != 0;
- uint blockLength = header.mid(1, 3).toUInt();
-
- if(isLastBlock) {
-
- // If the first block was previously also the last block, then we want to
- // mark it as no longer being the first block (the writeBlock() call) and
- // then set the data for the block that we're about to write to mark our
- // new block as the last block.
-
- seek(firstBlockOffset);
- writeBlock(static_cast<char>(header[0] & 0x7F));
- data[0] |= 0x80;
- }
-
- insert(data, firstBlockOffset + blockLength + 4, 0);
- d->hasXiphComment = true;
- }
-
- // Update ID3 tags
-
- if(ID3v2Tag()) {
- if(d->hasID3v2) {
- if(d->ID3v2Location < d->flacStart)
- debug("FLAC::File::save() -- This can't be right -- an ID3v2 tag after the "
- "start of the FLAC bytestream? Not writing the ID3v2 tag.");
- else
- insert(ID3v2Tag()->render(), d->ID3v2Location, d->ID3v2OriginalSize);
- }
- else
- insert(ID3v2Tag()->render(), 0, 0);
- }
-
- if(ID3v1Tag()) {
- seek(-128, End);
- writeBlock(ID3v1Tag()->render());
- }
-
- return true;
-}
-
-ID3v2::Tag *FLAC::File::ID3v2Tag(bool create)
-{
- if(!create || d->tag[ID3v2Index])
- return static_cast<ID3v2::Tag *>(d->tag[ID3v2Index]);
-
- d->tag.set(ID3v2Index, new ID3v2::Tag);
- return static_cast<ID3v2::Tag *>(d->tag[ID3v2Index]);
-}
-
-ID3v1::Tag *FLAC::File::ID3v1Tag(bool create)
-{
- return d->tag.access<ID3v1::Tag>(ID3v1Index, create);
-}
-
-Ogg::XiphComment *FLAC::File::xiphComment(bool create)
-{
- return d->tag.access<Ogg::XiphComment>(XiphIndex, create);
-}
-
-void FLAC::File::setID3v2FrameFactory(const ID3v2::FrameFactory *factory)
-{
- d->ID3v2FrameFactory = factory;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void FLAC::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- // Look for an ID3v2 tag
-
- d->ID3v2Location = findID3v2();
-
- if(d->ID3v2Location >= 0) {
-
- d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->ID3v2Location, d->ID3v2FrameFactory));
-
- d->ID3v2OriginalSize = ID3v2Tag()->header()->completeTagSize();
-
- if(ID3v2Tag()->header()->tagSize() <= 0)
- d->tag.set(ID3v2Index, 0);
- else
- d->hasID3v2 = true;
- }
-
- // Look for an ID3v1 tag
-
- d->ID3v1Location = findID3v1();
-
- if(d->ID3v1Location >= 0) {
- d->tag.set(ID3v1Index, new ID3v1::Tag(this, d->ID3v1Location));
- d->hasID3v1 = true;
- }
-
- // Look for FLAC metadata, including vorbis comments
-
- scan();
-
- if(!isValid())
- return;
-
- if(d->hasXiphComment)
- d->tag.set(XiphIndex, new Ogg::XiphComment(xiphCommentData()));
- else
- d->tag.set(XiphIndex, new Ogg::XiphComment);
-
- if(readProperties)
- d->properties = new Properties(streamInfoData(), streamLength(), propertiesStyle);
-}
-
-ByteVector FLAC::File::streamInfoData()
-{
- return isValid() ? d->streamInfoData : ByteVector();
-}
-
-ByteVector FLAC::File::xiphCommentData() const
-{
- return (isValid() && d->hasXiphComment) ? d->xiphCommentData : ByteVector();
-}
-
-long FLAC::File::streamLength()
-{
- return d->streamLength;
-}
-
-void FLAC::File::scan()
-{
- // Scan the metadata pages
-
- if(d->scanned)
- return;
-
- if(!isValid())
- return;
-
- long nextBlockOffset;
-
- if(d->hasID3v2)
- nextBlockOffset = find("fLaC", d->ID3v2Location + d->ID3v2OriginalSize);
- else
- nextBlockOffset = find("fLaC");
-
- if(nextBlockOffset < 0) {
- debug("FLAC::File::scan() -- FLAC stream not found");
- setValid(false);
- return;
- }
-
- nextBlockOffset += 4;
- d->flacStart = nextBlockOffset;
-
- seek(nextBlockOffset);
-
- ByteVector header = readBlock(4);
-
- // Header format (from spec):
- // <1> Last-metadata-block flag
- // <7> BLOCK_TYPE
- // 0 : STREAMINFO
- // 1 : PADDING
- // ..
- // 4 : VORBIS_COMMENT
- // ..
- // <24> Length of metadata to follow
-
- char blockType = header[0] & 0x7f;
- bool isLastBlock = (header[0] & 0x80) != 0;
- uint length = header.mid(1, 3).toUInt();
-
- // First block should be the stream_info metadata
-
- if(blockType != StreamInfo) {
- debug("FLAC::File::scan() -- invalid FLAC stream");
- setValid(false);
- return;
- }
-
- d->streamInfoData = readBlock(length);
- nextBlockOffset += length + 4;
-
- // Search through the remaining metadata
-
- while(!isLastBlock) {
-
- header = readBlock(4);
- blockType = header[0] & 0x7f;
- isLastBlock = (header[0] & 0x80) != 0;
- length = header.mid(1, 3).toUInt();
-
- if(blockType == Padding) {
- // debug("FLAC::File::scan() -- Padding found");
- }
- // Found the vorbis-comment
- else if(blockType == VorbisComment) {
- d->xiphCommentData = readBlock(length);
- d->hasXiphComment = true;
- }
-
- nextBlockOffset += length + 4;
-
- if(nextBlockOffset >= File::length()) {
- debug("FLAC::File::scan() -- FLAC stream corrupted");
- setValid(false);
- return;
- }
- seek(nextBlockOffset);
- }
-
- // End of metadata, now comes the datastream
-
- d->streamStart = nextBlockOffset;
- d->streamLength = File::length() - d->streamStart;
-
- if(d->hasID3v1)
- d->streamLength -= 128;
-
- d->scanned = true;
-}
-
-long FLAC::File::findID3v1()
-{
- if(!isValid())
- return -1;
-
- seek(-128, End);
- long p = tell();
-
- if(readBlock(3) == ID3v1::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
-
-long FLAC::File::findID3v2()
-{
- if(!isValid())
- return -1;
-
- seek(0);
-
- if(readBlock(3) == ID3v2::Header::fileIdentifier())
- return 0;
-
- return -1;
-}
diff --git a/libs/taglib/taglib/flac/flacfile.h b/libs/taglib/taglib/flac/flacfile.h
deleted file mode 100644
index ae1fe69b35..0000000000
--- a/libs/taglib/taglib/flac/flacfile.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FLACFILE_H
-#define TAGLIB_FLACFILE_H
-
-#include "taglib_export.h"
-#include "tfile.h"
-
-#include "flacproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v2 { class FrameFactory; class Tag; }
- namespace ID3v1 { class Tag; }
- namespace Ogg { class XiphComment; }
-
- //! An implementation of FLAC metadata
-
- /*!
- * This is implementation of FLAC metadata for non-Ogg FLAC files. At some
- * point when Ogg / FLAC is more common there will be a similar implementation
- * under the Ogg hiearchy.
- *
- * This supports ID3v1, ID3v2 and Xiph style comments as well as reading stream
- * properties from the file.
- */
-
- namespace FLAC {
-
- //! An implementation of TagLib::File with FLAC specific methods
-
- /*!
- * This implements and provides an interface for FLAC files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to FLAC files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * Contructs a FLAC file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * \deprecated This constructor will be dropped in favor of the one below
- * in a future version.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Contructs a FLAC file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * If this file contains and ID3v2 tag the frames will be created using
- * \a frameFactory.
- */
- // BIC: merge with the above constructor
- File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be a union of XiphComment,
- * ID3v1 and ID3v2 tags.
- *
- * \see ID3v2Tag()
- * \see ID3v1Tag()
- * \see XiphComment()
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the FLAC::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Save the file. This will primarily save the XiphComment, but
- * will also keep any old ID3-tags up to date. If the file
- * has no XiphComment, one will be constructed from the ID3-tags.
- *
- * This returns true if the save was successful.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v2 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v2 tag. If \a create is true it will create
- * an ID3v2 tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v2::Tag *ID3v2Tag(bool create = false);
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the XiphComment for the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid XiphComment. If \a create is true it will create
- * a XiphComment if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- Ogg::XiphComment *xiphComment(bool create = false);
-
- /*!
- * Set the ID3v2::FrameFactory to something other than the default. This
- * can be used to specify the way that ID3v2 frames will be interpreted
- * when
- *
- * \see ID3v2FrameFactory
- */
- void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
-
- /*!
- * Returns the block of data used by FLAC::Properties for parsing the
- * stream properties.
- *
- * \deprecated This method will not be public in a future release.
- */
- ByteVector streamInfoData(); // BIC: remove
-
- /*!
- * Returns the length of the audio-stream, used by FLAC::Properties for
- * calculating the bitrate.
- *
- * \deprecated This method will not be public in a future release.
- */
- long streamLength(); // BIC: remove
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- long findID3v2();
- long findID3v1();
- ByteVector xiphCommentData() const;
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/flac/flacproperties.cpp b/libs/taglib/taglib/flac/flacproperties.cpp
deleted file mode 100644
index 3ee018fed0..0000000000
--- a/libs/taglib/taglib/flac/flacproperties.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "flacproperties.h"
-#include "flacfile.h"
-
-using namespace TagLib;
-
-class FLAC::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(ByteVector d, long st, ReadStyle s) :
- data(d),
- streamLength(st),
- style(s),
- length(0),
- bitrate(0),
- sampleRate(0),
- sampleWidth(0),
- channels(0) {}
-
- ByteVector data;
- long streamLength;
- ReadStyle style;
- int length;
- int bitrate;
- int sampleRate;
- int sampleWidth;
- int channels;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-FLAC::Properties::Properties(ByteVector data, long streamLength, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(data, streamLength, style);
- read();
-}
-
-FLAC::Properties::Properties(File *file, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(file->streamInfoData(), file->streamLength(), style);
- read();
-}
-
-FLAC::Properties::~Properties()
-{
- delete d;
-}
-
-int FLAC::Properties::length() const
-{
- return d->length;
-}
-
-int FLAC::Properties::bitrate() const
-{
- return d->bitrate;
-}
-
-int FLAC::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int FLAC::Properties::sampleWidth() const
-{
- return d->sampleWidth;
-}
-
-int FLAC::Properties::channels() const
-{
- return d->channels;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void FLAC::Properties::read()
-{
- if(d->data.size() < 18) {
- debug("FLAC::Properties::read() - FLAC properties must contain at least 18 bytes.");
- return;
- }
-
- int pos = 0;
-
- // Minimum block size (in samples)
- pos += 2;
-
- // Maximum block size (in samples)
- pos += 2;
-
- // Minimum frame size (in bytes)
- pos += 3;
-
- // Maximum frame size (in bytes)
- pos += 3;
-
- uint flags = d->data.mid(pos, 4).toUInt(true);
- d->sampleRate = flags >> 12;
- d->channels = ((flags >> 9) & 7) + 1;
- d->sampleWidth = ((flags >> 4) & 31) + 1;
-
- // The last 4 bits are the most significant 4 bits for the 36 bit
- // stream length in samples. (Audio files measured in days)
-
- uint highLength =d->sampleRate > 0 ? (((flags & 0xf) << 28) / d->sampleRate) << 4 : 0;
- pos += 4;
-
- d->length = d->sampleRate > 0 ?
- (d->data.mid(pos, 4).toUInt(true)) / d->sampleRate + highLength : 0;
- pos += 4;
-
- // Uncompressed bitrate:
-
- //d->bitrate = ((d->sampleRate * d->channels) / 1000) * d->sampleWidth;
-
- // Real bitrate:
-
- d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0;
-}
diff --git a/libs/taglib/taglib/flac/flacproperties.h b/libs/taglib/taglib/flac/flacproperties.h
deleted file mode 100644
index 9ac676643a..0000000000
--- a/libs/taglib/taglib/flac/flacproperties.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FLACPROPERTIES_H
-#define TAGLIB_FLACPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace FLAC {
-
- class File;
-
- //! An implementation of audio property reading for FLAC
-
- /*!
- * This reads the data from an FLAC stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of FLAC::Properties with the data read from the
- * ByteVector \a data.
- */
- // BIC: switch to const reference
- Properties(ByteVector data, long streamLength, ReadStyle style = Average);
-
- /*!
- * Create an instance of FLAC::Properties with the data read from the
- * FLAC::File \a file.
- */
- // BIC: remove
- Properties(File *file, ReadStyle style = Average);
-
- /*!
- * Destroys this FLAC::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns the sample width as read from the FLAC identification
- * header.
- */
- int sampleWidth() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpc/CMakeLists.txt b/libs/taglib/taglib/mpc/CMakeLists.txt
deleted file mode 100644
index 238c9cb17c..0000000000
--- a/libs/taglib/taglib/mpc/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES mpcfile.h mpcproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/mpc/Makefile.am b/libs/taglib/taglib/mpc/Makefile.am
deleted file mode 100644
index 692475626a..0000000000
--- a/libs/taglib/taglib/mpc/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libmpc.la
-
-libmpc_la_SOURCES = mpcfile.cpp mpcproperties.cpp
-
-taglib_include_HEADERS = mpcfile.h mpcproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/mpc/Makefile.in b/libs/taglib/taglib/mpc/Makefile.in
deleted file mode 100644
index 469765dc34..0000000000
--- a/libs/taglib/taglib/mpc/Makefile.in
+++ /dev/null
@@ -1,625 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/mpc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libmpc_la_LIBADD =
-am_libmpc_la_OBJECTS = mpcfile.lo mpcproperties.lo
-#>- libmpc_la_OBJECTS = $(am_libmpc_la_OBJECTS)
-#>+ 4
-libmpc_la_final_OBJECTS = libmpc_la.all_cpp.lo
-libmpc_la_nofinal_OBJECTS = mpcfile.lo mpcproperties.lo
-@KDE_USE_FINAL_FALSE@libmpc_la_OBJECTS = $(libmpc_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libmpc_la_OBJECTS = $(libmpc_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libmpc_la_SOURCES)
-DIST_SOURCES = $(libmpc_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libmpc.la
-libmpc_la_SOURCES = mpcfile.cpp mpcproperties.cpp
-taglib_include_HEADERS = mpcfile.h mpcproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpc/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/mpc/Makefile
-#>+ 12
- @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 taglib/mpc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpc/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpc/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libmpc.la: $(libmpc_la_OBJECTS) $(libmpc_la_DEPENDENCIES)
- $(CXXLINK) $(libmpc_la_OBJECTS) $(libmpc_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpcfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpcproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/mpc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpc/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpc/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libmpc_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/mpcfile.cpp $(srcdir)/mpcproperties.cpp
- @echo 'creating libmpc_la.all_cpp.cpp ...'; \
- rm -f libmpc_la.all_cpp.files libmpc_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libmpc_la.all_cpp.final; \
- for file in mpcfile.cpp mpcproperties.cpp ; do \
- echo "#include \"$$file\"" >> libmpc_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libmpc_la.all_cpp.final; \
- done; \
- cat libmpc_la.all_cpp.final libmpc_la.all_cpp.files > libmpc_la.all_cpp.cpp; \
- rm -f libmpc_la.all_cpp.final libmpc_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libmpc_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libmpc_la_OBJECTS="$(libmpc_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libmpc_la_OBJECTS="$(libmpc_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libmpc_la_OBJECTS="$(libmpc_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libmpc_la_OBJECTS="$(libmpc_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/mpc/mpcfile.cpp b/libs/taglib/taglib/mpc/mpcfile.cpp
deleted file mode 100644
index 922bf83844..0000000000
--- a/libs/taglib/taglib/mpc/mpcfile.cpp
+++ /dev/null
@@ -1,325 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tagunion.h>
-#include <tdebug.h>
-
-#include "mpcfile.h"
-#include "id3v1tag.h"
-#include "id3v2header.h"
-#include "apetag.h"
-#include "apefooter.h"
-
-using namespace TagLib;
-
-namespace
-{
- enum { APEIndex, ID3v1Index };
-}
-
-class MPC::File::FilePrivate
-{
-public:
- FilePrivate() :
- APELocation(-1),
- APESize(0),
- ID3v1Location(-1),
- ID3v2Header(0),
- ID3v2Location(-1),
- ID3v2Size(0),
- properties(0),
- scanned(false),
- hasAPE(false),
- hasID3v1(false),
- hasID3v2(false) {}
-
- ~FilePrivate()
- {
- delete ID3v2Header;
- delete properties;
- }
-
- long APELocation;
- uint APESize;
-
- long ID3v1Location;
-
- ID3v2::Header *ID3v2Header;
- long ID3v2Location;
- uint ID3v2Size;
-
- TagUnion tag;
-
- Properties *properties;
- bool scanned;
-
- // These indicate whether the file *on disk* has these tags, not if
- // this data structure does. This is used in computing offsets.
-
- bool hasAPE;
- bool hasID3v1;
- bool hasID3v2;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MPC::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : TagLib::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-MPC::File::~File()
-{
- delete d;
-}
-
-TagLib::Tag *MPC::File::tag() const
-{
- return &d->tag;
-}
-
-MPC::Properties *MPC::File::audioProperties() const
-{
- return d->properties;
-}
-
-bool MPC::File::save()
-{
- if(readOnly()) {
- debug("MPC::File::save() -- File is read only.");
- return false;
- }
-
- // Possibly strip ID3v2 tag
-
- if(d->hasID3v2 && !d->ID3v2Header) {
- removeBlock(d->ID3v2Location, d->ID3v2Size);
- d->hasID3v2 = false;
- if(d->hasID3v1)
- d->ID3v1Location -= d->ID3v2Size;
- if(d->hasAPE)
- d->APELocation -= d->ID3v2Size;
- }
-
- // Update ID3v1 tag
-
- if(ID3v1Tag()) {
- if(d->hasID3v1) {
- seek(d->ID3v1Location);
- writeBlock(ID3v1Tag()->render());
- }
- else {
- seek(0, End);
- d->ID3v1Location = tell();
- writeBlock(ID3v1Tag()->render());
- d->hasID3v1 = true;
- }
- } else
- if(d->hasID3v1) {
- removeBlock(d->ID3v1Location, 128);
- d->hasID3v1 = false;
- if(d->hasAPE) {
- if(d->APELocation > d->ID3v1Location)
- d->APELocation -= 128;
- }
- }
-
- // Update APE tag
-
- if(APETag()) {
- if(d->hasAPE)
- insert(APETag()->render(), d->APELocation, d->APESize);
- else {
- if(d->hasID3v1) {
- insert(APETag()->render(), d->ID3v1Location, 0);
- d->APESize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- d->APELocation = d->ID3v1Location;
- d->ID3v1Location += d->APESize;
- }
- else {
- seek(0, End);
- d->APELocation = tell();
- writeBlock(APETag()->render());
- d->APESize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- }
- }
- }
- else
- if(d->hasAPE) {
- removeBlock(d->APELocation, d->APESize);
- d->hasAPE = false;
- if(d->hasID3v1) {
- if(d->ID3v1Location > d->APELocation)
- d->ID3v1Location -= d->APESize;
- }
- }
-
- return true;
-}
-
-ID3v1::Tag *MPC::File::ID3v1Tag(bool create)
-{
- return d->tag.access<ID3v1::Tag>(ID3v1Index, create);
-}
-
-APE::Tag *MPC::File::APETag(bool create)
-{
- return d->tag.access<APE::Tag>(APEIndex, create);
-}
-
-void MPC::File::strip(int tags)
-{
- if(tags & ID3v1) {
- d->tag.set(ID3v1Index, 0);
- APETag(true);
- }
-
- if(tags & ID3v2) {
- delete d->ID3v2Header;
- d->ID3v2Header = 0;
- }
-
- if(tags & APE) {
- d->tag.set(APEIndex, 0);
-
- if(!ID3v1Tag())
- APETag(true);
- }
-}
-
-void MPC::File::remove(int tags)
-{
- strip(tags);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void MPC::File::read(bool readProperties, Properties::ReadStyle /* propertiesStyle */)
-{
- // Look for an ID3v1 tag
-
- d->ID3v1Location = findID3v1();
-
- if(d->ID3v1Location >= 0) {
- d->tag.set(ID3v1Index, new ID3v1::Tag(this, d->ID3v1Location));
- d->hasID3v1 = true;
- }
-
- // Look for an APE tag
-
- findAPE();
-
- d->APELocation = findAPE();
-
- if(d->APELocation >= 0) {
- d->tag.set(APEIndex, new APE::Tag(this, d->APELocation));
-
- d->APESize = APETag()->footer()->completeTagSize();
- d->APELocation = d->APELocation + APETag()->footer()->size() - d->APESize;
- d->hasAPE = true;
- }
-
- if(!d->hasID3v1)
- APETag(true);
-
- // Look for and skip an ID3v2 tag
-
- d->ID3v2Location = findID3v2();
-
- if(d->ID3v2Location >= 0) {
- seek(d->ID3v2Location);
- d->ID3v2Header = new ID3v2::Header(readBlock(ID3v2::Header::size()));
- d->ID3v2Size = d->ID3v2Header->completeTagSize();
- d->hasID3v2 = true;
- }
-
- if(d->hasID3v2)
- seek(d->ID3v2Location + d->ID3v2Size);
- else
- seek(0);
-
- // Look for MPC metadata
-
- if(readProperties) {
- d->properties = new Properties(readBlock(MPC::HeaderSize),
- length() - d->ID3v2Size - d->APESize);
- }
-}
-
-long MPC::File::findAPE()
-{
- if(!isValid())
- return -1;
-
- if(d->hasID3v1)
- seek(-160, End);
- else
- seek(-32, End);
-
- long p = tell();
-
- if(readBlock(8) == APE::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
-
-long MPC::File::findID3v1()
-{
- if(!isValid())
- return -1;
-
- seek(-128, End);
- long p = tell();
-
- if(readBlock(3) == ID3v1::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
-
-long MPC::File::findID3v2()
-{
- if(!isValid())
- return -1;
-
- seek(0);
-
- if(readBlock(3) == ID3v2::Header::fileIdentifier())
- return 0;
-
- return -1;
-}
diff --git a/libs/taglib/taglib/mpc/mpcfile.h b/libs/taglib/taglib/mpc/mpcfile.h
deleted file mode 100644
index 7e34c8635a..0000000000
--- a/libs/taglib/taglib/mpc/mpcfile.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MPCFILE_H
-#define TAGLIB_MPCFILE_H
-
-#include "taglib_export.h"
-#include "tfile.h"
-
-#include "mpcproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v1 { class Tag; }
- namespace APE { class Tag; }
-
- //! An implementation of MPC metadata
-
- /*!
- * This is implementation of MPC metadata.
- *
- * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream
- * properties from the file. ID3v2 tags are invalid in MPC-files, but will be skipped
- * and ignored.
- */
-
- namespace MPC {
-
- //! An implementation of TagLib::File with MPC specific methods
-
- /*!
- * This implements and provides an interface for MPC files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to MPC files.
- * The only invalid tag combination supported is an ID3v1 tag after an APE tag.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * This set of flags is used for various operations and is suitable for
- * being OR-ed together.
- */
- enum TagTypes {
- //! Empty set. Matches no tag types.
- NoTags = 0x0000,
- //! Matches ID3v1 tags.
- ID3v1 = 0x0001,
- //! Matches ID3v2 tags.
- ID3v2 = 0x0002,
- //! Matches APE tags.
- APE = 0x0004,
- //! Matches all tag types.
- AllTags = 0xffff
- };
-
- /*!
- * Contructs an MPC file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
- * or a combination of the two.
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the MPC::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Saves the file.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist. If there is already an APE tag, the
- * new ID3v1 tag will be placed after it.
- *
- * \note The Tag <b>is still</b> owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the APE tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid APE tag. If \a create is true it will create
- * a APE tag if one does not exist. If there is already an ID3v1 tag, thes
- * new APE tag will be placed before it.
- *
- * \note The Tag <b>is still</b> owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- APE::Tag *APETag(bool create = false);
-
- /*!
- * This will remove the tags that match the OR-ed together TagTypes from the
- * file. By default it removes all tags.
- *
- * \warning This will also invalidate pointers to the tags
- * as their memory will be freed.
- *
- * \note In order to make the removal permanent save() still needs to be called.
- */
- void strip(int tags = AllTags);
-
- /*!
- * \deprecated
- * \see strip
- */
- void remove(int tags = AllTags);
-
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- long findAPE();
- long findID3v1();
- long findID3v2();
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpc/mpcproperties.cpp b/libs/taglib/taglib/mpc/mpcproperties.cpp
deleted file mode 100644
index 2114a86495..0000000000
--- a/libs/taglib/taglib/mpc/mpcproperties.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-#include <bitset>
-
-#include "mpcproperties.h"
-#include "mpcfile.h"
-
-using namespace TagLib;
-
-class MPC::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(const ByteVector &d, long length, ReadStyle s) :
- data(d),
- streamLength(length),
- style(s),
- version(0),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0) {}
-
- ByteVector data;
- long streamLength;
- ReadStyle style;
- int version;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MPC::Properties::Properties(const ByteVector &data, long streamLength, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(data, streamLength, style);
- read();
-}
-
-MPC::Properties::~Properties()
-{
- delete d;
-}
-
-int MPC::Properties::length() const
-{
- return d->length;
-}
-
-int MPC::Properties::bitrate() const
-{
- return d->bitrate;
-}
-
-int MPC::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int MPC::Properties::channels() const
-{
- return d->channels;
-}
-
-int MPC::Properties::mpcVersion() const
-{
- return d->version;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-static const unsigned short sftable [4] = { 44100, 48000, 37800, 32000 };
-
-void MPC::Properties::read()
-{
- if(!d->data.startsWith("MP+"))
- return;
-
- d->version = d->data[3] & 15;
-
- unsigned int frames;
-
- if(d->version >= 7) {
- frames = d->data.mid(4, 4).toUInt(false);
-
- std::bitset<32> flags = d->data.mid(8, 4).toUInt(false);
- d->sampleRate = sftable[flags[17] * 2 + flags[16]];
- d->channels = 2;
- }
- else {
- uint headerData = d->data.mid(0, 4).toUInt(false);
-
- d->bitrate = (headerData >> 23) & 0x01ff;
- d->version = (headerData >> 11) & 0x03ff;
- d->sampleRate = 44100;
- d->channels = 2;
-
- if(d->version >= 5)
- frames = d->data.mid(4, 4).toUInt(false);
- else
- frames = d->data.mid(6, 2).toUInt(false);
- }
-
- uint samples = frames * 1152 - 576;
-
- d->length = d->sampleRate > 0 ? (samples + (d->sampleRate / 2)) / d->sampleRate : 0;
-
- if(!d->bitrate)
- d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0;
-}
diff --git a/libs/taglib/taglib/mpc/mpcproperties.h b/libs/taglib/taglib/mpc/mpcproperties.h
deleted file mode 100644
index bdbc887b8b..0000000000
--- a/libs/taglib/taglib/mpc/mpcproperties.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MPCPROPERTIES_H
-#define TAGLIB_MPCPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace MPC {
-
- class File;
-
- static const uint HeaderSize = 8*7;
-
- //! An implementation of audio property reading for MPC
-
- /*!
- * This reads the data from an MPC stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of MPC::Properties with the data read from the
- * ByteVector \a data.
- */
- Properties(const ByteVector &data, long streamLength, ReadStyle style = Average);
-
- /*!
- * Destroys this MPC::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns the version of the bitstream (SV4-SV7)
- */
- int mpcVersion() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/CMakeLists.txt b/libs/taglib/taglib/mpeg/CMakeLists.txt
deleted file mode 100644
index 9b0e308644..0000000000
--- a/libs/taglib/taglib/mpeg/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-ADD_SUBDIRECTORY( id3v1 )
-ADD_SUBDIRECTORY( id3v2 )
-
-INSTALL(FILES mpegfile.h mpegproperties.h mpegheader.h xingheader.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib )
diff --git a/libs/taglib/taglib/mpeg/Makefile.am b/libs/taglib/taglib/mpeg/Makefile.am
deleted file mode 100644
index 330aec39ba..0000000000
--- a/libs/taglib/taglib/mpeg/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-SUBDIRS = id3v1 id3v2
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg/id3v2 -I./id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v1 -I./id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libmpeg.la
-
-libmpeg_la_SOURCES = mpegfile.cpp mpegproperties.cpp mpegheader.cpp xingheader.cpp
-
-taglib_include_HEADERS = mpegfile.h mpegproperties.h mpegheader.h xingheader.h
-taglib_includedir = $(includedir)/taglib
-
-libmpeg_la_LIBADD = ./id3v2/libid3v2.la ./id3v1/libid3v1.la
diff --git a/libs/taglib/taglib/mpeg/Makefile.in b/libs/taglib/taglib/mpeg/Makefile.in
deleted file mode 100644
index b6ba2bf3a4..0000000000
--- a/libs/taglib/taglib/mpeg/Makefile.in
+++ /dev/null
@@ -1,753 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/mpeg
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libmpeg_la_DEPENDENCIES = ./id3v2/libid3v2.la ./id3v1/libid3v1.la
-am_libmpeg_la_OBJECTS = mpegfile.lo mpegproperties.lo mpegheader.lo \
- xingheader.lo
-#>- libmpeg_la_OBJECTS = $(am_libmpeg_la_OBJECTS)
-#>+ 5
-libmpeg_la_final_OBJECTS = libmpeg_la.all_cpp.lo
-libmpeg_la_nofinal_OBJECTS = mpegfile.lo mpegproperties.lo mpegheader.lo \
- xingheader.lo
-@KDE_USE_FINAL_FALSE@libmpeg_la_OBJECTS = $(libmpeg_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libmpeg_la_OBJECTS = $(libmpeg_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libmpeg_la_SOURCES)
-DIST_SOURCES = $(libmpeg_la_SOURCES)
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-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)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = id3v1 id3v2
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpeg/id3v2 -I./id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v1 -I./id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libmpeg.la
-libmpeg_la_SOURCES = mpegfile.cpp mpegproperties.cpp mpegheader.cpp xingheader.cpp
-taglib_include_HEADERS = mpegfile.h mpegproperties.h mpegheader.h xingheader.h
-taglib_includedir = $(includedir)/taglib
-libmpeg_la_LIBADD = ./id3v2/libid3v2.la ./id3v1/libid3v1.la
-#>- all: all-recursive
-#>+ 1
-all: docs-am all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/mpeg/Makefile
-#>+ 12
- @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 taglib/mpeg/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libmpeg.la: $(libmpeg_la_OBJECTS) $(libmpeg_la_DEPENDENCIES)
- $(CXXLINK) $(libmpeg_la_OBJECTS) $(libmpeg_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegheader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegproperties.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xingheader.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-taglib_includeHEADERS
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
- uninstall-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/mpeg/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libmpeg_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/mpegfile.cpp $(srcdir)/mpegproperties.cpp $(srcdir)/mpegheader.cpp $(srcdir)/xingheader.cpp
- @echo 'creating libmpeg_la.all_cpp.cpp ...'; \
- rm -f libmpeg_la.all_cpp.files libmpeg_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libmpeg_la.all_cpp.final; \
- for file in mpegfile.cpp mpegproperties.cpp mpegheader.cpp xingheader.cpp ; do \
- echo "#include \"$$file\"" >> libmpeg_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libmpeg_la.all_cpp.final; \
- done; \
- cat libmpeg_la.all_cpp.final libmpeg_la.all_cpp.files > libmpeg_la.all_cpp.cpp; \
- rm -f libmpeg_la.all_cpp.final libmpeg_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libmpeg_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libmpeg_la_OBJECTS="$(libmpeg_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libmpeg_la_OBJECTS="$(libmpeg_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libmpeg_la_OBJECTS="$(libmpeg_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libmpeg_la_OBJECTS="$(libmpeg_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/mpeg/id3v1/CMakeLists.txt b/libs/taglib/taglib/mpeg/id3v1/CMakeLists.txt
deleted file mode 100644
index 64b21ec81a..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES id3v1tag.h id3v1genres.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/mpeg/id3v1/Makefile.am b/libs/taglib/taglib/mpeg/id3v1/Makefile.am
deleted file mode 100644
index 861446841a..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libid3v1.la
-
-libid3v1_la_SOURCES = id3v1tag.cpp id3v1genres.cpp
-
-taglib_include_HEADERS = id3v1tag.h id3v1genres.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/mpeg/id3v1/Makefile.in b/libs/taglib/taglib/mpeg/id3v1/Makefile.in
deleted file mode 100644
index 94d50b43e2..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/Makefile.in
+++ /dev/null
@@ -1,623 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/mpeg/id3v1
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libid3v1_la_LIBADD =
-am_libid3v1_la_OBJECTS = id3v1tag.lo id3v1genres.lo
-#>- libid3v1_la_OBJECTS = $(am_libid3v1_la_OBJECTS)
-#>+ 4
-libid3v1_la_final_OBJECTS = libid3v1_la.all_cpp.lo
-libid3v1_la_nofinal_OBJECTS = id3v1tag.lo id3v1genres.lo
-@KDE_USE_FINAL_FALSE@libid3v1_la_OBJECTS = $(libid3v1_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libid3v1_la_OBJECTS = $(libid3v1_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libid3v1_la_SOURCES)
-DIST_SOURCES = $(libid3v1_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libid3v1.la
-libid3v1_la_SOURCES = id3v1tag.cpp id3v1genres.cpp
-taglib_include_HEADERS = id3v1tag.h id3v1genres.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v1/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/mpeg/id3v1/Makefile
-#>+ 12
- @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 taglib/mpeg/id3v1/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v1/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v1/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libid3v1.la: $(libid3v1_la_OBJECTS) $(libid3v1_la_DEPENDENCIES)
- $(CXXLINK) $(libid3v1_la_OBJECTS) $(libid3v1_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v1genres.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v1tag.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/mpeg/id3v1/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v1/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v1/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libid3v1_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/id3v1tag.cpp $(srcdir)/id3v1genres.cpp
- @echo 'creating libid3v1_la.all_cpp.cpp ...'; \
- rm -f libid3v1_la.all_cpp.files libid3v1_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libid3v1_la.all_cpp.final; \
- for file in id3v1tag.cpp id3v1genres.cpp ; do \
- echo "#include \"$$file\"" >> libid3v1_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libid3v1_la.all_cpp.final; \
- done; \
- cat libid3v1_la.all_cpp.final libid3v1_la.all_cpp.files > libid3v1_la.all_cpp.cpp; \
- rm -f libid3v1_la.all_cpp.final libid3v1_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libid3v1_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libid3v1_la_OBJECTS="$(libid3v1_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libid3v1_la_OBJECTS="$(libid3v1_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libid3v1_la_OBJECTS="$(libid3v1_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libid3v1_la_OBJECTS="$(libid3v1_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/mpeg/id3v1/id3v1genres.cpp b/libs/taglib/taglib/mpeg/id3v1/id3v1genres.cpp
deleted file mode 100644
index 7cd42f381c..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/id3v1genres.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
-***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "id3v1genres.h"
-
-using namespace TagLib;
-
-namespace TagLib {
- namespace ID3v1 {
-
- static const int genresSize = 148;
- static const String genres[] = {
- "Blues",
- "Classic Rock",
- "Country",
- "Dance",
- "Disco",
- "Funk",
- "Grunge",
- "Hip-Hop",
- "Jazz",
- "Metal",
- "New Age",
- "Oldies",
- "Other",
- "Pop",
- "R&B",
- "Rap",
- "Reggae",
- "Rock",
- "Techno",
- "Industrial",
- "Alternative",
- "Ska",
- "Death Metal",
- "Pranks",
- "Soundtrack",
- "Euro-Techno",
- "Ambient",
- "Trip-Hop",
- "Vocal",
- "Jazz+Funk",
- "Fusion",
- "Trance",
- "Classical",
- "Instrumental",
- "Acid",
- "House",
- "Game",
- "Sound Clip",
- "Gospel",
- "Noise",
- "Alternative Rock",
- "Bass",
- "Soul",
- "Punk",
- "Space",
- "Meditative",
- "Instrumental Pop",
- "Instrumental Rock",
- "Ethnic",
- "Gothic",
- "Darkwave",
- "Techno-Industrial",
- "Electronic",
- "Pop-Folk",
- "Eurodance",
- "Dream",
- "Southern Rock",
- "Comedy",
- "Cult",
- "Gangsta",
- "Top 40",
- "Christian Rap",
- "Pop/Funk",
- "Jungle",
- "Native American",
- "Cabaret",
- "New Wave",
- "Psychedelic",
- "Rave",
- "Showtunes",
- "Trailer",
- "Lo-Fi",
- "Tribal",
- "Acid Punk",
- "Acid Jazz",
- "Polka",
- "Retro",
- "Musical",
- "Rock & Roll",
- "Hard Rock",
- "Folk",
- "Folk/Rock",
- "National Folk",
- "Swing",
- "Fusion",
- "Bebob",
- "Latin",
- "Revival",
- "Celtic",
- "Bluegrass",
- "Avantgarde",
- "Gothic Rock",
- "Progressive Rock",
- "Psychedelic Rock",
- "Symphonic Rock",
- "Slow Rock",
- "Big Band",
- "Chorus",
- "Easy Listening",
- "Acoustic",
- "Humour",
- "Speech",
- "Chanson",
- "Opera",
- "Chamber Music",
- "Sonata",
- "Symphony",
- "Booty Bass",
- "Primus",
- "Porn Groove",
- "Satire",
- "Slow Jam",
- "Club",
- "Tango",
- "Samba",
- "Folklore",
- "Ballad",
- "Power Ballad",
- "Rhythmic Soul",
- "Freestyle",
- "Duet",
- "Punk Rock",
- "Drum Solo",
- "A Cappella",
- "Euro-House",
- "Dance Hall",
- "Goa",
- "Drum & Bass",
- "Club-House",
- "Hardcore",
- "Terror",
- "Indie",
- "BritPop",
- "Negerpunk",
- "Polsk Punk",
- "Beat",
- "Christian Gangsta Rap",
- "Heavy Metal",
- "Black Metal",
- "Crossover",
- "Contemporary Christian",
- "Christian Rock",
- "Merengue",
- "Salsa",
- "Thrash Metal",
- "Anime",
- "Jpop",
- "Synthpop"
- };
- }
-}
-
-StringList ID3v1::genreList()
-{
- static StringList l;
- if(l.isEmpty()) {
- for(int i = 0; i < genresSize; i++)
- l.append(genres[i]);
- }
- return l;
-}
-
-ID3v1::GenreMap ID3v1::genreMap()
-{
- static GenreMap m;
- if(m.isEmpty()) {
- for(int i = 0; i < genresSize; i++)
- m.insert(genres[i], i);
- }
- return m;
-}
-
-String ID3v1::genre(int i)
-{
- if(i >= 0 && i < genresSize)
- return genres[i];
- return String::null;
-}
-
-int ID3v1::genreIndex(const String &name)
-{
- if(genreMap().contains(name))
- return genreMap()[name];
- return 255;
-}
diff --git a/libs/taglib/taglib/mpeg/id3v1/id3v1genres.h b/libs/taglib/taglib/mpeg/id3v1/id3v1genres.h
deleted file mode 100644
index 6e5d82e768..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/id3v1genres.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V1GENRE_H
-#define TAGLIB_ID3V1GENRE_H
-
-#include "tmap.h"
-#include "tstringlist.h"
-#include "taglib_export.h"
-
-namespace TagLib {
- namespace ID3v1 {
-
- typedef Map<String, int> GenreMap;
-
- /*!
- * Returns the list of canonical ID3v1 genre names in the order that they
- * are listed in the standard.
- */
- StringList TAGLIB_EXPORT genreList();
-
- /*!
- * A "reverse mapping" that goes from the canonical ID3v1 genre name to the
- * respective genre number. genreMap()["Rock"] ==
- */
- GenreMap genreMap();
-
- /*!
- * Returns the name of the genre at \a index in the ID3v1 genre list. If
- * \a index is out of range -- less than zero or greater than 146 -- a null
- * string will be returned.
- */
- String genre(int index);
-
- /*!
- * Returns the genre index for the (case sensitive) genre \a name. If the
- * genre is not in the list 255 (which signifies an unknown genre in ID3v1)
- * will be returned.
- */
- int genreIndex(const String &name);
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v1/id3v1tag.cpp b/libs/taglib/taglib/mpeg/id3v1/id3v1tag.cpp
deleted file mode 100644
index f698865b15..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/id3v1tag.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tdebug.h>
-#include <tfile.h>
-
-#include "id3v1tag.h"
-#include "id3v1genres.h"
-
-using namespace TagLib;
-using namespace ID3v1;
-
-class ID3v1::Tag::TagPrivate
-{
-public:
- TagPrivate() : file(0), tagOffset(-1), track(0), genre(255) {}
-
- File *file;
- long tagOffset;
-
- String title;
- String artist;
- String album;
- String year;
- String comment;
- uchar track;
- uchar genre;
-
- static const StringHandler *stringHandler;
-};
-
-const ID3v1::StringHandler *ID3v1::Tag::TagPrivate::stringHandler = new StringHandler;
-
-////////////////////////////////////////////////////////////////////////////////
-// StringHandler implementation
-////////////////////////////////////////////////////////////////////////////////
-
-String ID3v1::StringHandler::parse(const ByteVector &data) const
-{
- return String(data, String::Latin1).stripWhiteSpace();
-}
-
-ByteVector ID3v1::StringHandler::render(const String &s) const
-{
- if(!s.isLatin1())
- {
- return ByteVector();
- }
-
- return s.data(String::Latin1);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public methods
-////////////////////////////////////////////////////////////////////////////////
-
-ID3v1::Tag::Tag() : TagLib::Tag()
-{
- d = new TagPrivate;
-}
-
-ID3v1::Tag::Tag(File *file, long tagOffset) : TagLib::Tag()
-{
- d = new TagPrivate;
- d->file = file;
- d->tagOffset = tagOffset;
-
- read();
-}
-
-ID3v1::Tag::~Tag()
-{
- delete d;
-}
-
-ByteVector ID3v1::Tag::render() const
-{
- ByteVector data;
-
- data.append(fileIdentifier());
- data.append(TagPrivate::stringHandler->render(d->title).resize(30));
- data.append(TagPrivate::stringHandler->render(d->artist).resize(30));
- data.append(TagPrivate::stringHandler->render(d->album).resize(30));
- data.append(TagPrivate::stringHandler->render(d->year).resize(4));
- data.append(TagPrivate::stringHandler->render(d->comment).resize(28));
- data.append(char(0));
- data.append(char(d->track));
- data.append(char(d->genre));
-
- return data;
-}
-
-ByteVector ID3v1::Tag::fileIdentifier()
-{
- return ByteVector::fromCString("TAG");
-}
-
-String ID3v1::Tag::title() const
-{
- return d->title;
-}
-
-String ID3v1::Tag::artist() const
-{
- return d->artist;
-}
-
-String ID3v1::Tag::album() const
-{
- return d->album;
-}
-
-String ID3v1::Tag::comment() const
-{
- return d->comment;
-}
-
-String ID3v1::Tag::genre() const
-{
- return ID3v1::genre(d->genre);
-}
-
-TagLib::uint ID3v1::Tag::year() const
-{
- return d->year.toInt();
-}
-
-TagLib::uint ID3v1::Tag::track() const
-{
- return d->track;
-}
-
-void ID3v1::Tag::setTitle(const String &s)
-{
- d->title = s;
-}
-
-void ID3v1::Tag::setArtist(const String &s)
-{
- d->artist = s;
-}
-
-void ID3v1::Tag::setAlbum(const String &s)
-{
- d->album = s;
-}
-
-void ID3v1::Tag::setComment(const String &s)
-{
- d->comment = s;
-}
-
-void ID3v1::Tag::setGenre(const String &s)
-{
- d->genre = ID3v1::genreIndex(s);
-}
-
-void ID3v1::Tag::setYear(uint i)
-{
- d->year = i > 0 ? String::number(i) : String::null;
-}
-
-void ID3v1::Tag::setTrack(uint i)
-{
- d->track = i < 256 ? i : 0;
-}
-
-void ID3v1::Tag::setStringHandler(const StringHandler *handler)
-{
- delete TagPrivate::stringHandler;
- TagPrivate::stringHandler = handler;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected methods
-////////////////////////////////////////////////////////////////////////////////
-
-void ID3v1::Tag::read()
-{
- if(d->file && d->file->isValid()) {
- d->file->seek(d->tagOffset);
- // read the tag -- always 128 bytes
- ByteVector data = d->file->readBlock(128);
-
- // some initial sanity checking
- if(data.size() == 128 && data.startsWith("TAG"))
- parse(data);
- else {
- debug("ID3v1 tag is not valid or could not be read at the specified offset.");
- }
- }
-}
-
-void ID3v1::Tag::parse(const ByteVector &data)
-{
- int offset = 3;
-
- d->title = TagPrivate::stringHandler->parse(data.mid(offset, 30));
- offset += 30;
-
- d->artist = TagPrivate::stringHandler->parse(data.mid(offset, 30));
- offset += 30;
-
- d->album = TagPrivate::stringHandler->parse(data.mid(offset, 30));
- offset += 30;
-
- d->year = TagPrivate::stringHandler->parse(data.mid(offset, 4));
- offset += 4;
-
- // Check for ID3v1.1 -- Note that ID3v1 *does not* support "track zero" -- this
- // is not a bug in TagLib. Since a zeroed byte is what we would expect to
- // indicate the end of a C-String, specifically the comment string, a value of
- // zero must be assumed to be just that.
-
- if(data[offset + 28] == 0 && data[offset + 29] != 0) {
- // ID3v1.1 detected
-
- d->comment = TagPrivate::stringHandler->parse(data.mid(offset, 28));
- d->track = uchar(data[offset + 29]);
- }
- else
- d->comment = data.mid(offset, 30);
-
- offset += 30;
-
- d->genre = uchar(data[offset]);
-}
diff --git a/libs/taglib/taglib/mpeg/id3v1/id3v1tag.h b/libs/taglib/taglib/mpeg/id3v1/id3v1tag.h
deleted file mode 100644
index a2372f8738..0000000000
--- a/libs/taglib/taglib/mpeg/id3v1/id3v1tag.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V1TAG_H
-#define TAGLIB_ID3V1TAG_H
-
-#include "tag.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- class File;
-
- //! An ID3v1 implementation
-
- namespace ID3v1 {
-
- //! A abstraction for the string to data encoding in ID3v1 tags.
-
- /*!
- * ID3v1 should in theory always contain ISO-8859-1 (Latin1) data. In
- * practice it does not. TagLib by default only supports ISO-8859-1 data
- * in ID3v1 tags.
- *
- * However by subclassing this class and reimplementing parse() and render()
- * and setting your reimplementation as the default with
- * ID3v1::Tag::setStringHandler() you can define how you would like these
- * transformations to be done.
- *
- * \warning It is advisable <b>not</b> to write non-ISO-8859-1 data to ID3v1
- * tags. Please consider disabling the writing of ID3v1 tags in the case
- * that the data is ISO-8859-1.
- *
- * \see ID3v1::Tag::setStringHandler()
- */
-
- class TAGLIB_EXPORT StringHandler
- {
- public:
- // BIC: Add virtual destructor.
-
- /*!
- * Decode a string from \a data. The default implementation assumes that
- * \a data is an ISO-8859-1 (Latin1) character array.
- */
- virtual String parse(const ByteVector &data) const;
-
- /*!
- * Encode a ByteVector with the data from \a s. The default implementation
- * assumes that \a s is an ISO-8859-1 (Latin1) string. If the string is
- * does not conform to ISO-8859-1, no value is written.
- *
- * \warning It is recommended that you <b>not</b> override this method, but
- * instead do not write an ID3v1 tag in the case that the data is not
- * ISO-8859-1.
- */
- virtual ByteVector render(const String &s) const;
- virtual ~StringHandler() {}
- };
-
- //! The main class in the ID3v1 implementation
-
- /*!
- * This is an implementation of the ID3v1 format. ID3v1 is both the simplist
- * and most common of tag formats but is rather limited. Because of its
- * pervasiveness and the way that applications have been written around the
- * fields that it provides, the generic TagLib::Tag API is a mirror of what is
- * provided by ID3v1.
- *
- * ID3v1 tags should generally only contain Latin1 information. However because
- * many applications do not follow this rule there is now support for overriding
- * the ID3v1 string handling using the ID3v1::StringHandler class. Please see
- * the documentation for that class for more information.
- *
- * \see StringHandler
- *
- * \note Most fields are truncated to a maximum of 28-30 bytes. The
- * truncation happens automatically when the tag is rendered.
- */
-
- class TAGLIB_EXPORT Tag : public TagLib::Tag
- {
- public:
- /*!
- * Create an ID3v1 tag with default values.
- */
- Tag();
-
- /*!
- * Create an ID3v1 tag and parse the data in \a file starting at
- * \a tagOffset.
- */
- Tag(File *file, long tagOffset);
-
- /*!
- * Destroys this Tag instance.
- */
- virtual ~Tag();
-
- /*!
- * Renders the in memory values to a ByteVector suitable for writing to
- * the file.
- */
- ByteVector render() const;
-
- /*!
- * Returns the string "TAG" suitable for usage in locating the tag in a
- * file.
- */
- static ByteVector fileIdentifier();
-
- // Reimplementations.
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(uint i);
- virtual void setTrack(uint i);
-
- /*!
- * Sets the string handler that decides how the ID3v1 data will be
- * converted to and from binary data.
- *
- * \see StringHandler
- */
- static void setStringHandler(const StringHandler *handler);
-
- protected:
- /*!
- * Reads from the file specified in the constructor.
- */
- void read();
- /*!
- * Pareses the body of the tag in \a data.
- */
- void parse(const ByteVector &data);
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/CMakeLists.txt b/libs/taglib/taglib/mpeg/id3v2/CMakeLists.txt
deleted file mode 100644
index f6e1ef1309..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-ADD_SUBDIRECTORY( frames )
-
-INSTALL(FILES id3v2extendedheader.h id3v2frame.h id3v2header.h id3v2synchdata.h id3v2footer.h id3v2framefactory.h id3v2tag.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
-
diff --git a/libs/taglib/taglib/mpeg/id3v2/Makefile.am b/libs/taglib/taglib/mpeg/id3v2/Makefile.am
deleted file mode 100644
index 1a45ae5059..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-SUBDIRS = frames
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libid3v2.la
-
-libid3v2_la_SOURCES = \
- id3v2framefactory.cpp id3v2synchdata.cpp id3v2tag.cpp \
- id3v2header.cpp id3v2frame.cpp id3v2footer.cpp \
- id3v2extendedheader.cpp
-
-taglib_include_HEADERS = \
- id3v2extendedheader.h id3v2frame.h id3v2header.h \
- id3v2synchdata.h id3v2footer.h id3v2framefactory.h id3v2tag.h
-
-taglib_includedir = $(includedir)/taglib
-
-if link_zlib
-zlib = -lz
-endif
-
-libid3v2_la_LIBADD = ./frames/libframes.la $(zlib)
diff --git a/libs/taglib/taglib/mpeg/id3v2/Makefile.in b/libs/taglib/taglib/mpeg/id3v2/Makefile.in
deleted file mode 100644
index df65ec4546..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/Makefile.in
+++ /dev/null
@@ -1,766 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/mpeg/id3v2
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libid3v2_la_DEPENDENCIES = ./frames/libframes.la $(am__DEPENDENCIES_1)
-am_libid3v2_la_OBJECTS = id3v2framefactory.lo id3v2synchdata.lo \
- id3v2tag.lo id3v2header.lo id3v2frame.lo id3v2footer.lo \
- id3v2extendedheader.lo
-#>- libid3v2_la_OBJECTS = $(am_libid3v2_la_OBJECTS)
-#>+ 6
-libid3v2_la_final_OBJECTS = libid3v2_la.all_cpp.lo
-libid3v2_la_nofinal_OBJECTS = id3v2framefactory.lo id3v2synchdata.lo \
- id3v2tag.lo id3v2header.lo id3v2frame.lo id3v2footer.lo \
- id3v2extendedheader.lo
-@KDE_USE_FINAL_FALSE@libid3v2_la_OBJECTS = $(libid3v2_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libid3v2_la_OBJECTS = $(libid3v2_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libid3v2_la_SOURCES)
-DIST_SOURCES = $(libid3v2_la_SOURCES)
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-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)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = frames
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libid3v2.la
-libid3v2_la_SOURCES = \
- id3v2framefactory.cpp id3v2synchdata.cpp id3v2tag.cpp \
- id3v2header.cpp id3v2frame.cpp id3v2footer.cpp \
- id3v2extendedheader.cpp
-
-taglib_include_HEADERS = \
- id3v2extendedheader.h id3v2frame.h id3v2header.h \
- id3v2synchdata.h id3v2footer.h id3v2framefactory.h id3v2tag.h
-
-taglib_includedir = $(includedir)/taglib
-@link_zlib_TRUE@zlib = -lz
-libid3v2_la_LIBADD = ./frames/libframes.la $(zlib)
-#>- all: all-recursive
-#>+ 1
-all: docs-am all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v2/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/Makefile
-#>+ 12
- @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 taglib/mpeg/id3v2/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libid3v2.la: $(libid3v2_la_OBJECTS) $(libid3v2_la_DEPENDENCIES)
- $(CXXLINK) $(libid3v2_la_OBJECTS) $(libid3v2_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2extendedheader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2footer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2frame.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2framefactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2header.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2synchdata.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3v2tag.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-taglib_includeHEADERS
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
- uninstall-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in id3v2.3.0.txt id3v2.4.0-structure.txt id3v2.2.0.txt id3v2.4.0-frames.txt CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/mpeg/id3v2/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libid3v2_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/id3v2framefactory.cpp $(srcdir)/id3v2synchdata.cpp $(srcdir)/id3v2tag.cpp $(srcdir)/id3v2header.cpp $(srcdir)/id3v2frame.cpp $(srcdir)/id3v2footer.cpp $(srcdir)/id3v2extendedheader.cpp
- @echo 'creating libid3v2_la.all_cpp.cpp ...'; \
- rm -f libid3v2_la.all_cpp.files libid3v2_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libid3v2_la.all_cpp.final; \
- for file in id3v2framefactory.cpp id3v2synchdata.cpp id3v2tag.cpp id3v2header.cpp id3v2frame.cpp id3v2footer.cpp id3v2extendedheader.cpp ; do \
- echo "#include \"$$file\"" >> libid3v2_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libid3v2_la.all_cpp.final; \
- done; \
- cat libid3v2_la.all_cpp.final libid3v2_la.all_cpp.files > libid3v2_la.all_cpp.cpp; \
- rm -f libid3v2_la.all_cpp.final libid3v2_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libid3v2_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libid3v2_la_OBJECTS="$(libid3v2_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libid3v2_la_OBJECTS="$(libid3v2_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libid3v2_la_OBJECTS="$(libid3v2_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libid3v2_la_OBJECTS="$(libid3v2_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt b/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt
deleted file mode 100644
index 1fb1e20868..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-INSTALL(FILES
- attachedpictureframe.h
- commentsframe.h
- generalencapsulatedobjectframe.h
- relativevolumeframe.h
- textidentificationframe.h
- uniquefileidentifierframe.h
- unknownframe.h
- unsynchronizedlyricsframe.h
- urllinkframe.h
- DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am b/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am
deleted file mode 100644
index 517cd75386..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libframes.la
-
-libframes_la_SOURCES = \
- attachedpictureframe.cpp \
- commentsframe.cpp \
- generalencapsulatedobjectframe.cpp \
- relativevolumeframe.cpp \
- textidentificationframe.cpp \
- uniquefileidentifierframe.cpp \
- unknownframe.cpp \
- unsynchronizedlyricsframe.cpp \
- urllinkframe.cpp
-
-taglib_include_HEADERS = \
- attachedpictureframe.h \
- commentsframe.h \
- generalencapsulatedobjectframe.h \
- relativevolumeframe.h \
- textidentificationframe.h \
- uniquefileidentifierframe.h \
- unknownframe.h \
- unsynchronizedlyricsframe.h \
- urllinkframe.h
-
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in b/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in
deleted file mode 100644
index 9268ff5e8d..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in
+++ /dev/null
@@ -1,656 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/mpeg/id3v2/frames
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libframes_la_LIBADD =
-am_libframes_la_OBJECTS = attachedpictureframe.lo commentsframe.lo \
- generalencapsulatedobjectframe.lo relativevolumeframe.lo \
- textidentificationframe.lo uniquefileidentifierframe.lo \
- unknownframe.lo unsynchronizedlyricsframe.lo urllinkframe.lo
-#>- libframes_la_OBJECTS = $(am_libframes_la_OBJECTS)
-#>+ 7
-libframes_la_final_OBJECTS = libframes_la.all_cpp.lo
-libframes_la_nofinal_OBJECTS = attachedpictureframe.lo commentsframe.lo \
- generalencapsulatedobjectframe.lo relativevolumeframe.lo \
- textidentificationframe.lo uniquefileidentifierframe.lo \
- unknownframe.lo unsynchronizedlyricsframe.lo urllinkframe.lo
-@KDE_USE_FINAL_FALSE@libframes_la_OBJECTS = $(libframes_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libframes_la_OBJECTS = $(libframes_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libframes_la_SOURCES)
-DIST_SOURCES = $(libframes_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libframes.la
-libframes_la_SOURCES = \
- attachedpictureframe.cpp \
- commentsframe.cpp \
- generalencapsulatedobjectframe.cpp \
- relativevolumeframe.cpp \
- textidentificationframe.cpp \
- uniquefileidentifierframe.cpp \
- unknownframe.cpp \
- unsynchronizedlyricsframe.cpp \
- urllinkframe.cpp
-
-taglib_include_HEADERS = \
- attachedpictureframe.h \
- commentsframe.h \
- generalencapsulatedobjectframe.h \
- relativevolumeframe.h \
- textidentificationframe.h \
- uniquefileidentifierframe.h \
- unknownframe.h \
- unsynchronizedlyricsframe.h \
- urllinkframe.h
-
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile
-#>+ 12
- @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 taglib/mpeg/id3v2/frames/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/frames/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libframes.la: $(libframes_la_OBJECTS) $(libframes_la_DEPENDENCIES)
- $(CXXLINK) $(libframes_la_OBJECTS) $(libframes_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attachedpictureframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commentsframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generalencapsulatedobjectframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativevolumeframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textidentificationframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uniquefileidentifierframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unknownframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsynchronizedlyricsframe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/urllinkframe.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/mpeg/id3v2/frames/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/frames/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libframes_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/attachedpictureframe.cpp $(srcdir)/commentsframe.cpp $(srcdir)/generalencapsulatedobjectframe.cpp $(srcdir)/relativevolumeframe.cpp $(srcdir)/textidentificationframe.cpp $(srcdir)/uniquefileidentifierframe.cpp $(srcdir)/unknownframe.cpp $(srcdir)/unsynchronizedlyricsframe.cpp $(srcdir)/urllinkframe.cpp
- @echo 'creating libframes_la.all_cpp.cpp ...'; \
- rm -f libframes_la.all_cpp.files libframes_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libframes_la.all_cpp.final; \
- for file in attachedpictureframe.cpp commentsframe.cpp generalencapsulatedobjectframe.cpp relativevolumeframe.cpp textidentificationframe.cpp uniquefileidentifierframe.cpp unknownframe.cpp unsynchronizedlyricsframe.cpp urllinkframe.cpp ; do \
- echo "#include \"$$file\"" >> libframes_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libframes_la.all_cpp.final; \
- done; \
- cat libframes_la.all_cpp.final libframes_la.all_cpp.files > libframes_la.all_cpp.cpp; \
- rm -f libframes_la.all_cpp.final libframes_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libframes_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libframes_la_OBJECTS="$(libframes_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libframes_la_OBJECTS="$(libframes_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libframes_la_OBJECTS="$(libframes_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libframes_la_OBJECTS="$(libframes_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp
deleted file mode 100644
index 8a88253f5c..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "attachedpictureframe.h"
-
-#include <tstringlist.h>
-#include <tdebug.h>
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class AttachedPictureFrame::AttachedPictureFramePrivate
-{
-public:
- AttachedPictureFramePrivate() : textEncoding(String::Latin1),
- type(AttachedPictureFrame::Other) {}
-
- String::Type textEncoding;
- String mimeType;
- AttachedPictureFrame::Type type;
- String description;
- ByteVector data;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-AttachedPictureFrame::AttachedPictureFrame() : Frame("APIC")
-{
- d = new AttachedPictureFramePrivate;
-}
-
-AttachedPictureFrame::AttachedPictureFrame(const ByteVector &data) : Frame(data)
-{
- d = new AttachedPictureFramePrivate;
- setData(data);
-}
-
-AttachedPictureFrame::~AttachedPictureFrame()
-{
- delete d;
-}
-
-String AttachedPictureFrame::toString() const
-{
- String s = "[" + d->mimeType + "]";
- return d->description.isEmpty() ? s : d->description + " " + s;
-}
-
-String::Type AttachedPictureFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void AttachedPictureFrame::setTextEncoding(String::Type t)
-{
- d->textEncoding = t;
-}
-
-String AttachedPictureFrame::mimeType() const
-{
- return d->mimeType;
-}
-
-void AttachedPictureFrame::setMimeType(const String &m)
-{
- d->mimeType = m;
-}
-
-AttachedPictureFrame::Type AttachedPictureFrame::type() const
-{
- return d->type;
-}
-
-void AttachedPictureFrame::setType(Type t)
-{
- d->type = t;
-}
-
-String AttachedPictureFrame::description() const
-{
- return d->description;
-}
-
-void AttachedPictureFrame::setDescription(const String &desc)
-{
- d->description = desc;
-}
-
-ByteVector AttachedPictureFrame::picture() const
-{
- return d->data;
-}
-
-void AttachedPictureFrame::setPicture(const ByteVector &p)
-{
- d->data = p;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void AttachedPictureFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 5) {
- debug("A picture frame must contain at least 5 bytes.");
- return;
- }
-
- d->textEncoding = String::Type(data[0]);
-
- int pos = 1;
-
- d->mimeType = readStringField(data, String::Latin1, &pos);
- d->type = (TagLib::ID3v2::AttachedPictureFrame::Type)data[pos++];
- d->description = readStringField(data, d->textEncoding, &pos);
-
- d->data = data.mid(pos);
-}
-
-ByteVector AttachedPictureFrame::renderFields() const
-{
- ByteVector data;
-
- String::Type encoding = checkEncoding(d->description, d->textEncoding);
-
- data.append(char(encoding));
- data.append(d->mimeType.data(String::Latin1));
- data.append(textDelimiter(String::Latin1));
- data.append(char(d->type));
- data.append(d->description.data(encoding));
- data.append(textDelimiter(encoding));
- data.append(d->data);
-
- return data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-AttachedPictureFrame::AttachedPictureFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new AttachedPictureFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h
deleted file mode 100644
index bd95ed22d2..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ATTACHEDPICTUREFRAME_H
-#define TAGLIB_ATTACHEDPICTUREFRAME_H
-
-#include <id3v2frame.h>
-#include <id3v2header.h>
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An ID3v2 attached picture frame implementation
-
- /*!
- * This is an implementation of ID3v2 attached pictures. Pictures may be
- * included in tags, one per APIC frame (but there may be multiple APIC
- * frames in a single tag). These pictures are usually in either JPEG or
- * PNG format.
- */
-
- class TAGLIB_EXPORT AttachedPictureFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
-
- /*!
- * This describes the function or content of the picture.
- */
- enum Type {
- //! A type not enumerated below
- Other = 0x00,
- //! 32x32 PNG image that should be used as the file icon
- FileIcon = 0x01,
- //! File icon of a different size or format
- OtherFileIcon = 0x02,
- //! Front cover image of the album
- FrontCover = 0x03,
- //! Back cover image of the album
- BackCover = 0x04,
- //! Inside leaflet page of the album
- LeafletPage = 0x05,
- //! Image from the album itself
- Media = 0x06,
- //! Picture of the lead artist or soloist
- LeadArtist = 0x07,
- //! Picture of the artist or performer
- Artist = 0x08,
- //! Picture of the conductor
- Conductor = 0x09,
- //! Picture of the band or orchestra
- Band = 0x0A,
- //! Picture of the composer
- Composer = 0x0B,
- //! Picture of the lyricist or text writer
- Lyricist = 0x0C,
- //! Picture of the recording location or studio
- RecordingLocation = 0x0D,
- //! Picture of the artists during recording
- DuringRecording = 0x0E,
- //! Picture of the artists during performance
- DuringPerformance = 0x0F,
- //! Picture from a movie or video related to the track
- MovieScreenCapture = 0x10,
- //! Picture of a large, coloured fish
- ColouredFish = 0x11,
- //! Illustration related to the track
- Illustration = 0x12,
- //! Logo of the band or performer
- BandLogo = 0x13,
- //! Logo of the publisher (record company)
- PublisherLogo = 0x14
- };
-
- /*!
- * Constructs an empty picture frame. The description, content and text
- * encoding should be set manually.
- */
- AttachedPictureFrame();
-
- /*!
- * Constructs an AttachedPicture frame based on \a data.
- */
- explicit AttachedPictureFrame(const ByteVector &data);
-
- /*!
- * Destroys the AttahcedPictureFrame instance.
- */
- virtual ~AttachedPictureFrame();
-
- /*!
- * Returns a string containing the description and mime-type
- */
- virtual String toString() const;
-
- /*!
- * Returns the text encoding used for the description.
- *
- * \see setTextEncoding()
- * \see description()
- */
- String::Type textEncoding() const;
-
- /*!
- * Set the text encoding used for the description.
- *
- * \see description()
- */
- void setTextEncoding(String::Type t);
-
- /*!
- * Returns the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- */
- String mimeType() const;
-
- /*!
- * Sets the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- */
- void setMimeType(const String &m);
-
- /*!
- * Returns the type of the image.
- *
- * \see Type
- * \see setType()
- */
- Type type() const;
-
- /*!
- * Sets the type for the image.
- *
- * \see Type
- * \see type()
- */
- void setType(Type t);
-
- /*!
- * Returns a text description of the image.
- *
- * \see setDescription()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- String description() const;
-
- /*!
- * Sets a textual description of the image to \a desc.
- *
- * \see description()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- void setDescription(const String &desc);
-
- /*!
- * Returns the image data as a ByteVector.
- *
- * \note ByteVector has a data() method that returns a const char * which
- * should make it easy to export this data to external programs.
- *
- * \see setPicture()
- * \see mimeType()
- */
- ByteVector picture() const;
-
- /*!
- * Sets the image data to \a p. \a p should be of the type specified in
- * this frame's mime-type specification.
- *
- * \see picture()
- * \see mimeType()
- * \see setMimeType()
- */
- void setPicture(const ByteVector &p);
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- AttachedPictureFrame(const ByteVector &data, Header *h);
- AttachedPictureFrame(const AttachedPictureFrame &);
- AttachedPictureFrame &operator=(const AttachedPictureFrame &);
-
- class AttachedPictureFramePrivate;
- AttachedPictureFramePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp
deleted file mode 100644
index 2df176bde0..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevectorlist.h>
-#include <id3v2tag.h>
-#include <tdebug.h>
-#include <tstringlist.h>
-
-#include "commentsframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class CommentsFrame::CommentsFramePrivate
-{
-public:
- CommentsFramePrivate() : textEncoding(String::Latin1) {}
- String::Type textEncoding;
- ByteVector language;
- String description;
- String text;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-CommentsFrame::CommentsFrame(String::Type encoding) : Frame("COMM")
-{
- d = new CommentsFramePrivate;
- d->textEncoding = encoding;
-}
-
-CommentsFrame::CommentsFrame(const ByteVector &data) : Frame(data)
-{
- d = new CommentsFramePrivate;
- setData(data);
-}
-
-CommentsFrame::~CommentsFrame()
-{
- delete d;
-}
-
-String CommentsFrame::toString() const
-{
- return d->text;
-}
-
-ByteVector CommentsFrame::language() const
-{
- return d->language;
-}
-
-String CommentsFrame::description() const
-{
- return d->description;
-}
-
-String CommentsFrame::text() const
-{
- return d->text;
-}
-
-void CommentsFrame::setLanguage(const ByteVector &languageEncoding)
-{
- d->language = languageEncoding.mid(0, 3);
-}
-
-void CommentsFrame::setDescription(const String &s)
-{
- d->description = s;
-}
-
-void CommentsFrame::setText(const String &s)
-{
- d->text = s;
-}
-
-String::Type CommentsFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void CommentsFrame::setTextEncoding(String::Type encoding)
-{
- d->textEncoding = encoding;
-}
-
-CommentsFrame *CommentsFrame::findByDescription(const ID3v2::Tag *tag, const String &d) // static
-{
- ID3v2::FrameList comments = tag->frameList("COMM");
-
- for(ID3v2::FrameList::ConstIterator it = comments.begin();
- it != comments.end();
- ++it)
- {
- CommentsFrame *frame = dynamic_cast<CommentsFrame *>(*it);
- if(frame && frame->description() == d)
- return frame;
- }
-
- return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void CommentsFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 5) {
- debug("A comment frame must contain at least 5 bytes.");
- return;
- }
-
- d->textEncoding = String::Type(data[0]);
- d->language = data.mid(1, 3);
-
- int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2;
-
- ByteVectorList l = ByteVectorList::split(data.mid(4), textDelimiter(d->textEncoding), byteAlign, 2);
-
- if(l.size() == 2) {
- d->description = String(l.front(), d->textEncoding);
- d->text = String(l.back(), d->textEncoding);
- }
-}
-
-ByteVector CommentsFrame::renderFields() const
-{
- ByteVector v;
-
- String::Type encoding = d->textEncoding;
-
- encoding = checkEncoding(d->description, encoding);
- encoding = checkEncoding(d->text, encoding);
-
- v.append(char(encoding));
- v.append(d->language.size() == 3 ? d->language : "XXX");
- v.append(d->description.data(encoding));
- v.append(textDelimiter(encoding));
- v.append(d->text.data(encoding));
-
- return v;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-CommentsFrame::CommentsFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new CommentsFramePrivate();
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h
deleted file mode 100644
index 9123c739be..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_COMMENTSFRAME_H
-#define TAGLIB_COMMENTSFRAME_H
-
-#include <id3v2frame.h>
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An implementation of ID3v2 comments
-
- /*!
- * This implements the ID3v2 comment format. An ID3v2 comment concists of
- * a language encoding, a description and a single text field.
- */
-
- class TAGLIB_EXPORT CommentsFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Construct an empty comment frame that will use the text encoding
- * \a encoding.
- */
- explicit CommentsFrame(String::Type encoding = String::Latin1);
-
- /*!
- * Construct a comment based on the data in \a data.
- */
- explicit CommentsFrame(const ByteVector &data);
-
- /*!
- * Destroys this CommentFrame instance.
- */
- virtual ~CommentsFrame();
-
- /*!
- * Returns the text of this comment.
- *
- * \see text()
- */
- virtual String toString() const;
-
- /*!
- * Returns the language encoding as a 3 byte encoding as specified by
- * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setLanguage()
- */
- ByteVector language() const;
-
- /*!
- * Returns the description of this comment.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setDescription()
- */
- String description() const;
-
- /*!
- * Returns the text of this comment.
- *
- * \see setText()
- */
- String text() const;
-
- /*!
- * Set the language using the 3 byte language code from
- * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to
- * \a languageCode.
- *
- * \see language()
- */
- void setLanguage(const ByteVector &languageCode);
-
- /*!
- * Sets the description of the comment to \a s.
- *
- * \see decription()
- */
- void setDescription(const String &s);
-
- /*!
- * Sets the text portion of the comment to \a s.
- *
- * \see text()
- */
- virtual void setText(const String &s);
-
- /*!
- * Returns the text encoding that will be used in rendering this frame.
- * This defaults to the type that was either specified in the constructor
- * or read from the frame when parsed.
- *
- * \see setTextEncoding()
- * \see render()
- */
- String::Type textEncoding() const;
-
- /*!
- * Sets the text encoding to be used when rendering this frame to
- * \a encoding.
- *
- * \see textEncoding()
- * \see render()
- */
- void setTextEncoding(String::Type encoding);
-
- /*!
- * Comments each have a unique description. This searches for a comment
- * frame with the decription \a d and returns a pointer to it. If no
- * frame is found that matches the given description null is returned.
- *
- * \see description()
- */
- static CommentsFrame *findByDescription(const Tag *tag, const String &d);
-
- protected:
- // Reimplementations.
-
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- /*!
- * The constructor used by the FrameFactory.
- */
- CommentsFrame(const ByteVector &data, Header *h);
- CommentsFrame(const CommentsFrame &);
- CommentsFrame &operator=(const CommentsFrame &);
-
- class CommentsFramePrivate;
- CommentsFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp
deleted file mode 100644
index 58b7b63f68..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Aaron VonderHaar
- email : avh4@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tdebug.h>
-
-#include "generalencapsulatedobjectframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFramePrivate
-{
-public:
- GeneralEncapsulatedObjectFramePrivate() : textEncoding(String::Latin1) {}
-
- String::Type textEncoding;
- String mimeType;
- String fileName;
- String description;
- ByteVector data;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame() : Frame("GEOB")
-{
- d = new GeneralEncapsulatedObjectFramePrivate;
-}
-
-GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame(const ByteVector &data) : Frame(data)
-{
- d = new GeneralEncapsulatedObjectFramePrivate;
- setData(data);
-}
-
-GeneralEncapsulatedObjectFrame::~GeneralEncapsulatedObjectFrame()
-{
- delete d;
-}
-
-String GeneralEncapsulatedObjectFrame::toString() const
-{
- String text = "[" + d->mimeType + "]";
-
- if(!d->fileName.isEmpty())
- text += " " + d->fileName;
-
- if(!d->description.isEmpty())
- text += " \"" + d->description + "\"";
-
- return text;
-}
-
-String::Type GeneralEncapsulatedObjectFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void GeneralEncapsulatedObjectFrame::setTextEncoding(String::Type encoding)
-{
- d->textEncoding = encoding;
-}
-
-String GeneralEncapsulatedObjectFrame::mimeType() const
-{
- return d->mimeType;
-}
-
-void GeneralEncapsulatedObjectFrame::setMimeType(const String &type)
-{
- d->mimeType = type;
-}
-
-String GeneralEncapsulatedObjectFrame::fileName() const
-{
- return d->fileName;
-}
-
-void GeneralEncapsulatedObjectFrame::setFileName(const String &name)
-{
- d->fileName = name;
-}
-
-String GeneralEncapsulatedObjectFrame::description() const
-{
- return d->description;
-}
-
-void GeneralEncapsulatedObjectFrame::setDescription(const String &desc)
-{
- d->description = desc;
-}
-
-ByteVector GeneralEncapsulatedObjectFrame::object() const
-{
- return d->data;
-}
-
-void GeneralEncapsulatedObjectFrame::setObject(const ByteVector &data)
-{
- d->data = data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void GeneralEncapsulatedObjectFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 4) {
- debug("An object frame must contain at least 4 bytes.");
- return;
- }
-
- d->textEncoding = String::Type(data[0]);
-
- int pos = 1;
-
- d->mimeType = readStringField(data, String::Latin1, &pos);
- d->fileName = readStringField(data, d->textEncoding, &pos);
- d->description = readStringField(data, d->textEncoding, &pos);
-
- d->data = data.mid(pos);
-}
-
-ByteVector GeneralEncapsulatedObjectFrame::renderFields() const
-{
- ByteVector data;
-
- data.append(char(d->textEncoding));
- data.append(d->mimeType.data(String::Latin1));
- data.append(textDelimiter(String::Latin1));
- data.append(d->fileName.data(d->textEncoding));
- data.append(textDelimiter(d->textEncoding));
- data.append(d->description.data(d->textEncoding));
- data.append(textDelimiter(d->textEncoding));
- data.append(d->data);
-
- return data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new GeneralEncapsulatedObjectFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h
deleted file mode 100644
index 9b4edf5456..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Aaron VonderHaar
- email : avh4@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_GENERALENCAPSULATEDOBJECT_H
-#define TAGLIB_GENERALENCAPSULATEDOBJECT_H
-
-#include <id3v2frame.h>
-#include <id3v2header.h>
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An ID3v2 general encapsulated object frame implementation
-
- /*!
- * This is an implementation of ID3v2 general encapsulated objects.
- * Arbitrary binary data may be included in tags, stored in GEOB frames.
- * There may be multiple GEOB frames in a single tag. Each GEOB it
- * labelled with a content description (which may be blank), a required
- * mime-type, and a file name (may be blank). The content description
- * uniquely identifies the GEOB frame in the tag.
- */
-
- class TAGLIB_EXPORT GeneralEncapsulatedObjectFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
-
- /*!
- * Constructs an empty object frame. The description, file name and text
- * encoding should be set manually.
- */
- GeneralEncapsulatedObjectFrame();
-
- /*!
- * Constructs a GeneralEncapsulatedObjectFrame frame based on \a data.
- */
- explicit GeneralEncapsulatedObjectFrame(const ByteVector &data);
-
- /*!
- * Destroys the GeneralEncapsulatedObjectFrame instance.
- */
- virtual ~GeneralEncapsulatedObjectFrame();
-
- /*!
- * Returns a string containing the description, file name and mime-type
- */
- virtual String toString() const;
-
- /*!
- * Returns the text encoding used for the description and file name.
- *
- * \see setTextEncoding()
- * \see description()
- * \see fileName()
- */
- String::Type textEncoding() const;
-
- /*!
- * Set the text encoding used for the description and file name.
- *
- * \see description()
- * \see fileName()
- */
- void setTextEncoding(String::Type encoding);
-
- /*!
- * Returns the mime type of the object.
- */
- String mimeType() const;
-
- /*!
- * Sets the mime type of the object.
- */
- void setMimeType(const String &type);
-
- /*!
- * Returns the file name of the object.
- *
- * \see setFileName()
- */
- String fileName() const;
-
- /*!
- * Sets the file name for the object.
- *
- * \see fileName()
- */
- void setFileName(const String &name);
-
- /*!
- * Returns the content description of the object.
- *
- * \see setDescription()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- String description() const;
-
- /*!
- * Sets the content description of the object to \a desc.
- *
- * \see description()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- void setDescription(const String &desc);
-
- /*!
- * Returns the object data as a ByteVector.
- *
- * \note ByteVector has a data() method that returns a const char * which
- * should make it easy to export this data to external programs.
- *
- * \see setObject()
- * \see mimeType()
- */
- ByteVector object() const;
-
- /*!
- * Sets the object data to \a data. \a data should be of the type specified in
- * this frame's mime-type specification.
- *
- * \see object()
- * \see mimeType()
- * \see setMimeType()
- */
- void setObject(const ByteVector &object);
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h);
- GeneralEncapsulatedObjectFrame(const GeneralEncapsulatedObjectFrame &);
- GeneralEncapsulatedObjectFrame &operator=(const GeneralEncapsulatedObjectFrame &);
-
- class GeneralEncapsulatedObjectFramePrivate;
- GeneralEncapsulatedObjectFramePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp
deleted file mode 100644
index 8495197a60..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tdebug.h>
-#include <tmap.h>
-
-#include "relativevolumeframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-static inline int bitsToBytes(int i)
-{
- return i % 8 == 0 ? i / 8 : (i - i % 8) / 8 + 1;
-}
-
-struct ChannelData
-{
- ChannelData() : channelType(RelativeVolumeFrame::Other), volumeAdjustment(0) {}
-
- RelativeVolumeFrame::ChannelType channelType;
- short volumeAdjustment;
- RelativeVolumeFrame::PeakVolume peakVolume;
-};
-
-class RelativeVolumeFrame::RelativeVolumeFramePrivate
-{
-public:
- String identification;
- Map<ChannelType, ChannelData> channels;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-RelativeVolumeFrame::RelativeVolumeFrame() : Frame("RVA2")
-{
- d = new RelativeVolumeFramePrivate;
-}
-
-RelativeVolumeFrame::RelativeVolumeFrame(const ByteVector &data) : Frame(data)
-{
- d = new RelativeVolumeFramePrivate;
- setData(data);
-}
-
-RelativeVolumeFrame::~RelativeVolumeFrame()
-{
- delete d;
-}
-
-String RelativeVolumeFrame::toString() const
-{
- return d->identification;
-}
-
-List<RelativeVolumeFrame::ChannelType> RelativeVolumeFrame::channels() const
-{
- List<ChannelType> l;
-
- Map<ChannelType, ChannelData>::ConstIterator it = d->channels.begin();
- for(; it != d->channels.end(); ++it)
- l.append((*it).first);
-
- return l;
-}
-
-// deprecated
-
-RelativeVolumeFrame::ChannelType RelativeVolumeFrame::channelType() const
-{
- return MasterVolume;
-}
-
-// deprecated
-
-void RelativeVolumeFrame::setChannelType(ChannelType)
-{
-
-}
-
-short RelativeVolumeFrame::volumeAdjustmentIndex(ChannelType type) const
-{
- return d->channels.contains(type) ? d->channels[type].volumeAdjustment : 0;
-}
-
-short RelativeVolumeFrame::volumeAdjustmentIndex() const
-{
- return volumeAdjustmentIndex(MasterVolume);
-}
-
-void RelativeVolumeFrame::setVolumeAdjustmentIndex(short index, ChannelType type)
-{
- d->channels[type].volumeAdjustment = index;
-}
-
-void RelativeVolumeFrame::setVolumeAdjustmentIndex(short index)
-{
- setVolumeAdjustmentIndex(index, MasterVolume);
-}
-
-float RelativeVolumeFrame::volumeAdjustment(ChannelType type) const
-{
- return d->channels.contains(type) ? float(d->channels[type].volumeAdjustment) / float(512) : 0;
-}
-
-float RelativeVolumeFrame::volumeAdjustment() const
-{
- return volumeAdjustment(MasterVolume);
-}
-
-void RelativeVolumeFrame::setVolumeAdjustment(float adjustment, ChannelType type)
-{
- d->channels[type].volumeAdjustment = short(adjustment * float(512));
-}
-
-void RelativeVolumeFrame::setVolumeAdjustment(float adjustment)
-{
- setVolumeAdjustment(adjustment, MasterVolume);
-}
-
-RelativeVolumeFrame::PeakVolume RelativeVolumeFrame::peakVolume(ChannelType type) const
-{
- return d->channels.contains(type) ? d->channels[type].peakVolume : PeakVolume();
-}
-
-RelativeVolumeFrame::PeakVolume RelativeVolumeFrame::peakVolume() const
-{
- return peakVolume(MasterVolume);
-}
-
-void RelativeVolumeFrame::setPeakVolume(const PeakVolume &peak, ChannelType type)
-{
- d->channels[type].peakVolume = peak;
-}
-
-void RelativeVolumeFrame::setPeakVolume(const PeakVolume &peak)
-{
- setPeakVolume(peak, MasterVolume);
-}
-
-String RelativeVolumeFrame::identification() const
-{
- return d->identification;
-}
-
-void RelativeVolumeFrame::setIdentification(const String &s)
-{
- d->identification = s;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void RelativeVolumeFrame::parseFields(const ByteVector &data)
-{
- int pos = 0;
- d->identification = readStringField(data, String::Latin1, &pos);
-
- // Each channel is at least 4 bytes.
-
- while(pos <= (int)data.size() - 4) {
-
-
- ChannelType type = ChannelType(data[pos]);
- pos += 1;
-
- ChannelData &channel = d->channels[type];
-
- channel.volumeAdjustment = data.mid(pos, 2).toShort();
- pos += 2;
-
- channel.peakVolume.bitsRepresentingPeak = data[pos];
- pos += 1;
-
- int bytes = bitsToBytes(channel.peakVolume.bitsRepresentingPeak);
- channel.peakVolume.peakVolume = data.mid(pos, bytes);
- pos += bytes;
- }
-}
-
-ByteVector RelativeVolumeFrame::renderFields() const
-{
- ByteVector data;
-
- data.append(d->identification.data(String::Latin1));
- data.append(textDelimiter(String::Latin1));
-
- Map<ChannelType, ChannelData>::ConstIterator it = d->channels.begin();
-
- for(; it != d->channels.end(); ++it) {
- ChannelType type = (*it).first;
- const ChannelData &channel = (*it).second;
-
- data.append(char(type));
- data.append(ByteVector::fromShort(channel.volumeAdjustment));
- data.append(char(channel.peakVolume.bitsRepresentingPeak));
- data.append(channel.peakVolume.peakVolume);
- }
-
- return data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-RelativeVolumeFrame::RelativeVolumeFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new RelativeVolumeFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h
deleted file mode 100644
index f8521986bf..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_RELATIVEVOLUMEFRAME_H
-#define TAGLIB_RELATIVEVOLUMEFRAME_H
-
-#include <tlist.h>
-#include <id3v2frame.h>
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An ID3v2 relative volume adjustment frame implementation
-
- /*!
- * This is an implementation of ID3v2 relative volume adjustment. The
- * presence of this frame makes it possible to specify an increase in volume
- * for an audio file or specific audio tracks in that file.
- *
- * Multiple relative volume adjustment frames may be present in the tag
- * each with a unique identification and describing volume adjustment for
- * different channel types.
- */
-
- class TAGLIB_EXPORT RelativeVolumeFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
-
- /*!
- * This indicates the type of volume adjustment that should be applied.
- */
- enum ChannelType {
- //! A type not enumerated below
- Other = 0x00,
- //! The master volume for the track
- MasterVolume = 0x01,
- //! The front right audio channel
- FrontRight = 0x02,
- //! The front left audio channel
- FrontLeft = 0x03,
- //! The back right audio channel
- BackRight = 0x04,
- //! The back left audio channel
- BackLeft = 0x05,
- //! The front center audio channel
- FrontCentre = 0x06,
- //! The back center audio channel
- BackCentre = 0x07,
- //! The subwoofer audio channel
- Subwoofer = 0x08
- };
-
- //! Struct that stores the relevant values for ID3v2 peak volume
-
- /*!
- * The peak volume is described as a series of bits that is padded to fill
- * a block of bytes. These two values should always be updated in tandem.
- */
- struct PeakVolume
- {
- /*!
- * Constructs an empty peak volume description.
- */
- PeakVolume() : bitsRepresentingPeak(0) {}
- /*!
- * The number of bits (in the range of 0 to 255) used to describe the
- * peak volume.
- */
- unsigned char bitsRepresentingPeak;
- /*!
- * The array of bits (represented as a series of bytes) used to describe
- * the peak volume.
- */
- ByteVector peakVolume;
- };
-
- /*!
- * Constructs a RelativeVolumeFrame. The relevant data should be set
- * manually.
- */
- RelativeVolumeFrame();
-
- /*!
- * Constructs a RelativeVolumeFrame based on the contents of \a data.
- */
- RelativeVolumeFrame(const ByteVector &data);
-
- /*!
- * Destroys the RelativeVolumeFrame instance.
- */
- virtual ~RelativeVolumeFrame();
-
- /*!
- * Returns the frame's identification.
- *
- * \see identification()
- */
- virtual String toString() const;
-
- /*!
- * Returns a list of channels with information currently in the frame.
- */
- List<ChannelType> channels() const;
-
- /*!
- * \deprecated Always returns master volume.
- */
- ChannelType channelType() const;
-
- /*!
- * \deprecated This method no longer has any effect.
- */
- void setChannelType(ChannelType t);
-
- /*
- * There was a terrible API goof here, and while this can't be changed to
- * the way it appears below for binary compaibility reasons, let's at
- * least pretend that it looks clean.
- */
-
-#ifdef DOXYGEN
-
- /*!
- * Returns the relative volume adjustment "index". As indicated by the
- * ID3v2 standard this is a 16-bit signed integer that reflects the
- * decibils of adjustment when divided by 512.
- *
- * This defaults to returning the value for the master volume channel if
- * available and returns 0 if the specified channel does not exist.
- *
- * \see setVolumeAdjustmentIndex()
- * \see volumeAjustment()
- */
- short volumeAdjustmentIndex(ChannelType type = MasterVolume) const;
-
- /*!
- * Set the volume adjustment to \a index. As indicated by the ID3v2
- * standard this is a 16-bit signed integer that reflects the decibils of
- * adjustment when divided by 512.
- *
- * By default this sets the value for the master volume.
- *
- * \see volumeAdjustmentIndex()
- * \see setVolumeAjustment()
- */
- void setVolumeAdjustmentIndex(short index, ChannelType type = MasterVolume);
-
- /*!
- * Returns the relative volume adjustment in decibels.
- *
- * \note Because this is actually stored internally as an "index" to this
- * value the value returned by this method may not be identical to the
- * value set using setVolumeAdjustment().
- *
- * This defaults to returning the value for the master volume channel if
- * available and returns 0 if the specified channel does not exist.
- *
- * \see setVolumeAdjustment()
- * \see volumeAdjustmentIndex()
- */
- float volumeAdjustment(ChannelType type = MasterVolume) const;
-
- /*!
- * Set the relative volume adjustment in decibels to \a adjustment.
- *
- * By default this sets the value for the master volume.
- *
- * \note Because this is actually stored internally as an "index" to this
- * value the value set by this method may not be identical to the one
- * returned by volumeAdjustment().
- *
- * \see setVolumeAdjustment()
- * \see volumeAdjustmentIndex()
- */
- void setVolumeAdjustment(float adjustment, ChannelType type = MasterVolume);
-
- /*!
- * Returns the peak volume (represented as a length and a string of bits).
- *
- * This defaults to returning the value for the master volume channel if
- * available and returns 0 if the specified channel does not exist.
- *
- * \see setPeakVolume()
- */
- PeakVolume peakVolume(ChannelType type = MasterVolume) const;
-
- /*!
- * Sets the peak volume to \a peak.
- *
- * By default this sets the value for the master volume.
- *
- * \see peakVolume()
- */
- void setPeakVolume(const PeakVolume &peak, ChannelType type = MasterVolume);
-
-#else
-
- // BIC: Combine each of the following pairs of functions (or maybe just
- // rework this junk altogether).
-
- short volumeAdjustmentIndex(ChannelType type) const;
- short volumeAdjustmentIndex() const;
-
- void setVolumeAdjustmentIndex(short index, ChannelType type);
- void setVolumeAdjustmentIndex(short index);
-
- float volumeAdjustment(ChannelType type) const;
- float volumeAdjustment() const;
-
- void setVolumeAdjustment(float adjustment, ChannelType type);
- void setVolumeAdjustment(float adjustment);
-
- PeakVolume peakVolume(ChannelType type) const;
- PeakVolume peakVolume() const;
-
- void setPeakVolume(const PeakVolume &peak, ChannelType type);
- void setPeakVolume(const PeakVolume &peak);
-
-#endif
-
- /*!
- * Returns the identification for this frame.
- */
- String identification() const;
-
- /*!
- * Sets the identification of the frame to \a s. The string
- * is used to identify the situation and/or device where this
- * adjustment should apply.
- */
- void setIdentification(const String &s);
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- RelativeVolumeFrame(const ByteVector &data, Header *h);
- RelativeVolumeFrame(const RelativeVolumeFrame &);
- RelativeVolumeFrame &operator=(const RelativeVolumeFrame &);
-
- class RelativeVolumeFramePrivate;
- RelativeVolumeFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
deleted file mode 100644
index 7d3b4ff291..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
+++ /dev/null
@@ -1,271 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevectorlist.h>
-#include <id3v2tag.h>
-
-#include "textidentificationframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class TextIdentificationFrame::TextIdentificationFramePrivate
-{
-public:
- TextIdentificationFramePrivate() : textEncoding(String::Latin1) {}
- String::Type textEncoding;
- StringList fieldList;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// TextIdentificationFrame public members
-////////////////////////////////////////////////////////////////////////////////
-
-TextIdentificationFrame::TextIdentificationFrame(const ByteVector &type, String::Type encoding) :
- Frame(type)
-{
- d = new TextIdentificationFramePrivate;
- d->textEncoding = encoding;
-}
-
-TextIdentificationFrame::TextIdentificationFrame(const ByteVector &data) :
- Frame(data)
-{
- d = new TextIdentificationFramePrivate;
- setData(data);
-}
-
-TextIdentificationFrame::~TextIdentificationFrame()
-{
- delete d;
-}
-
-void TextIdentificationFrame::setText(const StringList &l)
-{
- d->fieldList = l;
-}
-
-void TextIdentificationFrame::setText(const String &s)
-{
- d->fieldList = s;
-}
-
-String TextIdentificationFrame::toString() const
-{
- return d->fieldList.toString();
-}
-
-StringList TextIdentificationFrame::fieldList() const
-{
- return d->fieldList;
-}
-
-String::Type TextIdentificationFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void TextIdentificationFrame::setTextEncoding(String::Type encoding)
-{
- d->textEncoding = encoding;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// TextIdentificationFrame protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void TextIdentificationFrame::parseFields(const ByteVector &data)
-{
- // Don't try to parse invalid frames
-
- if(data.size() < 2)
- return;
-
- // read the string data type (the first byte of the field data)
-
- d->textEncoding = String::Type(data[0]);
-
- // split the byte array into chunks based on the string type (two byte delimiter
- // for unicode encodings)
-
- int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2;
-
- // build a small counter to strip nulls off the end of the field
-
- int dataLength = data.size() - 1;
-
- while(dataLength > 0 && data[dataLength] == 0)
- dataLength--;
-
- while(dataLength % byteAlign != 0)
- dataLength++;
-
- ByteVectorList l = ByteVectorList::split(data.mid(1, dataLength), textDelimiter(d->textEncoding), byteAlign);
-
- d->fieldList.clear();
-
- // append those split values to the list and make sure that the new string's
- // type is the same specified for this frame
-
- for(ByteVectorList::Iterator it = l.begin(); it != l.end(); it++) {
- if(!(*it).isEmpty()) {
- String s(*it, d->textEncoding);
- d->fieldList.append(s);
- }
- }
-}
-
-ByteVector TextIdentificationFrame::renderFields() const
-{
- String::Type encoding = checkEncoding(d->fieldList, d->textEncoding);
-
- ByteVector v;
-
- v.append(char(encoding));
-
- for(StringList::ConstIterator it = d->fieldList.begin(); it != d->fieldList.end(); it++) {
-
- // Since the field list is null delimited, if this is not the first
- // element in the list, append the appropriate delimiter for this
- // encoding.
-
- if(it != d->fieldList.begin())
- v.append(textDelimiter(encoding));
-
- v.append((*it).data(encoding));
- }
-
- return v;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// TextIdentificationFrame private members
-////////////////////////////////////////////////////////////////////////////////
-
-TextIdentificationFrame::TextIdentificationFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new TextIdentificationFramePrivate;
- parseFields(fieldData(data));
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// UserTextIdentificationFrame public members
-////////////////////////////////////////////////////////////////////////////////
-
-UserTextIdentificationFrame::UserTextIdentificationFrame(String::Type encoding) :
- TextIdentificationFrame("TXXX", encoding),
- d(0)
-{
- StringList l;
- l.append(String::null);
- l.append(String::null);
- setText(l);
-}
-
-
-UserTextIdentificationFrame::UserTextIdentificationFrame(const ByteVector &data) :
- TextIdentificationFrame(data)
-{
- checkFields();
-}
-
-String UserTextIdentificationFrame::toString() const
-{
- return "[" + description() + "] " + fieldList().toString();
-}
-
-String UserTextIdentificationFrame::description() const
-{
- return !TextIdentificationFrame::fieldList().isEmpty()
- ? TextIdentificationFrame::fieldList().front()
- : String::null;
-}
-
-StringList UserTextIdentificationFrame::fieldList() const
-{
- // TODO: remove this function
-
- return TextIdentificationFrame::fieldList();
-}
-
-void UserTextIdentificationFrame::setText(const String &text)
-{
- if(description().isEmpty())
- setDescription(String::null);
-
- TextIdentificationFrame::setText(StringList(description()).append(text));
-}
-
-void UserTextIdentificationFrame::setText(const StringList &fields)
-{
- if(description().isEmpty())
- setDescription(String::null);
-
- TextIdentificationFrame::setText(StringList(description()).append(fields));
-}
-
-void UserTextIdentificationFrame::setDescription(const String &s)
-{
- StringList l = fieldList();
-
- if(l.isEmpty())
- l.append(s);
- else
- l[0] = s;
-
- TextIdentificationFrame::setText(l);
-}
-
-UserTextIdentificationFrame *UserTextIdentificationFrame::find(
- ID3v2::Tag *tag, const String &description) // static
-{
- FrameList l = tag->frameList("TXXX");
- for(FrameList::Iterator it = l.begin(); it != l.end(); ++it) {
- UserTextIdentificationFrame *f = dynamic_cast<UserTextIdentificationFrame *>(*it);
- if(f && f->description() == description)
- return f;
- }
- return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// UserTextIdentificationFrame private members
-////////////////////////////////////////////////////////////////////////////////
-
-UserTextIdentificationFrame::UserTextIdentificationFrame(const ByteVector &data, Header *h) :
- TextIdentificationFrame(data, h)
-{
- checkFields();
-}
-
-void UserTextIdentificationFrame::checkFields()
-{
- int fields = fieldList().size();
-
- if(fields == 0)
- setDescription(String::null);
- if(fields <= 1)
- setText(String::null);
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h
deleted file mode 100644
index 291cba5b8f..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_TEXTIDENTIFICATIONFRAME_H
-#define TAGLIB_TEXTIDENTIFICATIONFRAME_H
-
-#include <tstringlist.h>
-#include "taglib_export.h"
-
-#include <id3v2frame.h>
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- class Tag;
-
- //! An ID3v2 text identification frame implementation
-
- /*!
- * This is an implementation of the most common type of ID3v2 frame -- text
- * identification frames. There are a number of variations on this. Those
- * enumerated in the ID3v2.4 standard are:
- *
- * <ul>
- * <li><b>TALB</b> Album/Movie/Show title</li>
- * <li><b>TBPM</b> BPM (beats per minute)</li>
- * <li><b>TCOM</b> Composer</li>
- * <li><b>TCON</b> Content type</li>
- * <li><b>TCOP</b> Copyright message</li>
- * <li><b>TDEN</b> Encoding time</li>
- * <li><b>TDLY</b> Playlist delay</li>
- * <li><b>TDOR</b> Original release time</li>
- * <li><b>TDRC</b> Recording time</li>
- * <li><b>TDRL</b> Release time</li>
- * <li><b>TDTG</b> Tagging time</li>
- * <li><b>TENC</b> Encoded by</li>
- * <li><b>TEXT</b> Lyricist/Text writer</li>
- * <li><b>TFLT</b> File type</li>
- * <li><b>TIPL</b> Involved people list</li>
- * <li><b>TIT1</b> Content group description</li>
- * <li><b>TIT2</b> Title/songname/content description</li>
- * <li><b>TIT3</b> Subtitle/Description refinement</li>
- * <li><b>TKEY</b> Initial key</li>
- * <li><b>TLAN</b> Language(s)</li>
- * <li><b>TLEN</b> Length</li>
- * <li><b>TMCL</b> Musician credits list</li>
- * <li><b>TMED</b> Media type</li>
- * <li><b>TMOO</b> Mood</li>
- * <li><b>TOAL</b> Original album/movie/show title</li>
- * <li><b>TOFN</b> Original filename</li>
- * <li><b>TOLY</b> Original lyricist(s)/text writer(s)</li>
- * <li><b>TOPE</b> Original artist(s)/performer(s)</li>
- * <li><b>TOWN</b> File owner/licensee</li>
- * <li><b>TPE1</b> Lead performer(s)/Soloist(s)</li>
- * <li><b>TPE2</b> Band/orchestra/accompaniment</li>
- * <li><b>TPE3</b> Conductor/performer refinement</li>
- * <li><b>TPE4</b> Interpreted, remixed, or otherwise modified by</li>
- * <li><b>TPOS</b> Part of a set</li>
- * <li><b>TPRO</b> Produced notice</li>
- * <li><b>TPUB</b> Publisher</li>
- * <li><b>TRCK</b> Track number/Position in set</li>
- * <li><b>TRSN</b> Internet radio station name</li>
- * <li><b>TRSO</b> Internet radio station owner</li>
- * <li><b>TSOA</b> Album sort order</li>
- * <li><b>TSOP</b> Performer sort order</li>
- * <li><b>TSOT</b> Title sort order</li>
- * <li><b>TSRC</b> ISRC (international standard recording code)</li>
- * <li><b>TSSE</b> Software/Hardware and settings used for encoding</li>
- * <li><b>TSST</b> Set subtitle</li>
- * </ul>
- *
- * The ID3v2 Frames document gives a description of each of these formats
- * and the expected order of strings in each. ID3v2::Header::frameID() can
- * be used to determine the frame type.
- *
- * \note If non-Latin1 compatible strings are used with this class, even if
- * the text encoding is set to Latin1, the frame will be written using UTF8
- * (with the encoding flag appropriately set in the output).
- */
-
- class TAGLIB_EXPORT TextIdentificationFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Construct an empty frame of type \a type. Uses \a encoding as the
- * default text encoding.
- *
- * \note In this case you must specify the text encoding as it
- * resolves the ambiguity between constructors.
- *
- * \note Please see the note in the class description regarding Latin1.
- */
- TextIdentificationFrame(const ByteVector &type, String::Type encoding);
-
- /*!
- * This is a dual purpose constructor. \a data can either be binary data
- * that should be parsed or (at a minimum) the frame ID.
- */
- explicit TextIdentificationFrame(const ByteVector &data);
-
- /*!
- * Destroys this TextIdentificationFrame instance.
- */
- virtual ~TextIdentificationFrame();
-
- /*!
- * Text identification frames are a list of string fields.
- *
- * This function will accept either a StringList or a String (using the
- * StringList constructor that accepts a single String).
- *
- * \note This will not change the text encoding of the frame even if the
- * strings passed in are not of the same encoding. Please use
- * setEncoding(s.type()) if you wish to change the encoding of the frame.
- */
- void setText(const StringList &l);
-
- // Reimplementations.
-
- virtual void setText(const String &s);
- virtual String toString() const;
-
- /*!
- * Returns the text encoding that will be used in rendering this frame.
- * This defaults to the type that was either specified in the constructor
- * or read from the frame when parsed.
- *
- * \note Please see the note in the class description regarding Latin1.
- *
- * \see setTextEncoding()
- * \see render()
- */
- String::Type textEncoding() const;
-
- /*!
- * Sets the text encoding to be used when rendering this frame to
- * \a encoding.
- *
- * \note Please see the note in the class description regarding Latin1.
- *
- * \see textEncoding()
- * \see render()
- */
- void setTextEncoding(String::Type encoding);
-
- /*!
- * Returns a list of the strings in this frame.
- */
- StringList fieldList() const;
-
- protected:
- // Reimplementations.
-
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- /*!
- * The constructor used by the FrameFactory.
- */
- TextIdentificationFrame(const ByteVector &data, Header *h);
-
- private:
- TextIdentificationFrame(const TextIdentificationFrame &);
- TextIdentificationFrame &operator=(const TextIdentificationFrame &);
-
- class TextIdentificationFramePrivate;
- TextIdentificationFramePrivate *d;
- };
-
- /*!
- * This is a specialization of text identification frames that allows for
- * user defined entries. Each entry has a description in addition to the
- * normal list of fields that a text identification frame has.
- *
- * This description identifies the frame and must be unique.
- */
-
- //! An ID3v2 custom text identification frame implementationx
-
- class TAGLIB_EXPORT UserTextIdentificationFrame : public TextIdentificationFrame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Constructs an empty user defined text identification frame. For this to be
- * a useful frame both a description and text must be set.
- */
- explicit UserTextIdentificationFrame(String::Type encoding = String::Latin1);
-
- /*!
- * Creates a frame based on \a data.
- */
- explicit UserTextIdentificationFrame(const ByteVector &data);
-
- virtual String toString() const;
-
- /*!
- * Returns the description for this frame.
- */
- String description() const;
-
- /*!
- * Sets the description of the frame to \a s. \a s must be unique. You can
- * check for the presence of another user defined text frame of the same type
- * using find() and testing for null.
- */
- void setDescription(const String &s);
-
- StringList fieldList() const;
- void setText(const String &text);
- void setText(const StringList &fields);
-
- /*!
- * Searches for the user defined text frame with the description \a description
- * in \a tag. This returns null if no matching frames were found.
- */
- static UserTextIdentificationFrame *find(Tag *tag, const String &description);
-
- private:
- UserTextIdentificationFrame(const ByteVector &data, Header *h);
- UserTextIdentificationFrame(const TextIdentificationFrame &);
- UserTextIdentificationFrame &operator=(const UserTextIdentificationFrame &);
-
- void checkFields();
-
- class UserTextIdentificationFramePrivate;
- UserTextIdentificationFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp
deleted file mode 100644
index 836982bdf1..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevectorlist.h>
-#include <tdebug.h>
-
-#include "uniquefileidentifierframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class UniqueFileIdentifierFrame::UniqueFileIdentifierFramePrivate
-{
-public:
- String owner;
- ByteVector identifier;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public methods
-////////////////////////////////////////////////////////////////////////////////
-
-UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const ByteVector &data) :
- ID3v2::Frame(data)
-{
- d = new UniqueFileIdentifierFramePrivate;
- setData(data);
-}
-
-UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const String &owner, const ByteVector &id) :
- ID3v2::Frame("UFID")
-{
- d = new UniqueFileIdentifierFramePrivate;
- d->owner = owner;
- d->identifier = id;
-}
-
-UniqueFileIdentifierFrame::~UniqueFileIdentifierFrame()
-{
- delete d;
-}
-
-String UniqueFileIdentifierFrame::owner() const
-{
- return d->owner;
-}
-
-ByteVector UniqueFileIdentifierFrame::identifier() const
-{
- return d->identifier;
-}
-
-void UniqueFileIdentifierFrame::setOwner(const String &s)
-{
- d->owner = s;
-}
-
-void UniqueFileIdentifierFrame::setIdentifier(const ByteVector &v)
-{
- d->identifier = v;
-}
-
-String UniqueFileIdentifierFrame::toString() const
-{
- return String::null;
-}
-
-void UniqueFileIdentifierFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 1) {
- debug("An UFID frame must contain at least 1 byte.");
- return;
- }
-
- int pos = 0;
- d->owner = readStringField(data, String::Latin1, &pos);
- d->identifier = data.mid(pos);
-}
-
-ByteVector UniqueFileIdentifierFrame::renderFields() const
-{
- ByteVector data;
-
- data.append(d->owner.data(String::Latin1));
- data.append(char(0));
- data.append(d->identifier);
-
- return data;
-}
-
-UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const ByteVector &data, Header *h) :
- Frame(h)
-{
- d = new UniqueFileIdentifierFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h
deleted file mode 100644
index a0a66bb17d..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME
-#define TAGLIB_UNIQUEFILEIDENTIFIERFRAME
-
-#include <id3v2frame.h>
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- /*!
- * This is an implementation of ID3v2 unique file identifier frames. This
- * frame is used to identify the file in an arbitrary database identified
- * by the owner field.
- */
-
- //! An implementation of ID3v2 unique identifier frames
-
- class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Creates a uniqe file identifier frame based on \a data.
- */
- UniqueFileIdentifierFrame(const ByteVector &data);
-
- /*!
- * Creates a unique file identifier frame with the owner \a owner and
- * the identification \a id.
- */
- UniqueFileIdentifierFrame(const String &owner, const ByteVector &id);
-
- /*!
- * Destroys the frame.
- */
- ~UniqueFileIdentifierFrame();
-
- /*!
- * Returns the owner for the frame; essentially this is the key for
- * determining which identification scheme this key belongs to. This
- * will usually either be an email address or URL for the person or tool
- * used to create the unique identifier.
- *
- * \see setOwner()
- */
- String owner() const;
-
- /*!
- * Returns the unique identifier. Though sometimes this is a text string
- * it also may be binary data and as much should be assumed when handling
- * it.
- */
- ByteVector identifier() const;
-
- /*!
- * Sets the owner of the identification scheme to \a s.
- *
- * \see owner()
- */
- void setOwner(const String &s);
-
- /*!
- * Sets the unique file identifier to \a v.
- *
- * \see identifier()
- */
- void setIdentifier(const ByteVector &v);
-
- virtual String toString() const;
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &);
- UniqueFileIdentifierFrame &operator=(UniqueFileIdentifierFrame &);
-
- UniqueFileIdentifierFrame(const ByteVector &data, Header *h);
-
- class UniqueFileIdentifierFramePrivate;
- UniqueFileIdentifierFramePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp
deleted file mode 100644
index 42b87c6916..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "unknownframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class UnknownFrame::UnknownFramePrivate
-{
-public:
- ByteVector fieldData;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-UnknownFrame::UnknownFrame(const ByteVector &data) : Frame(data)
-{
- d = new UnknownFramePrivate;
- setData(data);
-}
-
-UnknownFrame::~UnknownFrame()
-{
- delete d;
-}
-
-String UnknownFrame::toString() const
-{
- return String::null;
-}
-
-ByteVector UnknownFrame::data() const
-{
- return d->fieldData;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void UnknownFrame::parseFields(const ByteVector &data)
-{
- d->fieldData = data;
-}
-
-ByteVector UnknownFrame::renderFields() const
-{
- return d->fieldData;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-UnknownFrame::UnknownFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new UnknownFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h
deleted file mode 100644
index 164a44a00c..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_UNKNOWNFRAME_H
-#define TAGLIB_UNKNOWNFRAME_H
-
-#include <id3v2frame.h>
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! A frame type \e unknown to TagLib.
-
- /*!
- * This class represents a frame type not known (or more often simply
- * unimplemented) in TagLib. This is here provide a basic API for
- * manipulating the binary data of unknown frames and to provide a means
- * of rendering such \e unknown frames.
- *
- * Please note that a cleaner way of handling frame types that TagLib
- * does not understand is to subclass ID3v2::Frame and ID3v2::FrameFactory
- * to have your frame type supported through the standard ID3v2 mechanism.
- */
-
- class TAGLIB_EXPORT UnknownFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- UnknownFrame(const ByteVector &data);
- virtual ~UnknownFrame();
-
- virtual String toString() const;
-
- /*!
- * Returns the field data (everything but the header) for this frame.
- */
- ByteVector data() const;
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- UnknownFrame(const ByteVector &data, Header *h);
- UnknownFrame(const UnknownFrame &);
- UnknownFrame &operator=(const UnknownFrame &);
-
- class UnknownFramePrivate;
- UnknownFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp
deleted file mode 100644
index 4c907dd6e9..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Urs Fleisch
- email : ufleisch@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "unsynchronizedlyricsframe.h"
-#include <tbytevectorlist.h>
-#include <tdebug.h>
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class UnsynchronizedLyricsFrame::UnsynchronizedLyricsFramePrivate
-{
-public:
- UnsynchronizedLyricsFramePrivate() : textEncoding(String::Latin1) {}
- String::Type textEncoding;
- ByteVector language;
- String description;
- String text;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(String::Type encoding) :
- Frame("USLT")
-{
- d = new UnsynchronizedLyricsFramePrivate;
- d->textEncoding = encoding;
-}
-
-UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(const ByteVector &data) :
- Frame(data)
-{
- d = new UnsynchronizedLyricsFramePrivate;
- setData(data);
-}
-
-UnsynchronizedLyricsFrame::~UnsynchronizedLyricsFrame()
-{
- delete d;
-}
-
-String UnsynchronizedLyricsFrame::toString() const
-{
- return d->text;
-}
-
-ByteVector UnsynchronizedLyricsFrame::language() const
-{
- return d->language;
-}
-
-String UnsynchronizedLyricsFrame::description() const
-{
- return d->description;
-}
-
-String UnsynchronizedLyricsFrame::text() const
-{
- return d->text;
-}
-
-void UnsynchronizedLyricsFrame::setLanguage(const ByteVector &languageEncoding)
-{
- d->language = languageEncoding.mid(0, 3);
-}
-
-void UnsynchronizedLyricsFrame::setDescription(const String &s)
-{
- d->description = s;
-}
-
-void UnsynchronizedLyricsFrame::setText(const String &s)
-{
- d->text = s;
-}
-
-
-String::Type UnsynchronizedLyricsFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void UnsynchronizedLyricsFrame::setTextEncoding(String::Type encoding)
-{
- d->textEncoding = encoding;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void UnsynchronizedLyricsFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 5) {
- debug("An unsynchronized lyrics frame must contain at least 5 bytes.");
- return;
- }
-
- d->textEncoding = String::Type(data[0]);
- d->language = data.mid(1, 3);
-
- int byteAlign
- = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2;
-
- ByteVectorList l =
- ByteVectorList::split(data.mid(4), textDelimiter(d->textEncoding), byteAlign, 2);
-
- if(l.size() == 2) {
- d->description = String(l.front(), d->textEncoding);
- d->text = String(l.back(), d->textEncoding);
- }
-}
-
-ByteVector UnsynchronizedLyricsFrame::renderFields() const
-{
- ByteVector v;
-
- v.append(char(d->textEncoding));
- v.append(d->language.size() == 3 ? d->language : "XXX");
- v.append(d->description.data(d->textEncoding));
- v.append(textDelimiter(d->textEncoding));
- v.append(d->text.data(d->textEncoding));
-
- return v;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(const ByteVector &data, Header *h)
- : Frame(h)
-{
- d = new UnsynchronizedLyricsFramePrivate();
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h
deleted file mode 100644
index 28cc1e8c55..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Urs Fleisch
- email : ufleisch@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H
-#define TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H
-
-#include <id3v2frame.h>
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! ID3v2 unsynchronized lyrics frame
- /*!
- * An implementation of ID3v2 unsynchronized lyrics.
- */
- class TAGLIB_EXPORT UnsynchronizedLyricsFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Construct an empty unsynchronized lyrics frame that will use the text encoding
- * \a encoding.
- */
- explicit UnsynchronizedLyricsFrame(String::Type encoding = String::Latin1);
-
- /*!
- * Construct a unsynchronized lyrics frame based on the data in \a data.
- */
- explicit UnsynchronizedLyricsFrame(const ByteVector &data);
-
- /*!
- * Destroys this UnsynchronizedLyricsFrame instance.
- */
- virtual ~UnsynchronizedLyricsFrame();
-
- /*!
- * Returns the text of this unsynchronized lyrics frame.
- *
- * \see text()
- */
- virtual String toString() const;
-
- /*!
- * Returns the language encoding as a 3 byte encoding as specified by
- * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setLanguage()
- */
- ByteVector language() const;
-
- /*!
- * Returns the description of this unsynchronized lyrics frame.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setDescription()
- */
- String description() const;
-
- /*!
- * Returns the text of this unsynchronized lyrics frame.
- *
- * \see setText()
- */
- String text() const;
-
- /*!
- * Set the language using the 3 byte language code from
- * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to
- * \a languageCode.
- *
- * \see language()
- */
- void setLanguage(const ByteVector &languageCode);
-
- /*!
- * Sets the description of the unsynchronized lyrics frame to \a s.
- *
- * \see decription()
- */
- void setDescription(const String &s);
-
- /*!
- * Sets the text portion of the unsynchronized lyrics frame to \a s.
- *
- * \see text()
- */
- virtual void setText(const String &s);
-
- /*!
- * Returns the text encoding that will be used in rendering this frame.
- * This defaults to the type that was either specified in the constructor
- * or read from the frame when parsed.
- *
- * \see setTextEncoding()
- * \see render()
- */
- String::Type textEncoding() const;
-
- /*!
- * Sets the text encoding to be used when rendering this frame to
- * \a encoding.
- *
- * \see textEncoding()
- * \see render()
- */
- void setTextEncoding(String::Type encoding);
-
- protected:
- // Reimplementations.
-
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- /*!
- * The constructor used by the FrameFactory.
- */
- UnsynchronizedLyricsFrame(const ByteVector &data, Header *h);
- UnsynchronizedLyricsFrame(const UnsynchronizedLyricsFrame &);
- UnsynchronizedLyricsFrame &operator=(const UnsynchronizedLyricsFrame &);
-
- class UnsynchronizedLyricsFramePrivate;
- UnsynchronizedLyricsFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp
deleted file mode 100644
index 25bdd187aa..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Urs Fleisch
- email : ufleisch@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "urllinkframe.h"
-#include <tdebug.h>
-#include <tstringlist.h>
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class UrlLinkFrame::UrlLinkFramePrivate
-{
-public:
- String url;
-};
-
-class UserUrlLinkFrame::UserUrlLinkFramePrivate
-{
-public:
- UserUrlLinkFramePrivate() : textEncoding(String::Latin1) {}
- String::Type textEncoding;
- String description;
-};
-
-UrlLinkFrame::UrlLinkFrame(const ByteVector &data) :
- Frame(data)
-{
- d = new UrlLinkFramePrivate;
- setData(data);
-}
-
-UrlLinkFrame::~UrlLinkFrame()
-{
- delete d;
-}
-
-void UrlLinkFrame::setUrl(const String &s)
-{
- d->url = s;
-}
-
-String UrlLinkFrame::url() const
-{
- return d->url;
-}
-
-void UrlLinkFrame::setText(const String &s)
-{
- setUrl(s);
-}
-
-String UrlLinkFrame::toString() const
-{
- return url();
-}
-
-void UrlLinkFrame::parseFields(const ByteVector &data)
-{
- d->url = String(data);
-}
-
-ByteVector UrlLinkFrame::renderFields() const
-{
- return d->url.data(String::Latin1);
-}
-
-UrlLinkFrame::UrlLinkFrame(const ByteVector &data, Header *h) : Frame(h)
-{
- d = new UrlLinkFramePrivate;
- parseFields(fieldData(data));
-}
-
-
-UserUrlLinkFrame::UserUrlLinkFrame(String::Type encoding) :
- UrlLinkFrame("WXXX")
-{
- d = new UserUrlLinkFramePrivate;
- d->textEncoding = encoding;
-}
-
-UserUrlLinkFrame::UserUrlLinkFrame(const ByteVector &data) :
- UrlLinkFrame(data)
-{
- d = new UserUrlLinkFramePrivate;
- setData(data);
-}
-
-UserUrlLinkFrame::~UserUrlLinkFrame()
-{
- delete d;
-}
-
-String UserUrlLinkFrame::toString() const
-{
- return "[" + description() + "] " + url();
-}
-
-String::Type UserUrlLinkFrame::textEncoding() const
-{
- return d->textEncoding;
-}
-
-void UserUrlLinkFrame::setTextEncoding(String::Type encoding)
-{
- d->textEncoding = encoding;
-}
-
-String UserUrlLinkFrame::description() const
-{
- return d->description;
-}
-
-void UserUrlLinkFrame::setDescription(const String &s)
-{
- d->description = s;
-}
-
-void UserUrlLinkFrame::parseFields(const ByteVector &data)
-{
- if(data.size() < 2) {
- debug("A user URL link frame must contain at least 2 bytes.");
- return;
- }
-
- int pos = 0;
-
- d->textEncoding = String::Type(data[0]);
- pos += 1;
-
- if(d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8) {
- int offset = data.find(textDelimiter(d->textEncoding), pos);
- if(offset < pos)
- return;
-
- d->description = String(data.mid(pos, offset - pos), d->textEncoding);
- pos = offset + 1;
- }
- else {
- int len = data.mid(pos).find(textDelimiter(d->textEncoding), 0, 2);
- if(len < 0)
- return;
-
- d->description = String(data.mid(pos, len), d->textEncoding);
- pos += len + 2;
- }
-
- setUrl(String(data.mid(pos)));
-}
-
-ByteVector UserUrlLinkFrame::renderFields() const
-{
- ByteVector v;
-
- String::Type encoding = checkEncoding(d->description, d->textEncoding);
-
- v.append(char(encoding));
- v.append(d->description.data(encoding));
- v.append(textDelimiter(encoding));
- v.append(url().data(String::Latin1));
-
- return v;
-}
-
-UserUrlLinkFrame::UserUrlLinkFrame(const ByteVector &data, Header *h) : UrlLinkFrame(data, h)
-{
- d = new UserUrlLinkFramePrivate;
- parseFields(fieldData(data));
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h
deleted file mode 100644
index 649f85dea6..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- copyright : (C) 2006 by Urs Fleisch
- email : ufleisch@users.sourceforge.net
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_URLLINKFRAME_H
-#define TAGLIB_URLLINKFRAME_H
-
-#include <id3v2frame.h>
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! ID3v2 URL frame
- /*!
- * An implementation of ID3v2 URL link frames.
- */
- class TAGLIB_EXPORT UrlLinkFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * This is a dual purpose constructor. \a data can either be binary data
- * that should be parsed or (at a minimum) the frame ID.
- */
- explicit UrlLinkFrame(const ByteVector &data);
-
- /*!
- * Destroys this UrlLinkFrame instance.
- */
- virtual ~UrlLinkFrame();
-
- /*!
- * Returns the URL.
- */
- virtual String url() const;
-
- /*!
- * Sets the URL to \a s.
- */
- virtual void setUrl(const String &s);
-
- // Reimplementations.
-
- virtual void setText(const String &s);
- virtual String toString() const;
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- /*!
- * The constructor used by the FrameFactory.
- */
- UrlLinkFrame(const ByteVector &data, Header *h);
-
- private:
- UrlLinkFrame(const UrlLinkFrame &);
- UrlLinkFrame &operator=(const UrlLinkFrame &);
-
- class UrlLinkFramePrivate;
- UrlLinkFramePrivate *d;
- };
-
- //! ID3v2 User defined URL frame
-
- /*!
- * This is a specialization of URL link frames that allows for
- * user defined entries. Each entry has a description in addition to the
- * normal list of fields that a URL link frame has.
- *
- * This description identifies the frame and must be unique.
- */
- class TAGLIB_EXPORT UserUrlLinkFrame : public UrlLinkFrame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Constructs an empty user defined URL link frame. For this to be
- * a useful frame both a description and text must be set.
- */
- explicit UserUrlLinkFrame(String::Type encoding = String::Latin1);
-
- /*!
- * This is a dual purpose constructor. \a data can either be binary data
- * that should be parsed or (at a minimum) the frame ID.
- */
- explicit UserUrlLinkFrame(const ByteVector &data);
-
- /*!
- * Destroys this UserUrlLinkFrame instance.
- */
- virtual ~UserUrlLinkFrame();
-
- // Reimplementations.
-
- virtual String toString() const;
-
- /*!
- * Returns the text encoding that will be used in rendering this frame.
- * This defaults to the type that was either specified in the constructor
- * or read from the frame when parsed.
- *
- * \see setTextEncoding()
- * \see render()
- */
- String::Type textEncoding() const;
-
- /*!
- * Sets the text encoding to be used when rendering this frame to
- * \a encoding.
- *
- * \see textEncoding()
- * \see render()
- */
- void setTextEncoding(String::Type encoding);
-
- /*!
- * Returns the description for this frame.
- */
- String description() const;
-
- /*!
- * Sets the description of the frame to \a s. \a s must be unique.
- */
- void setDescription(const String &s);
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- /*!
- * The constructor used by the FrameFactory.
- */
- UserUrlLinkFrame(const ByteVector &data, Header *h);
-
- private:
- UserUrlLinkFrame(const UserUrlLinkFrame &);
- UserUrlLinkFrame &operator=(const UserUrlLinkFrame &);
-
- class UserUrlLinkFramePrivate;
- UserUrlLinkFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2.2.0.txt b/libs/taglib/taglib/mpeg/id3v2/id3v2.2.0.txt
deleted file mode 100644
index a69bddd32a..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2.2.0.txt
+++ /dev/null
@@ -1,1660 +0,0 @@
-
-Informal standard M. Nilsson
-Document: id3v2-00.txt 26th March 1998
-
-
- ID3 tag version 2
-
-Status of this document
-
- This document is an Informal standard and is released so that
- implementors could have a set standard before the formal standard is
- set. The formal standard will use another version number if not
- identical to what is described in this document. The contents in this
- document may change for clarifications but never for added or altered
- functionallity.
-
- Distribution of this document is unlimited.
-
-
-Abstract
-
- The recent gain of popularity for MPEG layer III audio files on the
- internet forced a standardised way of storing information about an
- audio file within itself to determinate its origin and contents.
-
- Today the most accepted way to do this is with the so called ID3 tag,
- which is simple but very limited and in some cases very unsuitable.
- The ID3 tag has very limited space in every field, very limited
- numbers of fields, not expandable or upgradeable and is placed at the
- end of a the file, which is unsuitable for streaming audio. This draft
- is an attempt to answer these issues with a new version of the ID3
- tag.
-
-
-1. Table of contents
-
- 2. Conventions in this document
- 3. ID3v2 overview
- 3.1. ID3v2 header
- 3.2. ID3v2 frames overview
- 4. Declared ID3v2 frames
- 4.1. Unique file identifier
- 4.2. Text information frames
- 4.2.1. Text information frames - details
- 4.2.2. User defined text information frame
- 4.3. URL link frames
- 4.3.1. URL link frames - details
- 4.3.2. User defined URL link frame
- 4.4. Involved people list
- 4.5. Music CD Identifier
- 4.6. Event timing codes
- 4.7. MPEG location lookup table
- 4.8. Synced tempo codes
- 4.9. Unsychronised lyrics/text transcription
- 4.10. Synchronised lyrics/text
- 4.11. Comments
- 4.12. Relative volume adjustment
- 4.13. Equalisation
- 4.14. Reverb
- 4.15. Attached picture
- 4.16. General encapsulated object
- 4.17. Play counter
- 4.18. Popularimeter
- 4.19. Recommended buffer size
- 4.20. Encrypted meta frame
- 4.21. Audio encryption
- 4.22. Linked information
- 5. The 'unsynchronisation scheme'
- 6. Copyright
- 7. References
- 8. Appendix
- A. Appendix A - ID3-Tag Specification V1.1
- A.1. Overview
- A.2. ID3v1 Implementation
- A.3. Genre List
- A.4. Track addition - ID3v1.1
- 9. Author's Address
-
-
-2. Conventions in this document
-
- In the examples, text within "" is a text string exactly as it appears
- in a file. Numbers preceded with $ are hexadecimal and numbers
- preceded with % are binary. $xx is used to indicate a byte with
- unknown content. %x is used to indicate a bit with unknown content.
- The most significant bit (MSB) of a byte is called 'bit 7' and the
- least significant bit (LSB) is called 'bit 0'.
-
- A tag is the whole tag described in this document. A frame is a block
- of information in the tag. The tag consists of a header, frames and
- optional padding. A field is a piece of information; one value, a
- string etc. A numeric string is a string that consists of the
- characters 0-9 only.
-
-
-3. ID3v2 overview
-
- The two biggest design goals were to be able to implement ID3v2
- without disturbing old software too much and that ID3v2 should be
- expandable.
-
- The first criterion is met by the simple fact that the MPEG [MPEG]
- decoding software uses a syncsignal, embedded in the audiostream, to
- 'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid
- syncsignal, no software will attempt to play the tag. If, for any
- reason, coincidence make a syncsignal appear within the tag it will be
- taken care of by the 'unsynchronisation scheme' described in section
- 5.
-
- The second criterion has made a more noticeable impact on the design
- of the ID3v2 tag. It is constructed as a container for several
- information blocks, called frames, whose format need not be known to
- the software that encounters them. At the start of every frame there
- is an identifier that explains the frames's format and content, and a
- size descriptor that allows software to skip unknown frames.
-
- If a total revision of the ID3v2 tag should be needed, there is a
- version number and a size descriptor in the ID3v2 header.
-
- The ID3 tag described in this document is mainly targeted to files
- encoded with MPEG-2 layer I, MPEG-2 layer II, MPEG-2 layer III and
- MPEG-2.5, but may work with other types of encoded audio.
-
- The bitorder in ID3v2 is most significant bit first (MSB). The
- byteorder in multibyte numbers is most significant byte first (e.g.
- $12345678 would be encoded $12 34 56 78).
-
- It is permitted to include padding after all the final frame (at the
- end of the ID3 tag), making the size of all the frames together
- smaller than the size given in the head of the tag. A possible purpose
- of this padding is to allow for adding a few additional frames or
- enlarge existing frames within the tag without having to rewrite the
- entire file. The value of the padding bytes must be $00.
-
-
-3.1. ID3v2 header
-
- The ID3v2 tag header, which should be the first information in the
- file, is 10 bytes as follows:
-
- ID3/file identifier "ID3"
- ID3 version $02 00
- ID3 flags %xx000000
- ID3 size 4 * %0xxxxxxx
-
- The first three bytes of the tag are always "ID3" to indicate that
- this is an ID3 tag, directly followed by the two version bytes. The
- first byte of ID3 version is it's major version, while the second byte
- is its revision number. All revisions are backwards compatible while
- major versions are not. If software with ID3v2 and below support
- should encounter version three or higher it should simply ignore the
- whole tag. Version and revision will never be $FF.
-
- The first bit (bit 7) in the 'ID3 flags' is indicating whether or not
- unsynchronisation is used (see section 5 for details); a set bit
- indicates usage.
-
- The second bit (bit 6) is indicating whether or not compression is
- used; a set bit indicates usage. Since no compression scheme has been
- decided yet, the ID3 decoder (for now) should just ignore the entire
- tag if the compression bit is set.
-
- The ID3 tag size is encoded with four bytes where the first bit (bit
- 7) is set to zero in every byte, making a total of 28 bits. The zeroed
- bits are ignored, so a 257 bytes long tag is represented as $00 00 02
- 01.
-
- The ID3 tag size is the size of the complete tag after
- unsychronisation, including padding, excluding the header (total tag
- size - 10). The reason to use 28 bits (representing up to 256MB) for
- size description is that we don't want to run out of space here.
-
- A ID3v2 tag can be detected with the following pattern:
- $49 44 33 yy yy xx zz zz zz zz
- Where yy is less than $FF, xx is the 'flags' byte and zz is less than
- $80.
-
-
-3.2. ID3v2 frames overview
-
- The headers of the frames are similar in their construction. They
- consist of one three character identifier (capital A-Z and 0-9) and
- one three byte size field, making a total of six bytes. The header is
- excluded from the size. Identifiers beginning with "X", "Y" and "Z"
- are for experimental use and free for everyone to use. Have in mind
- that someone else might have used the same identifier as you. All
- other identifiers are either used or reserved for future use.
-
- The three character frame identifier is followed by a three byte size
- descriptor, making a total header size of six bytes in every frame.
- The size is calculated as framesize excluding frame identifier and
- size descriptor (frame size - 6).
-
- There is no fixed order of the frames' appearance in the tag, although
- it is desired that the frames are arranged in order of significance
- concerning the recognition of the file. An example of such order:
- UFI, MCI, TT2 ...
-
- A tag must contain at least one frame. A frame must be at least 1 byte
- big, excluding the 6-byte header.
-
- If nothing else is said a string is represented as ISO-8859-1
- [ISO-8859-1] characters in the range $20 - $FF. All unicode strings
- [UNICODE] use 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). All
- numeric strings are always encoded as ISO-8859-1. Terminated strings
- are terminated with $00 if encoded with ISO-8859-1 and $00 00 if
- encoded as unicode. If nothing else is said newline character is
- forbidden. In ISO-8859-1 a new line is represented, when allowed, with
- $0A only. Frames that allow different types of text encoding have a
- text encoding description byte directly after the frame size. If
- ISO-8859-1 is used this byte should be $00, if unicode is used it
- should be $01.
-
- The three byte language field is used to describe the language of the
- frame's content, according to ISO-639-2 [ISO-639-2].
-
- All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt".
-
- If a frame is longer than it should be, e.g. having more fields than
- specified in this document, that indicates that additions to the
- frame have been made in a later version of the ID3 standard. This
- is reflected by the revision number in the header of the tag.
-
-
-4. Declared ID3v2 frames
-
- The following frames are declared in this draft.
-
- 4.19 BUF Recommended buffer size
-
- 4.17 CNT Play counter
- 4.11 COM Comments
- 4.21 CRA Audio encryption
- 4.20 CRM Encrypted meta frame
-
- 4.6 ETC Event timing codes
- 4.13 EQU Equalization
-
- 4.16 GEO General encapsulated object
-
- 4.4 IPL Involved people list
-
- 4.22 LNK Linked information
-
- 4.5 MCI Music CD Identifier
- 4.7 MLL MPEG location lookup table
-
- 4.15 PIC Attached picture
- 4.18 POP Popularimeter
-
- 4.14 REV Reverb
- 4.12 RVA Relative volume adjustment
-
- 4.10 SLT Synchronized lyric/text
- 4.8 STC Synced tempo codes
-
- 4.2.1 TAL Album/Movie/Show title
- 4.2.1 TBP BPM (Beats Per Minute)
- 4.2.1 TCM Composer
- 4.2.1 TCO Content type
- 4.2.1 TCR Copyright message
- 4.2.1 TDA Date
- 4.2.1 TDY Playlist delay
- 4.2.1 TEN Encoded by
- 4.2.1 TFT File type
- 4.2.1 TIM Time
- 4.2.1 TKE Initial key
- 4.2.1 TLA Language(s)
- 4.2.1 TLE Length
- 4.2.1 TMT Media type
- 4.2.1 TOA Original artist(s)/performer(s)
- 4.2.1 TOF Original filename
- 4.2.1 TOL Original Lyricist(s)/text writer(s)
- 4.2.1 TOR Original release year
- 4.2.1 TOT Original album/Movie/Show title
- 4.2.1 TP1 Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group
- 4.2.1 TP2 Band/Orchestra/Accompaniment
- 4.2.1 TP3 Conductor/Performer refinement
- 4.2.1 TP4 Interpreted, remixed, or otherwise modified by
- 4.2.1 TPA Part of a set
- 4.2.1 TPB Publisher
- 4.2.1 TRC ISRC (International Standard Recording Code)
- 4.2.1 TRD Recording dates
- 4.2.1 TRK Track number/Position in set
- 4.2.1 TSI Size
- 4.2.1 TSS Software/hardware and settings used for encoding
- 4.2.1 TT1 Content group description
- 4.2.1 TT2 Title/Songname/Content description
- 4.2.1 TT3 Subtitle/Description refinement
- 4.2.1 TXT Lyricist/text writer
- 4.2.2 TXX User defined text information frame
- 4.2.1 TYE Year
-
- 4.1 UFI Unique file identifier
- 4.9 ULT Unsychronized lyric/text transcription
-
- 4.3.1 WAF Official audio file webpage
- 4.3.1 WAR Official artist/performer webpage
- 4.3.1 WAS Official audio source webpage
- 4.3.1 WCM Commercial information
- 4.3.1 WCP Copyright/Legal information
- 4.3.1 WPB Publishers official webpage
- 4.3.2 WXX User defined URL link frame
-
-
-4.1. Unique file identifier
-
- This frame's purpose is to be able to identify the audio file in a
- database that may contain more information relevant to the content.
- Since standardisation of such a database is beyond this document, all
- frames begin with a null-terminated string with a URL [URL] containing
- an email address, or a link to a location where an email address can
- be found, that belongs to the organisation responsible for this
- specific database implementation. Questions regarding the database
- should be sent to the indicated email address. The URL should not be
- used for the actual database queries. If a $00 is found directly after
- the 'Frame size' the whole frame should be ignored, and preferably be
- removed. The 'Owner identifier' is then followed by the actual
- identifier, which may be up to 64 bytes. There may be more than one
- "UFI" frame in a tag, but only one with the same 'Owner identifier'.
-
- Unique file identifier "UFI"
- Frame size $xx xx xx
- Owner identifier <textstring> $00
- Identifier <up to 64 bytes binary data>
-
-
-4.2. Text information frames
-
- The text information frames are the most important frames, containing
- information like artist, album and more. There may only be one text
- information frame of its kind in an tag. If the textstring is followed
- by a termination ($00 (00)) all the following information should be
- ignored and not be displayed. All the text information frames have the
- following format:
-
- Text information identifier "T00" - "TZZ" , excluding "TXX",
- described in 4.2.2.
- Frame size $xx xx xx
- Text encoding $xx
- Information <textstring>
-
-
-4.2.1. Text information frames - details
-
- TT1
- The 'Content group description' frame is used if the sound belongs to
- a larger category of sounds/music. For example, classical music is
- often sorted in different musical sections (e.g. "Piano Concerto",
- "Weather - Hurricane").
-
- TT2
- The 'Title/Songname/Content description' frame is the actual name of
- the piece (e.g. "Adagio", "Hurricane Donna").
-
- TT3
- The 'Subtitle/Description refinement' frame is used for information
- directly related to the contents title (e.g. "Op. 16" or "Performed
- live at wembley").
-
- TP1
- The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
- used for the main artist(s). They are seperated with the "/"
- character.
-
- TP2
- The 'Band/Orchestra/Accompaniment' frame is used for additional
- information about the performers in the recording.
-
- TP3
- The 'Conductor' frame is used for the name of the conductor.
-
- TP4
- The 'Interpreted, remixed, or otherwise modified by' frame contains
- more information about the people behind a remix and similar
- interpretations of another existing piece.
-
- TCM
- The 'Composer(s)' frame is intended for the name of the composer(s).
- They are seperated with the "/" character.
-
- TXT
- The 'Lyricist(s)/text writer(s)' frame is intended for the writer(s)
- of the text or lyrics in the recording. They are seperated with the
- "/" character.
-
- TLA
- The 'Language(s)' frame should contain the languages of the text or
- lyrics in the audio file. The language is represented with three
- characters according to ISO-639-2. If more than one language is used
- in the text their language codes should follow according to their
- usage.
-
- TCO
- The content type, which previously (in ID3v1.1, see appendix A) was
- stored as a one byte numeric value only, is now a numeric string. You
- may use one or several of the types as ID3v1.1 did or, since the
- category list would be impossible to maintain with accurate and up to
- date categories, define your own.
- References to the ID3v1 genres can be made by, as first byte, enter
- "(" followed by a number from the genres list (section A.3.) and
- ended with a ")" character. This is optionally followed by a
- refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be
- made in the same frame, e.g. "(51)(39)". If the refinement should
- begin with a "(" character it should be replaced with "((", e.g. "((I
- can figure out any genre)" or "(55)((I think...)". The following new
- content types is defined in ID3v2 and is implemented in the same way
- as the numerig content types, e.g. "(RX)".
-
- RX Remix
- CR Cover
-
- TAL
- The 'Album/Movie/Show title' frame is intended for the title of the
- recording(/source of sound) which the audio in the file is taken from.
-
- TPA
- The 'Part of a set' frame is a numeric string that describes which
- part of a set the audio came from. This frame is used if the source
- described in the "TAL" frame is divided into several mediums, e.g. a
- double CD. The value may be extended with a "/" character and a
- numeric string containing the total number of parts in the set. E.g.
- "1/2".
-
- TRK
- The 'Track number/Position in set' frame is a numeric string
- containing the order number of the audio-file on its original
- recording. This may be extended with a "/" character and a numeric
- string containing the total numer of tracks/elements on the original
- recording. E.g. "4/9".
-
- TRC
- The 'ISRC' frame should contian the International Standard Recording
- Code [ISRC].
-
- TYE
- The 'Year' frame is a numeric string with a year of the recording.
- This frames is always four characters long (until the year 10000).
-
- TDA
- The 'Date' frame is a numeric string in the DDMM format containing
- the date for the recording. This field is always four characters
- long.
-
- TIM
- The 'Time' frame is a numeric string in the HHMM format containing
- the time for the recording. This field is always four characters
- long.
-
- TRD
- The 'Recording dates' frame is a intended to be used as complement to
- the "TYE", "TDA" and "TIM" frames. E.g. "4th-7th June, 12th June" in
- combination with the "TYE" frame.
-
- TMT
- The 'Media type' frame describes from which media the sound
- originated. This may be a textstring or a reference to the predefined
- media types found in the list below. References are made within "("
- and ")" and are optionally followed by a text refinement, e.g. "(MC)
- with four channels". If a text refinement should begin with a "("
- character it should be replaced with "((" in the same way as in the
- "TCO" frame. Predefined refinements is appended after the media type,
- e.g. "(CD/S)" or "(VID/PAL/VHS)".
-
- DIG Other digital media
- /A Analog transfer from media
-
- ANA Other analog media
- /WAC Wax cylinder
- /8CA 8-track tape cassette
-
- CD CD
- /A Analog transfer from media
- /DD DDD
- /AD ADD
- /AA AAD
-
- LD Laserdisc
- /A Analog transfer from media
-
- TT Turntable records
- /33 33.33 rpm
- /45 45 rpm
- /71 71.29 rpm
- /76 76.59 rpm
- /78 78.26 rpm
- /80 80 rpm
-
- MD MiniDisc
- /A Analog transfer from media
-
- DAT DAT
- /A Analog transfer from media
- /1 standard, 48 kHz/16 bits, linear
- /2 mode 2, 32 kHz/16 bits, linear
- /3 mode 3, 32 kHz/12 bits, nonlinear, low speed
- /4 mode 4, 32 kHz/12 bits, 4 channels
- /5 mode 5, 44.1 kHz/16 bits, linear
- /6 mode 6, 44.1 kHz/16 bits, 'wide track' play
-
- DCC DCC
- /A Analog transfer from media
-
- DVD DVD
- /A Analog transfer from media
-
- TV Television
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
-
- VID Video
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
- /VHS VHS
- /SVHS S-VHS
- /BETA BETAMAX
-
- RAD Radio
- /FM FM
- /AM AM
- /LW LW
- /MW MW
-
- TEL Telephone
- /I ISDN
-
- MC MC (normal cassette)
- /4 4.75 cm/s (normal speed for a two sided cassette)
- /9 9.5 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- REE Reel
- /9 9.5 cm/s
- /19 19 cm/s
- /38 38 cm/s
- /76 76 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- TFT
- The 'File type' frame indicates which type of audio this tag defines.
- The following type and refinements are defined:
-
- MPG MPEG Audio
- /1 MPEG 2 layer I
- /2 MPEG 2 layer II
- /3 MPEG 2 layer III
- /2.5 MPEG 2.5
- /AAC Advanced audio compression
-
- but other types may be used, not for these types though. This is used
- in a similar way to the predefined types in the "TMT" frame, but
- without parenthesis. If this frame is not present audio type is
- assumed to be "MPG".
-
- TBP
- BPM is short for beats per minute, and is easily computed by
- dividing the number of beats in a musical piece with its length. To
- get a more accurate result, do the BPM calculation on the main-part
- only. To acquire best result measure the time between each beat and
- calculate individual BPM for each beat and use the median value as
- result. BPM is an integer and represented as a numerical string.
-
- TCR
- The 'Copyright message' frame, which must begin with a year and a
- space character (making five characters), is intended for the
- copyright holder of the original sound, not the audio file itself. The
- absence of this frame means only that the copyright information is
- unavailable or has been removed, and must not be interpreted to mean
- that the sound is public domain. Every time this field is displayed
- the field must be preceded with "Copyright " (C) " ", where (C) is one
- character showing a C in a circle.
-
- TPB
- The 'Publisher' frame simply contains the name of the label or
- publisher.
-
- TEN
- The 'Encoded by' frame contains the name of the person or
- organisation that encoded the audio file. This field may contain a
- copyright message, if the audio file also is copyrighted by the
- encoder.
-
- TSS
- The 'Software/hardware and settings used for encoding' frame
- includes the used audio encoder and its settings when the file was
- encoded. Hardware refers to hardware encoders, not the computer on
- which a program was run.
-
- TOF
- The 'Original filename' frame contains the preferred filename for the
- file, since some media doesn't allow the desired length of the
- filename. The filename is case sensitive and includes its suffix.
-
- TLE
- The 'Length' frame contains the length of the audiofile in
- milliseconds, represented as a numeric string.
-
- TSI
- The 'Size' frame contains the size of the audiofile in bytes
- excluding the tag, represented as a numeric string.
-
- TDY
- The 'Playlist delay' defines the numbers of milliseconds of silence
- between every song in a playlist. The player should use the "ETC"
- frame, if present, to skip initial silence and silence at the end of
- the audio to match the 'Playlist delay' time. The time is represented
- as a numeric string.
-
- TKE
- The 'Initial key' frame contains the musical key in which the sound
- starts. It is represented as a string with a maximum length of three
- characters. The ground keys are represented with "A","B","C","D","E",
- "F" and "G" and halfkeys represented with "b" and "#". Minor is
- represented as "m". Example "Cbm". Off key is represented with an "o"
- only.
-
- TOT
- The 'Original album/Movie/Show title' frame is intended for the title
- of the original recording(/source of sound), if for example the music
- in the file should be a cover of a previously released song.
-
- TOA
- The 'Original artist(s)/performer(s)' frame is intended for the
- performer(s) of the original recording, if for example the music in
- the file should be a cover of a previously released song. The
- performers are seperated with the "/" character.
-
- TOL
- The 'Original Lyricist(s)/text writer(s)' frame is intended for the
- text writer(s) of the original recording, if for example the music in
- the file should be a cover of a previously released song. The text
- writers are seperated with the "/" character.
-
- TOR
- The 'Original release year' frame is intended for the year when the
- original recording, if for example the music in the file should be a
- cover of a previously released song, was released. The field is
- formatted as in the "TDY" frame.
-
-
-4.2.2. User defined text information frame
-
- This frame is intended for one-string text information concerning the
- audiofile in a similar way to the other "T"xx frames. The frame body
- consists of a description of the string, represented as a terminated
- string, followed by the actual string. There may be more than one
- "TXX" frame in each tag, but only one with the same description.
-
- User defined... "TXX"
- Frame size $xx xx xx
- Text encoding $xx
- Description <textstring> $00 (00)
- Value <textstring>
-
-
-4.3. URL link frames
-
- With these frames dynamic data such as webpages with touring
- information, price information or plain ordinary news can be added to
- the tag. There may only be one URL [URL] link frame of its kind in an
- tag, except when stated otherwise in the frame description. If the
- textstring is followed by a termination ($00 (00)) all the following
- information should be ignored and not be displayed. All URL link
- frames have the following format:
-
- URL link frame "W00" - "WZZ" , excluding "WXX"
- (described in 4.3.2.)
- Frame size $xx xx xx
- URL <textstring>
-
-
-4.3.1. URL link frames - details
-
- WAF
- The 'Official audio file webpage' frame is a URL pointing at a file
- specific webpage.
-
- WAR
- The 'Official artist/performer webpage' frame is a URL pointing at
- the artists official webpage. There may be more than one "WAR" frame
- in a tag if the audio contains more than one performer.
-
- WAS
- The 'Official audio source webpage' frame is a URL pointing at the
- official webpage for the source of the audio file, e.g. a movie.
-
- WCM
- The 'Commercial information' frame is a URL pointing at a webpage
- with information such as where the album can be bought. There may be
- more than one "WCM" frame in a tag.
-
- WCP
- The 'Copyright/Legal information' frame is a URL pointing at a
- webpage where the terms of use and ownership of the file is described.
-
- WPB
- The 'Publishers official webpage' frame is a URL pointing at the
- official wepage for the publisher.
-
-
-4.3.2. User defined URL link frame
-
- This frame is intended for URL [URL] links concerning the audiofile in
- a similar way to the other "W"xx frames. The frame body consists of a
- description of the string, represented as a terminated string,
- followed by the actual URL. The URL is always encoded with ISO-8859-1
- [ISO-8859-1]. There may be more than one "WXX" frame in each tag, but
- only one with the same description.
-
- User defined... "WXX"
- Frame size $xx xx xx
- Text encoding $xx
- Description <textstring> $00 (00)
- URL <textstring>
-
-
-4.4. Involved people list
-
- Since there might be a lot of people contributing to an audio file in
- various ways, such as musicians and technicians, the 'Text
- information frames' are often insufficient to list everyone involved
- in a project. The 'Involved people list' is a frame containing the
- names of those involved, and how they were involved. The body simply
- contains a terminated string with the involvement directly followed by
- a terminated string with the involvee followed by a new involvement
- and so on. There may only be one "IPL" frame in each tag.
-
- Involved people list "IPL"
- Frame size $xx xx xx
- Text encoding $xx
- People list strings <textstrings>
-
-
-4.5. Music CD Identifier
-
- This frame is intended for music that comes from a CD, so that the CD
- can be identified in databases such as the CDDB [CDDB]. The frame
- consists of a binary dump of the Table Of Contents, TOC, from the CD,
- which is a header of 4 bytes and then 8 bytes/track on the CD making a
- maximum of 804 bytes. This frame requires a present and valid "TRK"
- frame. There may only be one "MCI" frame in each tag.
-
- Music CD identifier "MCI"
- Frame size $xx xx xx
- CD TOC <binary data>
-
-
-4.6. Event timing codes
-
- This frame allows synchronisation with key events in a song or sound.
- The head is:
-
- Event timing codes "ETC"
- Frame size $xx xx xx
- Time stamp format $xx
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
- Followed by a list of key events in the following format:
-
- Type of event $xx
- Time stamp $xx (xx ...)
-
- The 'Time stamp' is set to zero if directly at the beginning of the
- sound or after the previous event. All events should be sorted in
- chronological order. The type of event is as follows:
-
- $00 padding (has no meaning)
- $01 end of initial silence
- $02 intro start
- $03 mainpart start
- $04 outro start
- $05 outro end
- $06 verse begins
- $07 refrain begins
- $08 interlude
- $09 theme start
- $0A variation
- $0B key change
- $0C time change
- $0D unwanted noise (Snap, Crackle & Pop)
-
- $0E-$DF reserved for future use
-
- $E0-$EF not predefined sync 0-F
-
- $F0-$FC reserved for future use
-
- $FD audio end (start of silence)
- $FE audio file ends
- $FF one more byte of events follows (all the following bytes with
- the value $FF have the same function)
-
- The 'Not predefined sync's ($E0-EF) are for user events. You might
- want to synchronise your music to something, like setting of an
- explosion on-stage, turning on your screensaver etc.
-
- There may only be one "ETC" frame in each tag.
-
-
-4.7. MPEG location lookup table
-
- To increase performance and accuracy of jumps within a MPEG [MPEG]
- audio file, frames with timecodes in different locations in the file
- might be useful. The ID3 frame includes references that the software
- can use to calculate positions in the file. After the frame header is
- a descriptor of how much the 'frame counter' should increase for every
- reference. If this value is two then the first reference points out
- the second frame, the 2nd reference the 4th frame, the 3rd reference
- the 6th frame etc. In a similar way the 'bytes between reference' and
- 'milliseconds between reference' points out bytes and milliseconds
- respectively.
-
- Each reference consists of two parts; a certain number of bits, as
- defined in 'bits for bytes deviation', that describes the difference
- between what is said in 'bytes between reference' and the reality and
- a certain number of bits, as defined in 'bits for milliseconds
- deviation', that describes the difference between what is said in
- 'milliseconds between reference' and the reality. The number of bits
- in every reference, i.e. 'bits for bytes deviation'+'bits for
- milliseconds deviation', must be a multiple of four. There may only be
- one "MLL" frame in each tag.
-
- Location lookup table "MLL"
- ID3 frame size $xx xx xx
- MPEG frames between reference $xx xx
- Bytes between reference $xx xx xx
- Milliseconds between reference $xx xx xx
- Bits for bytes deviation $xx
- Bits for milliseconds dev. $xx
-
- Then for every reference the following data is included;
-
- Deviation in bytes %xxx....
- Deviation in milliseconds %xxx....
-
-
-4.8. Synced tempo codes
-
- For a more accurate description of the tempo of a musical piece this
- frame might be used. After the header follows one byte describing
- which time stamp format should be used. Then follows one or more tempo
- codes. Each tempo code consists of one tempo part and one time part.
- The tempo is in BPM described with one or two bytes. If the first byte
- has the value $FF, one more byte follows, which is added to the first
- giving a range from 2 - 510 BPM, since $00 and $01 is reserved. $00 is
- used to describe a beat-free time period, which is not the same as a
- music-free time period. $01 is used to indicate one single beat-stroke
- followed by a beat-free period.
-
- The tempo descriptor is followed by a time stamp. Every time the tempo
- in the music changes, a tempo descriptor may indicate this for the
- player. All tempo descriptors should be sorted in chronological order.
- The first beat-stroke in a time-period is at the same time as the beat
- description occurs. There may only be one "STC" frame in each tag.
-
- Synced tempo codes "STC"
- Frame size $xx xx xx
- Time stamp format $xx
- Tempo data <binary data>
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
-
-4.9. Unsychronised lyrics/text transcription
-
- This frame contains the lyrics of the song or a text transcription of
- other vocal activities. The head includes an encoding descriptor and
- a content descriptor. The body consists of the actual text. The
- 'Content descriptor' is a terminated string. If no descriptor is
- entered, 'Content descriptor' is $00 (00) only. Newline characters
- are allowed in the text. Maximum length for the descriptor is 64
- bytes. There may be more than one lyrics/text frame in each tag, but
- only one with the same language and content descriptor.
-
- Unsynced lyrics/text "ULT"
- Frame size $xx xx xx
- Text encoding $xx
- Language $xx xx xx
- Content descriptor <textstring> $00 (00)
- Lyrics/text <textstring>
-
-
-4.10. Synchronised lyrics/text
-
- This is another way of incorporating the words, said or sung lyrics,
- in the audio file as text, this time, however, in sync with the audio.
- It might also be used to describing events e.g. occurring on a stage
- or on the screen in sync with the audio. The header includes a content
- descriptor, represented with as terminated textstring. If no
- descriptor is entered, 'Content descriptor' is $00 (00) only.
-
- Synced lyrics/text "SLT"
- Frame size $xx xx xx
- Text encoding $xx
- Language $xx xx xx
- Time stamp format $xx
- Content type $xx
- Content descriptor <textstring> $00 (00)
-
-
- Encoding: $00 ISO-8859-1 [ISO-8859-1] character set is used => $00
- is sync identifier.
- $01 Unicode [UNICODE] character set is used => $00 00 is
- sync identifier.
-
- Content type: $00 is other
- $01 is lyrics
- $02 is text transcription
- $03 is movement/part name (e.g. "Adagio")
- $04 is events (e.g. "Don Quijote enters the stage")
- $05 is chord (e.g. "Bb F Fsus")
-
- Time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
- The text that follows the frame header differs from that of the
- unsynchronised lyrics/text transcription in one major way. Each
- syllable (or whatever size of text is considered to be convenient by
- the encoder) is a null terminated string followed by a time stamp
- denoting where in the sound file it belongs. Each sync thus has the
- following structure:
-
- Terminated text to be synced (typically a syllable)
- Sync identifier (terminator to above string) $00 (00)
- Time stamp $xx (xx ...)
-
- The 'time stamp' is set to zero or the whole sync is omitted if
- located directly at the beginning of the sound. All time stamps should
- be sorted in chronological order. The sync can be considered as a
- validator of the subsequent string.
-
- Newline characters are allowed in all "SLT" frames and should be used
- after every entry (name, event etc.) in a frame with the content type
- $03 - $04.
-
- A few considerations regarding whitespace characters: Whitespace
- separating words should mark the beginning of a new word, thus
- occurring in front of the first syllable of a new word. This is also
- valid for new line characters. A syllable followed by a comma should
- not be broken apart with a sync (both the syllable and the comma
- should be before the sync).
-
- An example: The "ULT" passage
-
- "Strangers in the night" $0A "Exchanging glances"
-
- would be "SLT" encoded as:
-
- "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
- " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
- xx "glan" $00 xx xx "ces" $00 xx xx
-
- There may be more than one "SLT" frame in each tag, but only one with
- the same language and content descriptor.
-
-
-4.11. Comments
-
- This frame replaces the old 30-character comment field in ID3v1. It
- consists of a frame head followed by encoding, language and content
- descriptors and is ended with the actual comment as a text string.
- Newline characters are allowed in the comment text string. There may
- be more than one comment frame in each tag, but only one with the same
- language and content descriptor.
-
- Comment "COM"
- Frame size $xx xx xx
- Text encoding $xx
- Language $xx xx xx
- Short content description <textstring> $00 (00)
- The actual text <textstring>
-
-
-4.12. Relative volume adjustment
-
- This is a more subjective function than the previous ones. It allows
- the user to say how much he wants to increase/decrease the volume on
- each channel while the file is played. The purpose is to be able to
- align all files to a reference volume, so that you don't have to
- change the volume constantly. This frame may also be used to balance
- adjust the audio. If the volume peak levels are known then this could
- be described with the 'Peak volume right' and 'Peak volume left'
- field. If Peakvolume is not known these fields could be left zeroed
- or completely omitted. There may only be one "RVA" frame in each
- tag.
-
- Relative volume adjustment "RVA"
- Frame size $xx xx xx
- Increment/decrement %000000xx
- Bits used for volume descr. $xx
- Relative volume change, right $xx xx (xx ...)
- Relative volume change, left $xx xx (xx ...)
- Peak volume right $xx xx (xx ...)
- Peak volume left $xx xx (xx ...)
-
- In the increment/decrement field bit 0 is used to indicate the right
- channel and bit 1 is used to indicate the left channel. 1 is
- increment and 0 is decrement.
-
- The 'bits used for volume description' field is normally $10 (16 bits)
- for MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not
- be $00. The volume is always represented with whole bytes, padded in
- the beginning (highest bits) when 'bits used for volume description'
- is not a multiple of eight.
-
-
-4.13. Equalisation
-
- This is another subjective, alignment frame. It allows the user to
- predefine an equalisation curve within the audio file. There may only
- be one "EQU" frame in each tag.
-
- Equalisation "EQU"
- Frame size $xx xx xx
- Adjustment bits $xx
-
- The 'adjustment bits' field defines the number of bits used for
- representation of the adjustment. This is normally $10 (16 bits) for
- MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not be
- $00.
-
- This is followed by 2 bytes + ('adjustment bits' rounded up to the
- nearest byte) for every equalisation band in the following format,
- giving a frequency range of 0 - 32767Hz:
-
- Increment/decrement %x (MSB of the Frequency)
- Frequency (lower 15 bits)
- Adjustment $xx (xx ...)
-
- The increment/decrement bit is 1 for increment and 0 for decrement.
- The equalisation bands should be ordered increasingly with reference
- to frequency. All frequencies don't have to be declared. Adjustments
- with the value $00 should be omitted. A frequency should only be
- described once in the frame.
-
-
-4.14. Reverb
-
- Yet another subjective one. You may here adjust echoes of different
- kinds. Reverb left/right is the delay between every bounce in ms.
- Reverb bounces left/right is the number of bounces that should be
- made. $FF equals an infinite number of bounces. Feedback is the amount
- of volume that should be returned to the next echo bounce. $00 is 0%,
- $FF is 100%. If this value were $7F, there would be 50% volume
- reduction on the first bounce, yet 50% on the second and so on. Left
- to left means the sound from the left bounce to be played in the left
- speaker, while left to right means sound from the left bounce to be
- played in the right speaker.
-
- 'Premix left to right' is the amount of left sound to be mixed in the
- right before any reverb is applied, where $00 id 0% and $FF is 100%.
- 'Premix right to left' does the same thing, but right to left. Setting
- both premix to $FF would result in a mono output (if the reverb is
- applied symmetric). There may only be one "REV" frame in each tag.
-
- Reverb settings "REV"
- Frame size $00 00 0C
- Reverb left (ms) $xx xx
- Reverb right (ms) $xx xx
- Reverb bounces, left $xx
- Reverb bounces, right $xx
- Reverb feedback, left to left $xx
- Reverb feedback, left to right $xx
- Reverb feedback, right to right $xx
- Reverb feedback, right to left $xx
- Premix left to right $xx
- Premix right to left $xx
-
-
-4.15. Attached picture
-
- This frame contains a picture directly related to the audio file.
- Image format is preferably "PNG" [PNG] or "JPG" [JFIF]. Description
- is a short description of the picture, represented as a terminated
- textstring. The description has a maximum length of 64 characters,
- but may be empty. There may be several pictures attached to one file,
- each in their individual "PIC" frame, but only one with the same
- content descriptor. There may only be one picture with the picture
- type declared as picture type $01 and $02 respectively. There is a
- possibility to put only a link to the image file by using the 'image
- format' "-->" and having a complete URL [URL] instead of picture data.
- The use of linked files should however be used restrictively since
- there is the risk of separation of files.
-
- Attached picture "PIC"
- Frame size $xx xx xx
- Text encoding $xx
- Image format $xx xx xx
- Picture type $xx
- Description <textstring> $00 (00)
- Picture data <binary data>
-
-
- Picture type: $00 Other
- $01 32x32 pixels 'file icon' (PNG only)
- $02 Other file icon
- $03 Cover (front)
- $04 Cover (back)
- $05 Leaflet page
- $06 Media (e.g. lable side of CD)
- $07 Lead artist/lead performer/soloist
- $08 Artist/performer
- $09 Conductor
- $0A Band/Orchestra
- $0B Composer
- $0C Lyricist/text writer
- $0D Recording Location
- $0E During recording
- $0F During performance
- $10 Movie/video screen capture
- $11 A bright coloured fish
- $12 Illustration
- $13 Band/artist logotype
- $14 Publisher/Studio logotype
-
-
-4.16. General encapsulated object
-
- In this frame any type of file can be encapsulated. After the header,
- 'Frame size' and 'Encoding' follows 'MIME type' [MIME] and 'Filename'
- for the encapsulated object, both represented as terminated strings
- encoded with ISO 8859-1 [ISO-8859-1]. The filename is case sensitive.
- Then follows a content description as terminated string, encoded as
- 'Encoding'. The last thing in the frame is the actual object. The
- first two strings may be omitted, leaving only their terminations.
- MIME type is always an ISO-8859-1 text string. There may be more than
- one "GEO" frame in each tag, but only one with the same content
- descriptor.
-
- General encapsulated object "GEO"
- Frame size $xx xx xx
- Text encoding $xx
- MIME type <textstring> $00
- Filename <textstring> $00 (00)
- Content description <textstring> $00 (00)
- Encapsulated object <binary data>
-
-
-4.17. Play counter
-
- This is simply a counter of the number of times a file has been
- played. The value is increased by one every time the file begins to
- play. There may only be one "CNT" frame in each tag. When the counter
- reaches all one's, one byte is inserted in front of the counter thus
- making the counter eight bits bigger. The counter must be at least
- 32-bits long to begin with.
-
- Play counter "CNT"
- Frame size $xx xx xx
- Counter $xx xx xx xx (xx ...)
-
-
-4.18. Popularimeter
-
- The purpose of this frame is to specify how good an audio file is.
- Many interesting applications could be found to this frame such as a
- playlist that features better audiofiles more often than others or it
- could be used to profile a persons taste and find other 'good' files
- by comparing people's profiles. The frame is very simple. It contains
- the email address to the user, one rating byte and a four byte play
- counter, intended to be increased with one for every time the file is
- played. The email is a terminated string. The rating is 1-255 where
- 1 is worst and 255 is best. 0 is unknown. If no personal counter is
- wanted it may be omitted. When the counter reaches all one's, one
- byte is inserted in front of the counter thus making the counter
- eight bits bigger in the same away as the play counter ("CNT").
- There may be more than one "POP" frame in each tag, but only one with
- the same email address.
-
- Popularimeter "POP"
- Frame size $xx xx xx
- Email to user <textstring> $00
- Rating $xx
- Counter $xx xx xx xx (xx ...)
-
-
-4.19. Recommended buffer size
-
- Sometimes the server from which a audio file is streamed is aware of
- transmission or coding problems resulting in interruptions in the
- audio stream. In these cases, the size of the buffer can be
- recommended by the server using this frame. If the 'embedded info
- flag' is true (1) then this indicates that an ID3 tag with the
- maximum size described in 'Buffer size' may occur in the audiostream.
- In such case the tag should reside between two MPEG [MPEG] frames, if
- the audio is MPEG encoded. If the position of the next tag is known,
- 'offset to next tag' may be used. The offset is calculated from the
- end of tag in which this frame resides to the first byte of the header
- in the next. This field may be omitted. Embedded tags is currently not
- recommended since this could render unpredictable behaviour from
- present software/hardware. The 'Buffer size' should be kept to a
- minimum. There may only be one "BUF" frame in each tag.
-
- Recommended buffer size "BUF"
- Frame size $xx xx xx
- Buffer size $xx xx xx
- Embedded info flag %0000000x
- Offset to next tag $xx xx xx xx
-
-
-4.20. Encrypted meta frame
-
- This frame contains one or more encrypted frames. This enables
- protection of copyrighted information such as pictures and text, that
- people might want to pay extra for. Since standardisation of such an
- encryption scheme is beyond this document, all "CRM" frames begin with
- a terminated string with a URL [URL] containing an email address, or a
- link to a location where an email adress can be found, that belongs to
- the organisation responsible for this specific encrypted meta frame.
-
- Questions regarding the encrypted frame should be sent to the
- indicated email address. If a $00 is found directly after the 'Frame
- size', the whole frame should be ignored, and preferably be removed.
- The 'Owner identifier' is then followed by a short content description
- and explanation as to why it's encrypted. After the
- 'content/explanation' description, the actual encrypted block follows.
-
- When an ID3v2 decoder encounters a "CRM" frame, it should send the
- datablock to the 'plugin' with the corresponding 'owner identifier'
- and expect to receive either a datablock with one or several ID3v2
- frames after each other or an error. There may be more than one "CRM"
- frames in a tag, but only one with the same 'owner identifier'.
-
- Encrypted meta frame "CRM"
- Frame size $xx xx xx
- Owner identifier <textstring> $00 (00)
- Content/explanation <textstring> $00 (00)
- Encrypted datablock <binary data>
-
-
-4.21. Audio encryption
-
- This frame indicates if the actual audio stream is encrypted, and by
- whom. Since standardisation of such encrypion scheme is beyond this
- document, all "CRA" frames begin with a terminated string with a
- URL containing an email address, or a link to a location where an
- email address can be found, that belongs to the organisation
- responsible for this specific encrypted audio file. Questions
- regarding the encrypted audio should be sent to the email address
- specified. If a $00 is found directly after the 'Frame size' and the
- audiofile indeed is encrypted, the whole file may be considered
- useless.
-
- After the 'Owner identifier', a pointer to an unencrypted part of the
- audio can be specified. The 'Preview start' and 'Preview length' is
- described in frames. If no part is unencrypted, these fields should be
- left zeroed. After the 'preview length' field follows optionally a
- datablock required for decryption of the audio. There may be more than
- one "CRA" frames in a tag, but only one with the same 'Owner
- identifier'.
-
- Audio encryption "CRA"
- Frame size $xx xx xx
- Owner identifier <textstring> $00 (00)
- Preview start $xx xx
- Preview length $xx xx
- Encryption info <binary data>
-
-
-4.22. Linked information
-
- To keep space waste as low as possible this frame may be used to link
- information from another ID3v2 tag that might reside in another audio
- file or alone in a binary file. It is recommended that this method is
- only used when the files are stored on a CD-ROM or other circumstances
- when the risk of file seperation is low. The frame contains a frame
- identifier, which is the frame that should be linked into this tag, a
- URL [URL] field, where a reference to the file where the frame is
- given, and additional ID data, if needed. Data should be retrieved
- from the first tag found in the file to which this link points. There
- may be more than one "LNK" frame in a tag, but only one with the same
- contents. A linked frame is to be considered as part of the tag and
- has the same restrictions as if it was a physical part of the tag
- (i.e. only one "REV" frame allowed, whether it's linked or not).
-
- Linked information "LNK"
- Frame size $xx xx xx
- Frame identifier $xx xx xx
- URL <textstring> $00 (00)
- Additional ID data <textstring(s)>
-
- Frames that may be linked and need no additional data are "IPL",
- "MCI", "ETC", "LLT", "STC", "RVA", "EQU", "REV", "BUF", the text
- information frames and the URL link frames.
-
- The "TXX", "PIC", "GEO", "CRM" and "CRA" frames may be linked with the
- content descriptor as additional ID data.
-
- The "COM", "SLT" and "ULT" frames may be linked with three bytes of
- language descriptor directly followed by a content descriptor as
- additional ID data.
-
-
-5. The 'unsynchronisation scheme'
-
- The only purpose of the 'unsychronisation scheme' is to make the ID3v2
- tag as compatible as possible with existing software. There is no use
- in 'unsynchronising' tags if the file is only to be processed by new
- software. Unsynchronisation may only be made with MPEG 2 layer I, II
- and III and MPEG 2.5 files.
-
- Whenever a false synchronisation is found within the tag, one zeroed
- byte is inserted after the first false synchronisation byte. The
- format of a correct sync that should be altered by ID3 encoders is as
- follows:
-
- %11111111 111xxxxx
-
- And should be replaced with:
-
- %11111111 00000000 111xxxxx
-
- This has the side effect that all $FF 00 combinations have to be
- altered, so they won't be affected by the decoding process. Therefore
- all the $FF 00 combinations have to be replaced with the $FF 00 00
- combination during the unsynchonisation.
-
- To indicate usage of the unsynchronisation, the first bit in 'ID3
- flags' should be set. This bit should only be set if the tag
- contained a, now corrected, false synchronisation. The bit should
- only be clear if the tag does not contain any false synchronisations.
-
- Do bear in mind, that if a compression scheme is used by the encoder,
- the unsyncronisation scheme should be applied *afterwards*. When
- decoding a compressed, 'unsyncronised' file, the 'unsyncronisation
- scheme' should be parsed first, compression afterwards.
-
-
-6. Copyright
-
- Copyright (C) Martin Nilsson 1998. All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that a reference to this document is included on all
- such copies and derivative works. However, this document itself may
- not be modified in any way and reissued as the original document.
-
- The limited permissions granted above are perpetual and will not be
- revoked.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-7. References
-
- [CDDB] Compact Disc Data Base
-
- <url:http://www.cddb.com>
-
- [ISO-639-2] ISO/FDIS 639-2.
- Codes for the representation of names of languages, Part 2: Alpha-3
- code. Technical committee / subcommittee: TC 37 / SC 2
-
- [ISO-8859-1] ISO/IEC DIS 8859-1.
- 8-bit single-byte coded graphic character sets, Part 1: Latin
- alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2
-
- [ISRC] ISO 3901:1986
- International Standard Recording Code (ISRC).
- Technical committee / subcommittee: TC 46 / SC 9
-
- [JFIF] JPEG File Interchange Format, version 1.02
-
- <url:http://www.w3.org/Graphics/JPEG/jfif.txt>
-
- [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
- Extensions (MIME) Part One: Format of Internet Message Bodies",
- RFC 2045, November 1996.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2045.txt>
-
- [MPEG] ISO/IEC 11172-3:1993.
- Coding of moving pictures and associated audio for digital storage
- media at up to about 1,5 Mbit/s, Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC 13818-3:1995
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC DIS 13818-3
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio (Revision of ISO/IEC 13818-3:1995)
-
-
- [PNG] Portable Network Graphics, version 1.0
-
- <url:http://www.w3.org/TR/REC-png-multi.html>
-
- [UNICODE] ISO/IEC 10646-1:1993.
- Universal Multiple-Octet Coded Character Set (UCS), Part 1:
- Architecture and Basic Multilingual Plane. Technical committee
- / subcommittee: JTC 1 / SC 2
-
- <url:http://www.unicode.org>
-
- [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource
- Locators (URL).", RFC 1738, December 1994.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc1738.txt>
-
-
-8. Appendix
-
-
-A. Appendix A - ID3-Tag Specification V1.1
-
- ID3-Tag Specification V1.1 (12 dec 1997) by Michael Mutschler
- <amiga2@info2.rus.uni-stuttgart.de>, edited for space and clarity
- reasons.
-
-
-A.1. Overview
-
- The ID3-Tag is an information field for MPEG Layer 3 audio files.
- Since a standalone MP3 doesn't provide a method of storing other
- information than those directly needed for replay reasons, the
- ID3-tag was invented by Eric Kemp in 1996.
-
- A revision from ID3v1 to ID3v1.1 was made by Michael Mutschler to
- support track number information is described in A.4.
-
-
-A.2. ID3v1 Implementation
-
- The Information is stored in the last 128 bytes of an MP3. The Tag
- has got the following fields, and the offsets given here, are from
- 0-127.
-
- Field Length Offsets
- Tag 3 0-2
- Songname 30 3-32
- Artist 30 33-62
- Album 30 63-92
- Year 4 93-96
- Comment 30 97-126
- Genre 1 127
-
-
- The string-fields contain ASCII-data, coded in ISO-Latin 1 codepage.
- Strings which are smaller than the field length are padded with zero-
- bytes.
-
- Tag: The tag is valid if this field contains the string "TAG". This
- has to be uppercase!
-
- Songname: This field contains the title of the MP3 (string as
- above).
-
- Artist: This field contains the artist of the MP3 (string as above).
-
- Album: this field contains the album where the MP3 comes from
- (string as above).
-
- Year: this field contains the year when this song has originally
- been released (string as above).
-
- Comment: this field contains a comment for the MP3 (string as
- above). Revision to this field has been made in ID3v1.1. See
- A.4.
-
- Genre: this byte contains the offset of a genre in a predefined
- list the byte is treated as an unsigned byte. The offset is
- starting from 0. See A.3.
-
-
-A.3. Genre List
-
- The following genres is defined in ID3v1
-
- 0.Blues
- 1.Classic Rock
- 2.Country
- 3.Dance
- 4.Disco
- 5.Funk
- 6.Grunge
- 7.Hip-Hop
- 8.Jazz
- 9.Metal
- 10.New Age
- 11.Oldies
- 12.Other
- 13.Pop
- 14.R&B
- 15.Rap
- 16.Reggae
- 17.Rock
- 18.Techno
- 19.Industrial
- 20.Alternative
- 21.Ska
- 22.Death Metal
- 23.Pranks
- 24.Soundtrack
- 25.Euro-Techno
- 26.Ambient
- 27.Trip-Hop
- 28.Vocal
- 29.Jazz+Funk
- 30.Fusion
- 31.Trance
- 32.Classical
- 33.Instrumental
- 34.Acid
- 35.House
- 36.Game
- 37.Sound Clip
- 38.Gospel
- 39.Noise
- 40.AlternRock
- 41.Bass
- 42.Soul
- 43.Punk
- 44.Space
- 45.Meditative
- 46.Instrumental Pop
- 47.Instrumental Rock
- 48.Ethnic
- 49.Gothic
- 50.Darkwave
- 51.Techno-Industrial
- 52.Electronic
- 53.Pop-Folk
- 54.Eurodance
- 55.Dream
- 56.Southern Rock
- 57.Comedy
- 58.Cult
- 59.Gangsta
- 60.Top 40
- 61.Christian Rap
- 62.Pop/Funk
- 63.Jungle
- 64.Native American
- 65.Cabaret
- 66.New Wave
- 67.Psychadelic
- 68.Rave
- 69.Showtunes
- 70.Trailer
- 71.Lo-Fi
- 72.Tribal
- 73.Acid Punk
- 74.Acid Jazz
- 75.Polka
- 76.Retro
- 77.Musical
- 78.Rock & Roll
- 79.Hard Rock
-
- The following genres are Winamp extensions
-
- 80.Folk
- 81.Folk-Rock
- 82.National Folk
- 83.Swing
- 84.Fast Fusion
- 85.Bebob
- 86.Latin
- 87.Revival
- 88.Celtic
- 89.Bluegrass
- 90.Avantgarde
- 91.Gothic Rock
- 92.Progressive Rock
- 93.Psychedelic Rock
- 94.Symphonic Rock
- 95.Slow Rock
- 96.Big Band
- 97.Chorus
- 98.Easy Listening
- 99.Acoustic
- 100.Humour
- 101.Speech
- 102.Chanson
- 103.Opera
- 104.Chamber Music
- 105.Sonata
- 106.Symphony
- 107.Booty Bass
- 108.Primus
- 109.Porn Groove
- 110.Satire
- 111.Slow Jam
- 112.Club
- 113.Tango
- 114.Samba
- 115.Folklore
- 116.Ballad
- 117.Power Ballad
- 118.Rhythmic Soul
- 119.Freestyle
- 120.Duet
- 121.Punk Rock
- 122.Drum Solo
- 123.A capella
- 124.Euro-House
- 125.Dance Hall
-
-
-A.4. Track addition - ID3v1.1
-
- In ID3v1.1, Michael Mutschler revised the specification of the
- comment field in order to implement the track number. The new format
- of the comment field is a 28 character string followed by a mandatory
- null ($00) character and the original album tracknumber stored as an
- unsigned byte-size integer. In such cases where the 29th byte is not
- the null character or when the 30th is a null character, the
- tracknumber is to be considered undefined.
-
-
-9. Author's Address
-
- Martin Nilsson
- Rydsvägen 246 C. 30
- S-584 34 Linköping
- Sweden
-
- Email: nilsson@id3.org
-
- Co-authors:
-
- Johan Sundström Email: johan@id3.org
-
-
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2.3.0.txt b/libs/taglib/taglib/mpeg/id3v2/id3v2.3.0.txt
deleted file mode 100644
index b4ed763ee1..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2.3.0.txt
+++ /dev/null
@@ -1,2022 +0,0 @@
-Informal standard M. Nilsson
-Document: id3v2.3.0.txt 3rd February 1999
-
-
- ID3 tag version 2.3.0
-
-Status of this document
-
- This document is an informal standard and replaces the ID3v2.2.0
- standard [ID3v2]. The informal standard is released so that
- implementors could have a set standard before a formal standard is
- set. The formal standard will use another version or revision number
- if not identical to what is described in this document. The contents
- in this document may change for clarifications but never for added or
- altered functionallity.
-
- Distribution of this document is unlimited.
-
-
-Abstract
-
- This document describes the ID3v2.3.0, which is a more developed
- version of the ID3v2 informal standard [ID3v2] (version 2.2.0),
- evolved from the ID3 tagging system. The ID3v2 offers a flexible way
- of storing information about an audio file within itself to determine
- its origin and contents. The information may be technical
- information, such as equalisation curves, as well as related meta
- information, such as title, performer, copyright etc.
-
-
-1. Table of contents
-
- 2. Conventions in this document
- 3. ID3v2 overview
- 3.1. ID3v2 header
- 3.2. ID3v2 extended header
- 3.3. ID3v2 frames overview
- 3.3.1. Frame header flags
- 3.3.2. Default flags
- 4. Declared ID3v2 frames
- 4.1. Unique file identifier
- 4.2. Text information frames
- 4.2.1. Text information frames - details
- 4.2.2. User defined text information frame
- 4.3. URL link frames
- 4.3.1. URL link frames - details
- 4.3.2. User defined URL link frame
- 4.4. Involved people list
- 4.5. Music CD Identifier
- 4.6. Event timing codes
- 4.7. MPEG location lookup table
- 4.8. Synced tempo codes
- 4.9. Unsychronised lyrics/text transcription
- 4.10. Synchronised lyrics/text
- 4.11. Comments
- 4.12. Relative volume adjustment
- 4.13. Equalisation
- 4.14. Reverb
- 4.15. Attached picture
- 4.16. General encapsulated object
- 4.17. Play counter
- 4.18. Popularimeter
- 4.19. Recommended buffer size
- 4.20. Audio encryption
- 4.21. Linked information
- 4.22. Position synchronisation frame
- 4.23. Terms of use
- 4.24. Ownership frame
- 4.25. Commercial frame
- 4.26. Encryption method registration
- 4.27. Group identification registration
- 4.28. Private frame
- 5. The 'unsynchronisation scheme'
- 6. Copyright
- 7. References
- 8. Appendix
- A. Appendix A - Genre List from ID3v1
- 9. Author's Address
-
-
-2. Conventions in this document
-
- In the examples, text within "" is a text string exactly as it
- appears in a file. Numbers preceded with $ are hexadecimal and
- numbers preceded with % are binary. $xx is used to indicate a byte
- with unknown content. %x is used to indicate a bit with unknown
- content. The most significant bit (MSB) of a byte is called 'bit 7'
- and the least significant bit (LSB) is called 'bit 0'.
-
- A tag is the whole tag described in this document. A frame is a block
- of information in the tag. The tag consists of a header, frames and
- optional padding. A field is a piece of information; one value, a
- string etc. A numeric string is a string that consists of the
- characters 0-9 only.
-
-
-3. ID3v2 overview
-
- The two biggest design goals were to be able to implement ID3v2
- without disturbing old software too much and that ID3v2 should be
- as flexible and expandable as possible.
-
- The first criterion is met by the simple fact that the MPEG [MPEG]
- decoding software uses a syncsignal, embedded in the audiostream, to
- 'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid
- syncsignal, no software will attempt to play the tag. If, for any
- reason, coincidence make a syncsignal appear within the tag it will
- be taken care of by the 'unsynchronisation scheme' described in
- section 5.
-
- The second criterion has made a more noticeable impact on the design
- of the ID3v2 tag. It is constructed as a container for several
- information blocks, called frames, whose format need not be known to
- the software that encounters them. At the start of every frame there
- is an identifier that explains the frames' format and content, and a
- size descriptor that allows software to skip unknown frames.
-
- If a total revision of the ID3v2 tag should be needed, there is a
- version number and a size descriptor in the ID3v2 header.
-
- The ID3 tag described in this document is mainly targeted at files
- encoded with MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III
- and MPEG-2.5, but may work with other types of encoded audio.
-
- The bitorder in ID3v2 is most significant bit first (MSB). The
- byteorder in multibyte numbers is most significant byte first (e.g.
- $12345678 would be encoded $12 34 56 78).
-
- It is permitted to include padding after all the final frame (at the
- end of the ID3 tag), making the size of all the frames together
- smaller than the size given in the head of the tag. A possible
- purpose of this padding is to allow for adding a few additional
- frames or enlarge existing frames within the tag without having to
- rewrite the entire file. The value of the padding bytes must be $00.
-
-
-3.1. ID3v2 header
-
- The ID3v2 tag header, which should be the first information in the
- file, is 10 bytes as follows:
-
- ID3v2/file identifier "ID3"
- ID3v2 version $03 00
- ID3v2 flags %abc00000
- ID3v2 size 4 * %0xxxxxxx
-
- The first three bytes of the tag are always "ID3" to indicate that
- this is an ID3v2 tag, directly followed by the two version bytes. The
- first byte of ID3v2 version is it's major version, while the second
- byte is its revision number. In this case this is ID3v2.3.0. All
- revisions are backwards compatible while major versions are not. If
- software with ID3v2.2.0 and below support should encounter version
- three or higher it should simply ignore the whole tag. Version and
- revision will never be $FF.
-
- The version is followed by one the ID3v2 flags field, of which
- currently only three flags are used.
-
-
- a - Unsynchronisation
-
- Bit 7 in the 'ID3v2 flags' indicates whether or not
- unsynchronisation is used (see section 5 for details); a set bit
- indicates usage.
-
-
- b - Extended header
-
- The second bit (bit 6) indicates whether or not the header is
- followed by an extended header. The extended header is described in
- section 3.2.
-
-
- c - Experimental indicator
-
- The third bit (bit 5) should be used as an 'experimental
- indicator'. This flag should always be set when the tag is in an
- experimental stage.
-
- All the other flags should be cleared. If one of these undefined
- flags are set that might mean that the tag is not readable for a
- parser that does not know the flags function.
-
- The ID3v2 tag size is encoded with four bytes where the most
- significant bit (bit 7) is set to zero in every byte, making a total
- of 28 bits. The zeroed bits are ignored, so a 257 bytes long tag is
- represented as $00 00 02 01.
-
- The ID3v2 tag size is the size of the complete tag after
- unsychronisation, including padding, excluding the header but not
- excluding the extended header (total tag size - 10). Only 28 bits
- (representing up to 256MB) are used in the size description to avoid
- the introducuction of 'false syncsignals'.
-
- An ID3v2 tag can be detected with the following pattern:
- $49 44 33 yy yy xx zz zz zz zz
- Where yy is less than $FF, xx is the 'flags' byte and zz is less than
- $80.
-
-
-3.2. ID3v2 extended header
-
- The extended header contains information that is not vital to the
- correct parsing of the tag information, hence the extended header is
- optional.
-
- Extended header size $xx xx xx xx
- Extended Flags $xx xx
- Size of padding $xx xx xx xx
-
- Where the 'Extended header size', currently 6 or 10 bytes, excludes
- itself. The 'Size of padding' is simply the total tag size excluding
- the frames and the headers, in other words the padding. The extended
- header is considered separate from the header proper, and as such is
- subject to unsynchronisation.
-
- The extended flags are a secondary flag set which describes further
- attributes of the tag. These attributes are currently defined as
- follows
-
- %x0000000 00000000
-
-
- x - CRC data present
-
- If this flag is set four bytes of CRC-32 data is appended to the
- extended header. The CRC should be calculated before
- unsynchronisation on the data between the extended header and the
- padding, i.e. the frames and only the frames.
-
- Total frame CRC $xx xx xx xx
-
-
-3.3. ID3v2 frame overview
-
- As the tag consists of a tag header and a tag body with one or more
- frames, all the frames consists of a frame header followed by one or
- more fields containing the actual information. The layout of the
- frame header:
-
- Frame ID $xx xx xx xx (four characters)
- Size $xx xx xx xx
- Flags $xx xx
-
- The frame ID made out of the characters capital A-Z and 0-9.
- Identifiers beginning with "X", "Y" and "Z" are for experimental use
- and free for everyone to use, without the need to set the
- experimental bit in the tag header. Have in mind that someone else
- might have used the same identifier as you. All other identifiers are
- either used or reserved for future use.
-
- The frame ID is followed by a size descriptor, making a total header
- size of ten bytes in every frame. The size is calculated as frame
- size excluding frame header (frame size - 10).
-
- In the frame header the size descriptor is followed by two flags
- bytes. These flags are described in section 3.3.1.
-
- There is no fixed order of the frames' appearance in the tag,
- although it is desired that the frames are arranged in order of
- significance concerning the recognition of the file. An example of
- such order: UFID, TIT2, MCDI, TRCK ...
-
- A tag must contain at least one frame. A frame must be at least 1
- byte big, excluding the header.
-
- If nothing else is said a string is represented as ISO-8859-1
- [ISO-8859-1] characters in the range $20 - $FF. Such strings are
- represented as <text string>, or <full text string> if newlines are
- allowed, in the frame descriptions. All Unicode strings [UNICODE] use
- 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). Unicode strings
- must begin with the Unicode BOM ($FF FE or $FE FF) to identify the
- byte order.
-
- All numeric strings and URLs [URL] are always encoded as ISO-8859-1.
- Terminated strings are terminated with $00 if encoded with ISO-8859-1
- and $00 00 if encoded as unicode. If nothing else is said newline
- character is forbidden. In ISO-8859-1 a new line is represented, when
- allowed, with $0A only. Frames that allow different types of text
- encoding have a text encoding description byte directly after the
- frame size. If ISO-8859-1 is used this byte should be $00, if Unicode
- is used it should be $01. Strings dependent on encoding is
- represented as <text string according to encoding>, or <full text
- string according to encoding> if newlines are allowed. Any empty
- Unicode strings which are NULL-terminated may have the Unicode BOM
- followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).
-
- The three byte language field is used to describe the language of the
- frame's content, according to ISO-639-2 [ISO-639-2].
-
- All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt".
-
- If a frame is longer than it should be, e.g. having more fields than
- specified in this document, that indicates that additions to the
- frame have been made in a later version of the ID3v2 standard. This
- is reflected by the revision number in the header of the tag.
-
-
-3.3.1. Frame header flags
-
- In the frame header the size descriptor is followed by two flags
- bytes. All unused flags must be cleared. The first byte is for
- 'status messages' and the second byte is for encoding purposes. If an
- unknown flag is set in the first byte the frame may not be changed
- without the bit cleared. If an unknown flag is set in the second byte
- it is likely to not be readable. The flags field is defined as
- follows.
-
- %abc00000 %ijk00000
-
-
- a - Tag alter preservation
-
- This flag tells the software what to do with this frame if it is
- unknown and the tag is altered in any way. This applies to all
- kinds of alterations, including adding more padding and reordering
- the frames.
-
- 0 Frame should be preserved.
- 1 Frame should be discarded.
-
-
- b - File alter preservation
-
- This flag tells the software what to do with this frame if it is
- unknown and the file, excluding the tag, is altered. This does not
- apply when the audio is completely replaced with other audio data.
-
- 0 Frame should be preserved.
- 1 Frame should be discarded.
-
-
- c - Read only
-
- This flag, if set, tells the software that the contents of this
- frame is intended to be read only. Changing the contents might
- break something, e.g. a signature. If the contents are changed,
- without knowledge in why the frame was flagged read only and
- without taking the proper means to compensate, e.g. recalculating
- the signature, the bit should be cleared.
-
-
- i - Compression
-
- This flag indicates whether or not the frame is compressed.
-
- 0 Frame is not compressed.
- 1 Frame is compressed using zlib [zlib] with 4 bytes for
- 'decompressed size' appended to the frame header.
-
-
- j - Encryption
-
- This flag indicates wether or not the frame is enrypted. If set
- one byte indicating with which method it was encrypted will be
- appended to the frame header. See section 4.26. for more
- information about encryption method registration.
-
- 0 Frame is not encrypted.
- 1 Frame is encrypted.
-
-
- k - Grouping identity
-
- This flag indicates whether or not this frame belongs in a group
- with other frames. If set a group identifier byte is added to the
- frame header. Every frame with the same group identifier belongs
- to the same group.
-
- 0 Frame does not contain group information
- 1 Frame contains group information
-
-
- Some flags indicates that the frame header is extended with
- additional information. This information will be added to the frame
- header in the same order as the flags indicating the additions. I.e.
- the four bytes of decompressed size will preceed the encryption
- method byte. These additions to the frame header, while not included
- in the frame header size but are included in the 'frame size' field,
- are not subject to encryption or compression.
-
-
-3.3.2. Default flags
-
- The default settings for the frames described in this document can be
- divided into the following classes. The flags may be set differently
- if found more suitable by the software.
-
- 1. Discarded if tag is altered, discarded if file is altered.
-
- None.
-
- 2. Discarded if tag is altered, preserved if file is altered.
-
- None.
-
- 3. Preserved if tag is altered, discarded if file is altered.
-
- AENC, ETCO, EQUA, MLLT, POSS, SYLT, SYTC, RVAD, TENC, TLEN, TSIZ
-
- 4. Preserved if tag is altered, preserved if file is altered.
-
- The rest of the frames.
-
-
-4. Declared ID3v2 frames
-
- The following frames are declared in this draft.
-
- 4.21 AENC Audio encryption
- 4.15 APIC Attached picture
-
- 4.11 COMM Comments
- 4.25 COMR Commercial frame
-
- 4.26 ENCR Encryption method registration
- 4.13 EQUA Equalization
- 4.6 ETCO Event timing codes
-
- 4.16 GEOB General encapsulated object
- 4.27 GRID Group identification registration
-
- 4.4 IPLS Involved people list
-
- 4.21 LINK Linked information
-
- 4.5 MCDI Music CD identifier
- 4.7 MLLT MPEG location lookup table
-
- 4.24 OWNE Ownership frame
-
- 4.28. PRIV Private frame
- 4.17 PCNT Play counter
- 4.18 POPM Popularimeter
- 4.22 POSS Position synchronisation frame
-
- 4.19 RBUF Recommended buffer size
- 4.12 RVAD Relative volume adjustment
- 4.14 RVRB Reverb
-
- 4.10 SYLT Synchronized lyric/text
- 4.8 SYTC Synchronized tempo codes
-
- 4.2.1 TALB Album/Movie/Show title
- 4.2.1 TBPM BPM (beats per minute)
- 4.2.1 TCOM Composer
- 4.2.1 TCON Content type
- 4.2.1 TCOP Copyright message
- 4.2.1 TDAT Date
- 4.2.1 TDLY Playlist delay
- 4.2.1 TENC Encoded by
- 4.2.1 TEXT Lyricist/Text writer
- 4.2.1 TFLT File type
- 4.2.1 TIME Time
- 4.2.1 TIT1 Content group description
- 4.2.1 TIT2 Title/songname/content description
- 4.2.1 TIT3 Subtitle/Description refinement
- 4.2.1 TKEY Initial key
- 4.2.1 TLAN Language(s)
- 4.2.1 TLEN Length
- 4.2.1 TMED Media type
- 4.2.1 TOAL Original album/movie/show title
- 4.2.1 TOFN Original filename
- 4.2.1 TOLY Original lyricist(s)/text writer(s)
- 4.2.1 TOPE Original artist(s)/performer(s)
- 4.2.1 TORY Original release year
- 4.2.1 TOWN File owner/licensee
- 4.2.1 TPE1 Lead performer(s)/Soloist(s)
- 4.2.1 TPE2 Band/orchestra/accompaniment
- 4.2.1 TPE3 Conductor/performer refinement
- 4.2.1 TPE4 Interpreted, remixed, or otherwise modified by
- 4.2.1 TPOS Part of a set
- 4.2.1 TPUB Publisher
- 4.2.1 TRCK Track number/Position in set
- 4.2.1 TRDA Recording dates
- 4.2.1 TRSN Internet radio station name
- 4.2.1 TRSO Internet radio station owner
- 4.2.1 TSIZ Size
- 4.2.1 TSRC ISRC (international standard recording code)
- 4.2.1 TSSE Software/Hardware and settings used for encoding
- 4.2.1 TYER Year
- 4.2.2 TXXX User defined text information frame
-
- 4.1 UFID Unique file identifier
- 4.23 USER Terms of use
- 4.9 USLT Unsychronized lyric/text transcription
-
- 4.3.1 WCOM Commercial information
- 4.3.1 WCOP Copyright/Legal information
- 4.3.1 WOAF Official audio file webpage
- 4.3.1 WOAR Official artist/performer webpage
- 4.3.1 WOAS Official audio source webpage
- 4.3.1 WORS Official internet radio station homepage
- 4.3.1 WPAY Payment
- 4.3.1 WPUB Publishers official webpage
- 4.3.2 WXXX User defined URL link frame
-
-
-4.1. Unique file identifier
-
- This frame's purpose is to be able to identify the audio file in a
- database that may contain more information relevant to the content.
- Since standardisation of such a database is beyond this document, all
- frames begin with a null-terminated string with a URL [URL]
- containing an email address, or a link to a location where an email
- address can be found, that belongs to the organisation responsible
- for this specific database implementation. Questions regarding the
- database should be sent to the indicated email address. The URL
- should not be used for the actual database queries. The string
- "<a href="http://www.id3.org/dummy/ufid.html">http://www.id3.org/dummy/ufid.html</a>" should be used for tests.
- Software that isn't told otherwise may safely remove such frames. The
- 'Owner identifier' must be non-empty (more than just a termination).
- The 'Owner identifier' is then followed by the actual identifier,
- which may be up to 64 bytes. There may be more than one "UFID" frame
- in a tag, but only one with the same 'Owner identifier'.
-
- <Header for 'Unique file identifier', ID: "UFID">
- Owner identifier <text string> $00
- Identifier <up to 64 bytes binary data>
-
-
-4.2. Text information frames
-
- The text information frames are the most important frames, containing
- information like artist, album and more. There may only be one text
- information frame of its kind in an tag. If the textstring is
- followed by a termination ($00 (00)) all the following information
- should be ignored and not be displayed. All text frame identifiers
- begin with "T". Only text frame identifiers begin with "T", with the
- exception of the "TXXX" frame. All the text information frames have
- the following format:
-
- <Header for 'Text information frame', ID: "T000" - "TZZZ",
- excluding "TXXX" described in 4.2.2.>
- Text encoding $xx
- Information <text string according to encoding>
-
-
-4.2.1. Text information frames - details
-
- TALB
- The 'Album/Movie/Show title' frame is intended for the title of the
- recording(/source of sound) which the audio in the file is taken
- from.
-
- TBPM
- The 'BPM' frame contains the number of beats per minute in the
- mainpart of the audio. The BPM is an integer and represented as a
- numerical string.
-
- TCOM
- The 'Composer(s)' frame is intended for the name of the composer(s).
- They are seperated with the "/" character.
-
- TCON
- The 'Content type', which previously was stored as a one byte numeric
- value only, is now a numeric string. You may use one or several of
- the types as ID3v1.1 did or, since the category list would be
- impossible to maintain with accurate and up to date categories,
- define your own.
-
- References to the ID3v1 genres can be made by, as first byte, enter
- "(" followed by a number from the genres list (appendix A.) and
- ended with a ")" character. This is optionally followed by a
- refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be
- made in the same frame, e.g. "(51)(39)". If the refinement should
- begin with a "(" character it should be replaced with "((", e.g. "((I
- can figure out any genre)" or "(55)((I think...)". The following new
- content types is defined in ID3v2 and is implemented in the same way
- as the numerig content types, e.g. "(RX)".
-
- RX Remix
- CR Cover
-
- TCOP
- The 'Copyright message' frame, which must begin with a year and a
- space character (making five characters), is intended for the
- copyright holder of the original sound, not the audio file itself.
- The absence of this frame means only that the copyright information
- is unavailable or has been removed, and must not be interpreted to
- mean that the sound is public domain. Every time this field is
- displayed the field must be preceded with "Copyright " (C) " ", where
- (C) is one character showing a C in a circle.
-
- TDAT
- The 'Date' frame is a numeric string in the DDMM format containing
- the date for the recording. This field is always four characters
- long.
-
- TDLY
- The 'Playlist delay' defines the numbers of milliseconds of silence
- between every song in a playlist. The player should use the "ETC"
- frame, if present, to skip initial silence and silence at the end of
- the audio to match the 'Playlist delay' time. The time is represented
- as a numeric string.
-
- TENC
- The 'Encoded by' frame contains the name of the person or
- organisation that encoded the audio file. This field may contain a
- copyright message, if the audio file also is copyrighted by the
- encoder.
-
- TEXT
- The 'Lyricist(s)/Text writer(s)' frame is intended for the writer(s)
- of the text or lyrics in the recording. They are seperated with the
- "/" character.
-
- TFLT
- The 'File type' frame indicates which type of audio this tag defines.
- The following type and refinements are defined:
-
- MPG MPEG Audio
- /1 MPEG 1/2 layer I
- /2 MPEG 1/2 layer II
- /3 MPEG 1/2 layer III
- /2.5 MPEG 2.5
- /AAC Advanced audio compression
- VQF Transform-domain Weighted Interleave Vector Quantization
- PCM Pulse Code Modulated audio
-
- but other types may be used, not for these types though. This is used
- in a similar way to the predefined types in the "TMED" frame, but
- without parentheses. If this frame is not present audio type is
- assumed to be "MPG".
-
- TIME
- The 'Time' frame is a numeric string in the HHMM format containing
- the time for the recording. This field is always four characters
- long.
-
- TIT1
- The 'Content group description' frame is used if the sound belongs to
- a larger category of sounds/music. For example, classical music is
- often sorted in different musical sections (e.g. "Piano Concerto",
- "Weather - Hurricane").
-
- TIT2
- The 'Title/Songname/Content description' frame is the actual name of
- the piece (e.g. "Adagio", "Hurricane Donna").
-
- TIT3
- The 'Subtitle/Description refinement' frame is used for information
- directly related to the contents title (e.g. "Op. 16" or "Performed
- live at Wembley").
-
- TKEY
- The 'Initial key' frame contains the musical key in which the sound
- starts. It is represented as a string with a maximum length of three
- characters. The ground keys are represented with "A","B","C","D","E",
- "F" and "G" and halfkeys represented with "b" and "#". Minor is
- represented as "m". Example "Cbm". Off key is represented with an "o"
- only.
-
- TLAN
- The 'Language(s)' frame should contain the languages of the text or
- lyrics spoken or sung in the audio. The language is represented with
- three characters according to ISO-639-2. If more than one language is
- used in the text their language codes should follow according to
- their usage.
-
- TLEN
- The 'Length' frame contains the length of the audiofile in
- milliseconds, represented as a numeric string.
-
- TMED
- The 'Media type' frame describes from which media the sound
- originated. This may be a text string or a reference to the
- predefined media types found in the list below. References are made
- within "(" and ")" and are optionally followed by a text refinement,
- e.g. "(MC) with four channels". If a text refinement should begin
- with a "(" character it should be replaced with "((" in the same way
- as in the "TCO" frame. Predefined refinements is appended after the
- media type, e.g. "(CD/A)" or "(VID/PAL/VHS)".
-
- DIG Other digital media
- /A Analog transfer from media
-
- ANA Other analog media
- /WAC Wax cylinder
- /8CA 8-track tape cassette
-
- CD CD
- /A Analog transfer from media
- /DD DDD
- /AD ADD
- /AA AAD
-
- LD Laserdisc
- /A Analog transfer from media
-
- TT Turntable records
- /33 33.33 rpm
- /45 45 rpm
- /71 71.29 rpm
- /76 76.59 rpm
- /78 78.26 rpm
- /80 80 rpm
-
- MD MiniDisc
- /A Analog transfer from media
-
- DAT DAT
- /A Analog transfer from media
- /1 standard, 48 kHz/16 bits, linear
- /2 mode 2, 32 kHz/16 bits, linear
- /3 mode 3, 32 kHz/12 bits, nonlinear, low speed
- /4 mode 4, 32 kHz/12 bits, 4 channels
- /5 mode 5, 44.1 kHz/16 bits, linear
- /6 mode 6, 44.1 kHz/16 bits, 'wide track' play
-
- DCC DCC
- /A Analog transfer from media
-
- DVD DVD
- /A Analog transfer from media
-
- TV Television
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
-
- VID Video
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
- /VHS VHS
- /SVHS S-VHS
- /BETA BETAMAX
-
- RAD Radio
- /FM FM
- /AM AM
- /LW LW
- /MW MW
-
- TEL Telephone
- /I ISDN
-
- MC MC (normal cassette)
- /4 4.75 cm/s (normal speed for a two sided cassette)
- /9 9.5 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- REE Reel
- /9 9.5 cm/s
- /19 19 cm/s
- /38 38 cm/s
- /76 76 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- TOAL
- The 'Original album/movie/show title' frame is intended for the title
- of the original recording (or source of sound), if for example the
- music in the file should be a cover of a previously released song.
-
- TOFN
- The 'Original filename' frame contains the preferred filename for the
- file, since some media doesn't allow the desired length of the
- filename. The filename is case sensitive and includes its suffix.
-
- TOLY
- The 'Original lyricist(s)/text writer(s)' frame is intended for the
- text writer(s) of the original recording, if for example the music in
- the file should be a cover of a previously released song. The text
- writers are seperated with the "/" character.
-
- TOPE
- The 'Original artist(s)/performer(s)' frame is intended for the
- performer(s) of the original recording, if for example the music in
- the file should be a cover of a previously released song. The
- performers are seperated with the "/" character.
-
- TORY
- The 'Original release year' frame is intended for the year when the
- original recording, if for example the music in the file should be a
- cover of a previously released song, was released. The field is
- formatted as in the "TYER" frame.
-
- TOWN
- The 'File owner/licensee' frame contains the name of the owner or
- licensee of the file and it's contents.
-
- TPE1
- The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
- used for the main artist(s). They are seperated with the "/"
- character.
-
- TPE2
- The 'Band/Orchestra/Accompaniment' frame is used for additional
- information about the performers in the recording.
-
- TPE3
- The 'Conductor' frame is used for the name of the conductor.
-
- TPE4
- The 'Interpreted, remixed, or otherwise modified by' frame contains
- more information about the people behind a remix and similar
- interpretations of another existing piece.
-
- TPOS
- The 'Part of a set' frame is a numeric string that describes which
- part of a set the audio came from. This frame is used if the source
- described in the "TALB" frame is divided into several mediums, e.g. a
- double CD. The value may be extended with a "/" character and a
- numeric string containing the total number of parts in the set. E.g.
- "1/2".
-
- TPUB
- The 'Publisher' frame simply contains the name of the label or
- publisher.
-
- TRCK
- The 'Track number/Position in set' frame is a numeric string
- containing the order number of the audio-file on its original
- recording. This may be extended with a "/" character and a numeric
- string containing the total numer of tracks/elements on the original
- recording. E.g. "4/9".
-
- TRDA
- The 'Recording dates' frame is a intended to be used as complement to
- the "TYER", "TDAT" and "TIME" frames. E.g. "4th-7th June, 12th June"
- in combination with the "TYER" frame.
-
- TRSN
- The 'Internet radio station name' frame contains the name of the
- internet radio station from which the audio is streamed.
-
- TRSO
- The 'Internet radio station owner' frame contains the name of the
- owner of the internet radio station from which the audio is
- streamed.
-
- TSIZ
- The 'Size' frame contains the size of the audiofile in bytes,
- excluding the ID3v2 tag, represented as a numeric string.
-
- TSRC
- The 'ISRC' frame should contain the International Standard Recording
- Code [ISRC] (12 characters).
-
- TSSE
- The 'Software/Hardware and settings used for encoding' frame
- includes the used audio encoder and its settings when the file was
- encoded. Hardware refers to hardware encoders, not the computer on
- which a program was run.
-
- TYER
- The 'Year' frame is a numeric string with a year of the recording.
- This frames is always four characters long (until the year 10000).
-
-
-4.2.2. User defined text information frame
-
- This frame is intended for one-string text information concerning the
- audiofile in a similar way to the other "T"-frames. The frame body
- consists of a description of the string, represented as a terminated
- string, followed by the actual string. There may be more than one
- "TXXX" frame in each tag, but only one with the same description.
-
- <Header for 'User defined text information frame', ID: "TXXX">
- Text encoding $xx
- Description <text string according to encoding> $00 (00)
- Value <text string according to encoding>
-
-
-4.3. URL link frames
-
- With these frames dynamic data such as webpages with touring
- information, price information or plain ordinary news can be added to
- the tag. There may only be one URL [URL] link frame of its kind in an
- tag, except when stated otherwise in the frame description. If the
- textstring is followed by a termination ($00 (00)) all the following
- information should be ignored and not be displayed. All URL link
- frame identifiers begins with "W". Only URL link frame identifiers
- begins with "W". All URL link frames have the following format:
-
- <Header for 'URL link frame', ID: "W000" - "WZZZ", excluding "WXXX"
- described in 4.3.2.>
- URL <text string>
-
-
-4.3.1. URL link frames - details
-
- WCOM
- The 'Commercial information' frame is a URL pointing at a webpage
- with information such as where the album can be bought. There may be
- more than one "WCOM" frame in a tag, but not with the same content.
-
- WCOP
- The 'Copyright/Legal information' frame is a URL pointing at a
- webpage where the terms of use and ownership of the file is
- described.
-
- WOAF
- The 'Official audio file webpage' frame is a URL pointing at a file
- specific webpage.
-
- WOAR
- The 'Official artist/performer webpage' frame is a URL pointing at
- the artists official webpage. There may be more than one "WOAR" frame
- in a tag if the audio contains more than one performer, but not with
- the same content.
-
- WOAS
- The 'Official audio source webpage' frame is a URL pointing at the
- official webpage for the source of the audio file, e.g. a movie.
-
- WORS
- The 'Official internet radio station homepage' contains a URL
- pointing at the homepage of the internet radio station.
-
- WPAY
- The 'Payment' frame is a URL pointing at a webpage that will handle
- the process of paying for this file.
-
- WPUB
- The 'Publishers official webpage' frame is a URL pointing at the
- official wepage for the publisher.
-
-
-4.3.2. User defined URL link frame
-
- This frame is intended for URL [URL] links concerning the audiofile
- in a similar way to the other "W"-frames. The frame body consists
- of a description of the string, represented as a terminated string,
- followed by the actual URL. The URL is always encoded with ISO-8859-1
- [ISO-8859-1]. There may be more than one "WXXX" frame in each tag,
- but only one with the same description.
-
- <Header for 'User defined URL link frame', ID: "WXXX">
- Text encoding $xx
- Description <text string according to encoding> $00 (00)
- URL <text string>
-
-
-4.4. Involved people list
-
- Since there might be a lot of people contributing to an audio file in
- various ways, such as musicians and technicians, the 'Text
- information frames' are often insufficient to list everyone involved
- in a project. The 'Involved people list' is a frame containing the
- names of those involved, and how they were involved. The body simply
- contains a terminated string with the involvement directly followed
- by a terminated string with the involvee followed by a new
- involvement and so on. There may only be one "IPLS" frame in each
- tag.
-
- <Header for 'Involved people list', ID: "IPLS">
- Text encoding $xx
- People list strings <text strings according to encoding>
-
-
-4.5. Music CD identifier
-
- This frame is intended for music that comes from a CD, so that the CD
- can be identified in databases such as the CDDB [CDDB]. The frame
- consists of a binary dump of the Table Of Contents, TOC, from the CD,
- which is a header of 4 bytes and then 8 bytes/track on the CD plus 8
- bytes for the 'lead out' making a maximum of 804 bytes. The offset to
- the beginning of every track on the CD should be described with a
- four bytes absolute CD-frame address per track, and not with absolute
- time. This frame requires a present and valid "TRCK" frame, even if
- the CD's only got one track. There may only be one "MCDI" frame in
- each tag.
-
- <Header for 'Music CD identifier', ID: "MCDI">
- CD TOC <binary data>
-
-
-4.6. Event timing codes
-
- This frame allows synchronisation with key events in a song or sound.
- The header is:
-
- <Header for 'Event timing codes', ID: "ETCO">
- Time stamp format $xx
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
- Followed by a list of key events in the following format:
-
- Type of event $xx
- Time stamp $xx (xx ...)
-
- The 'Time stamp' is set to zero if directly at the beginning of the
- sound or after the previous event. All events should be sorted in
- chronological order. The type of event is as follows:
-
- $00 padding (has no meaning)
- $01 end of initial silence
- $02 intro start
- $03 mainpart start
- $04 outro start
- $05 outro end
- $06 verse start
- $07 refrain start
- $08 interlude start
- $09 theme start
- $0A variation start
- $0B key change
- $0C time change
- $0D momentary unwanted noise (Snap, Crackle & Pop)
- $0E sustained noise
- $0F sustained noise end
- $10 intro end
- $11 mainpart end
- $12 verse end
- $13 refrain end
- $14 theme end
-
- $15-$DF reserved for future use
-
- $E0-$EF not predefined sync 0-F
-
- $F0-$FC reserved for future use
-
- $FD audio end (start of silence)
- $FE audio file ends
- $FF one more byte of events follows (all the following bytes with
- the value $FF have the same function)
-
- Terminating the start events such as "intro start" is not required.
- The 'Not predefined sync's ($E0-EF) are for user events. You might
- want to synchronise your music to something, like setting of an
- explosion on-stage, turning on your screensaver etc.
-
- There may only be one "ETCO" frame in each tag.
-
-
-4.7. MPEG location lookup table
-
- To increase performance and accuracy of jumps within a MPEG [MPEG]
- audio file, frames with timecodes in different locations in the file
- might be useful. The ID3v2 frame includes references that the
- software can use to calculate positions in the file. After the frame
- header is a descriptor of how much the 'frame counter' should
- increase for every reference. If this value is two then the first
- reference points out the second frame, the 2nd reference the 4th
- frame, the 3rd reference the 6th frame etc. In a similar way the
- 'bytes between reference' and 'milliseconds between reference' points
- out bytes and milliseconds respectively.
-
- Each reference consists of two parts; a certain number of bits, as
- defined in 'bits for bytes deviation', that describes the difference
- between what is said in 'bytes between reference' and the reality and
- a certain number of bits, as defined in 'bits for milliseconds
- deviation', that describes the difference between what is said in
- 'milliseconds between reference' and the reality. The number of bits
- in every reference, i.e. 'bits for bytes deviation'+'bits for
- milliseconds deviation', must be a multiple of four. There may only
- be one "MLLT" frame in each tag.
-
- <Header for 'Location lookup table', ID: "MLLT">
- MPEG frames between reference $xx xx
- Bytes between reference $xx xx xx
- Milliseconds between reference $xx xx xx
- Bits for bytes deviation $xx
- Bits for milliseconds dev. $xx
-
- Then for every reference the following data is included;
-
- Deviation in bytes %xxx....
- Deviation in milliseconds %xxx....
-
-
-4.8. Synchronised tempo codes
-
- For a more accurate description of the tempo of a musical piece this
- frame might be used. After the header follows one byte describing
- which time stamp format should be used. Then follows one or more
- tempo codes. Each tempo code consists of one tempo part and one time
- part. The tempo is in BPM described with one or two bytes. If the
- first byte has the value $FF, one more byte follows, which is added
- to the first giving a range from 2 - 510 BPM, since $00 and $01 is
- reserved. $00 is used to describe a beat-free time period, which is
- not the same as a music-free time period. $01 is used to indicate one
- single beat-stroke followed by a beat-free period.
-
- The tempo descriptor is followed by a time stamp. Every time the
- tempo in the music changes, a tempo descriptor may indicate this for
- the player. All tempo descriptors should be sorted in chronological
- order. The first beat-stroke in a time-period is at the same time as
- the beat description occurs. There may only be one "SYTC" frame in
- each tag.
-
- <Header for 'Synchronised tempo codes', ID: "SYTC">
- Time stamp format $xx
- Tempo data <binary data>
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
-
-4.9. Unsychronised lyrics/text transcription
-
- This frame contains the lyrics of the song or a text transcription of
- other vocal activities. The head includes an encoding descriptor and
- a content descriptor. The body consists of the actual text. The
- 'Content descriptor' is a terminated string. If no descriptor is
- entered, 'Content descriptor' is $00 (00) only. Newline characters
- are allowed in the text. There may be more than one 'Unsynchronised
- lyrics/text transcription' frame in each tag, but only one with the
- same language and content descriptor.
-
- <Header for 'Unsynchronised lyrics/text transcription', ID: "USLT">
- Text encoding $xx
- Language $xx xx xx
- Content descriptor <text string according to encoding> $00 (00)
- Lyrics/text <full text string according to encoding>
-
-
-4.10. Synchronised lyrics/text
-
- This is another way of incorporating the words, said or sung lyrics,
- in the audio file as text, this time, however, in sync with the
- audio. It might also be used to describing events e.g. occurring on a
- stage or on the screen in sync with the audio. The header includes a
- content descriptor, represented with as terminated textstring. If no
- descriptor is entered, 'Content descriptor' is $00 (00) only.
-
- <Header for 'Synchronised lyrics/text', ID: "SYLT">
- Text encoding $xx
- Language $xx xx xx
- Time stamp format $xx
- Content type $xx
- Content descriptor <text string according to encoding> $00 (00)
-
-
- Encoding: $00 ISO-8859-1 [ISO-8859-1] character set is used => $00
- is sync identifier.
- $01 Unicode [UNICODE] character set is used => $00 00 is
- sync identifier.
-
- Content type: $00 is other
- $01 is lyrics
- $02 is text transcription
- $03 is movement/part name (e.g. "Adagio")
- $04 is events (e.g. "Don Quijote enters the stage")
- $05 is chord (e.g. "Bb F Fsus")
- $06 is trivia/'pop up' information
-
- Time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Abolute time means that every stamp contains the time from the
- beginning of the file.
-
- The text that follows the frame header differs from that of the
- unsynchronised lyrics/text transcription in one major way. Each
- syllable (or whatever size of text is considered to be convenient by
- the encoder) is a null terminated string followed by a time stamp
- denoting where in the sound file it belongs. Each sync thus has the
- following structure:
-
- Terminated text to be synced (typically a syllable)
- Sync identifier (terminator to above string) $00 (00)
- Time stamp $xx (xx ...)
-
- The 'time stamp' is set to zero or the whole sync is omitted if
- located directly at the beginning of the sound. All time stamps
- should be sorted in chronological order. The sync can be considered
- as a validator of the subsequent string.
-
- Newline ($0A) characters are allowed in all "SYLT" frames and should
- be used after every entry (name, event etc.) in a frame with the
- content type $03 - $04.
-
- A few considerations regarding whitespace characters: Whitespace
- separating words should mark the beginning of a new word, thus
- occurring in front of the first syllable of a new word. This is also
- valid for new line characters. A syllable followed by a comma should
- not be broken apart with a sync (both the syllable and the comma
- should be before the sync).
-
- An example: The "USLT" passage
-
- "Strangers in the night" $0A "Exchanging glances"
-
- would be "SYLT" encoded as:
-
- "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
- " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
- xx "glan" $00 xx xx "ces" $00 xx xx
-
- There may be more than one "SYLT" frame in each tag, but only one
- with the same language and content descriptor.
-
-
-4.11. Comments
-
- This frame is indended for any kind of full text information that
- does not fit in any other frame. It consists of a frame header
- followed by encoding, language and content descriptors and is ended
- with the actual comment as a text string. Newline characters are
- allowed in the comment text string. There may be more than one
- comment frame in each tag, but only one with the same language and
- content descriptor.
-
- <Header for 'Comment', ID: "COMM">
- Text encoding $xx
- Language $xx xx xx
- Short content descrip. <text string according to encoding> $00 (00)
- The actual text <full text string according to encoding>
-
-
-4.12. Relative volume adjustment
-
- This is a more subjective function than the previous ones. It allows
- the user to say how much he wants to increase/decrease the volume on
- each channel while the file is played. The purpose is to be able to
- align all files to a reference volume, so that you don't have to
- change the volume constantly. This frame may also be used to balance
- adjust the audio. If the volume peak levels are known then this could
- be described with the 'Peak volume right' and 'Peak volume left'
- field. If Peakvolume is not known these fields could be left zeroed
- or, if no other data follows, be completely omitted. There may only
- be one "RVAD" frame in each tag.
-
- <Header for 'Relative volume adjustment', ID: "RVAD">
- Increment/decrement %00xxxxxx
- Bits used for volume descr. $xx
- Relative volume change, right $xx xx (xx ...)
- Relative volume change, left $xx xx (xx ...)
- Peak volume right $xx xx (xx ...)
- Peak volume left $xx xx (xx ...)
-
- In the increment/decrement field bit 0 is used to indicate the right
- channel and bit 1 is used to indicate the left channel. 1 is
- increment and 0 is decrement.
-
- The 'bits used for volume description' field is normally $10 (16
- bits) for MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value
- may not be $00. The volume is always represented with whole bytes,
- padded in the beginning (highest bits) when 'bits used for volume
- description' is not a multiple of eight.
-
- This datablock is then optionally followed by a volume definition for
- the left and right back channels. If this information is appended to
- the frame the first two channels will be treated as front channels.
- In the increment/decrement field bit 2 is used to indicate the right
- back channel and bit 3 for the left back channel.
-
- Relative volume change, right back $xx xx (xx ...)
- Relative volume change, left back $xx xx (xx ...)
- Peak volume right back $xx xx (xx ...)
- Peak volume left back $xx xx (xx ...)
-
- If the center channel adjustment is present the following is appended
- to the existing frame, after the left and right back channels. The
- center channel is represented by bit 4 in the increase/decrease
- field.
-
- Relative volume change, center $xx xx (xx ...)
- Peak volume center $xx xx (xx ...)
-
- If the bass channel adjustment is present the following is appended
- to the existing frame, after the center channel. The bass channel is
- represented by bit 5 in the increase/decrease field.
-
- Relative volume change, bass $xx xx (xx ...)
- Peak volume bass $xx xx (xx ...)
-
-
-4.13. Equalisation
-
- This is another subjective, alignment frame. It allows the user to
- predefine an equalisation curve within the audio file. There may only
- be one "EQUA" frame in each tag.
-
- <Header of 'Equalisation', ID: "EQUA">
- Adjustment bits $xx
-
- The 'adjustment bits' field defines the number of bits used for
- representation of the adjustment. This is normally $10 (16 bits) for
- MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not be
- $00.
-
- This is followed by 2 bytes + ('adjustment bits' rounded up to the
- nearest byte) for every equalisation band in the following format,
- giving a frequency range of 0 - 32767Hz:
-
- Increment/decrement %x (MSB of the Frequency)
- Frequency (lower 15 bits)
- Adjustment $xx (xx ...)
-
- The increment/decrement bit is 1 for increment and 0 for decrement.
- The equalisation bands should be ordered increasingly with reference
- to frequency. All frequencies don't have to be declared. The
- equalisation curve in the reading software should be interpolated
- between the values in this frame. Three equal adjustments for three
- subsequent frequencies. A frequency should only be described once in
- the frame.
-
-
-4.14. Reverb
-
- Yet another subjective one. You may here adjust echoes of different
- kinds. Reverb left/right is the delay between every bounce in ms.
- Reverb bounces left/right is the number of bounces that should be
- made. $FF equals an infinite number of bounces. Feedback is the
- amount of volume that should be returned to the next echo bounce. $00
- is 0%, $FF is 100%. If this value were $7F, there would be 50% volume
- reduction on the first bounce, 50% of that on the second and so on.
- Left to left means the sound from the left bounce to be played in the
- left speaker, while left to right means sound from the left bounce to
- be played in the right speaker.
-
- 'Premix left to right' is the amount of left sound to be mixed in the
- right before any reverb is applied, where $00 id 0% and $FF is 100%.
- 'Premix right to left' does the same thing, but right to left.
- Setting both premix to $FF would result in a mono output (if the
- reverb is applied symmetric). There may only be one "RVRB" frame in
- each tag.
-
- <Header for 'Reverb', ID: "RVRB">
- Reverb left (ms) $xx xx
- Reverb right (ms) $xx xx
- Reverb bounces, left $xx
- Reverb bounces, right $xx
- Reverb feedback, left to left $xx
- Reverb feedback, left to right $xx
- Reverb feedback, right to right $xx
- Reverb feedback, right to left $xx
- Premix left to right $xx
- Premix right to left $xx
-
-
-4.15. Attached picture
-
- This frame contains a picture directly related to the audio file.
- Image format is the MIME type and subtype [MIME] for the image. In
- the event that the MIME media type name is omitted, "image/" will be
- implied. The "image/png" [PNG] or "image/jpeg" [JFIF] picture format
- should be used when interoperability is wanted. Description is a
- short description of the picture, represented as a terminated
- textstring. The description has a maximum length of 64 characters,
- but may be empty. There may be several pictures attached to one file,
- each in their individual "APIC" frame, but only one with the same
- content descriptor. There may only be one picture with the picture
- type declared as picture type $01 and $02 respectively. There is the
- possibility to put only a link to the image file by using the 'MIME
- type' "-->" and having a complete URL [URL] instead of picture data.
- The use of linked files should however be used sparingly since there
- is the risk of separation of files.
-
- <Header for 'Attached picture', ID: "APIC">
- Text encoding $xx
- MIME type <text string> $00
- Picture type $xx
- Description <text string according to encoding> $00 (00)
- Picture data <binary data>
-
-
- Picture type: $00 Other
- $01 32x32 pixels 'file icon' (PNG only)
- $02 Other file icon
- $03 Cover (front)
- $04 Cover (back)
- $05 Leaflet page
- $06 Media (e.g. lable side of CD)
- $07 Lead artist/lead performer/soloist
- $08 Artist/performer
- $09 Conductor
- $0A Band/Orchestra
- $0B Composer
- $0C Lyricist/text writer
- $0D Recording Location
- $0E During recording
- $0F During performance
- $10 Movie/video screen capture
- $11 A bright coloured fish
- $12 Illustration
- $13 Band/artist logotype
- $14 Publisher/Studio logotype
-
-
-4.16. General encapsulated object
-
- In this frame any type of file can be encapsulated. After the header,
- 'Frame size' and 'Encoding' follows 'MIME type' [MIME] represented as
- as a terminated string encoded with ISO 8859-1 [ISO-8859-1]. The
- filename is case sensitive and is encoded as 'Encoding'. Then follows
- a content description as terminated string, encoded as 'Encoding'.
- The last thing in the frame is the actual object. The first two
- strings may be omitted, leaving only their terminations. MIME type is
- always an ISO-8859-1 text string. There may be more than one "GEOB"
- frame in each tag, but only one with the same content descriptor.
-
- <Header for 'General encapsulated object', ID: "GEOB">
- Text encoding $xx
- MIME type <text string> $00
- Filename <text string according to encoding> $00 (00)
- Content description <text string according to encóding> $00 (00)
- Encapsulated object <binary data>
-
-
-4.17. Play counter
-
- This is simply a counter of the number of times a file has been
- played. The value is increased by one every time the file begins to
- play. There may only be one "PCNT" frame in each tag. When the
- counter reaches all one's, one byte is inserted in front of the
- counter thus making the counter eight bits bigger. The counter must
- be at least 32-bits long to begin with.
-
- <Header for 'Play counter', ID: "PCNT">
- Counter $xx xx xx xx (xx ...)
-
-
-4.18. Popularimeter
-
- The purpose of this frame is to specify how good an audio file is.
- Many interesting applications could be found to this frame such as a
- playlist that features better audiofiles more often than others or it
- could be used to profile a person's taste and find other 'good' files
- by comparing people's profiles. The frame is very simple. It contains
- the email address to the user, one rating byte and a four byte play
- counter, intended to be increased with one for every time the file is
- played. The email is a terminated string. The rating is 1-255 where
- 1 is worst and 255 is best. 0 is unknown. If no personal counter is
- wanted it may be omitted. When the counter reaches all one's, one
- byte is inserted in front of the counter thus making the counter
- eight bits bigger in the same away as the play counter ("PCNT").
- There may be more than one "POPM" frame in each tag, but only one
- with the same email address.
-
- <Header for 'Popularimeter', ID: "POPM">
- Email to user <text string> $00
- Rating $xx
- Counter $xx xx xx xx (xx ...)
-
-
-4.19. Recommended buffer size
-
- Sometimes the server from which a audio file is streamed is aware of
- transmission or coding problems resulting in interruptions in the
- audio stream. In these cases, the size of the buffer can be
- recommended by the server using this frame. If the 'embedded info
- flag' is true (1) then this indicates that an ID3 tag with the
- maximum size described in 'Buffer size' may occur in the audiostream.
- In such case the tag should reside between two MPEG [MPEG] frames, if
- the audio is MPEG encoded. If the position of the next tag is known,
- 'offset to next tag' may be used. The offset is calculated from the
- end of tag in which this frame resides to the first byte of the
- header in the next. This field may be omitted. Embedded tags are
- generally not recommended since this could render unpredictable
- behaviour from present software/hardware.
-
- For applications like streaming audio it might be an idea to embed
- tags into the audio stream though. If the clients connects to
- individual connections like HTTP and there is a possibility to begin
- every transmission with a tag, then this tag should include a
- 'recommended buffer size' frame. If the client is connected to a
- arbitrary point in the stream, such as radio or multicast, then the
- 'recommended buffer size' frame should be included in every tag.
- Every tag that is picked up after the initial/first tag is to be
- considered as an update of the previous one. E.g. if there is a
- "TIT2" frame in the first received tag and one in the second tag,
- then the first should be 'replaced' with the second.
-
- The 'Buffer size' should be kept to a minimum. There may only be one
- "RBUF" frame in each tag.
-
- <Header for 'Recommended buffer size', ID: "RBUF">
- Buffer size $xx xx xx
- Embedded info flag %0000000x
- Offset to next tag $xx xx xx xx
-
-
-4.20. Audio encryption
-
- This frame indicates if the actual audio stream is encrypted, and by
- whom. Since standardisation of such encrypion scheme is beyond this
- document, all "AENC" frames begin with a terminated string with a
- URL containing an email address, or a link to a location where an
- email address can be found, that belongs to the organisation
- responsible for this specific encrypted audio file. Questions
- regarding the encrypted audio should be sent to the email address
- specified. If a $00 is found directly after the 'Frame size' and the
- audiofile indeed is encrypted, the whole file may be considered
- useless.
-
- After the 'Owner identifier', a pointer to an unencrypted part of the
- audio can be specified. The 'Preview start' and 'Preview length' is
- described in frames. If no part is unencrypted, these fields should
- be left zeroed. After the 'preview length' field follows optionally a
- datablock required for decryption of the audio. There may be more
- than one "AENC" frames in a tag, but only one with the same 'Owner
- identifier'.
-
- <Header for 'Audio encryption', ID: "AENC">
- Owner identifier <text string> $00
- Preview start $xx xx
- Preview length $xx xx
- Encryption info <binary data>
-
-
-4.21. Linked information
-
- To keep space waste as low as possible this frame may be used to link
- information from another ID3v2 tag that might reside in another audio
- file or alone in a binary file. It is recommended that this method is
- only used when the files are stored on a CD-ROM or other
- circumstances when the risk of file seperation is low. The frame
- contains a frame identifier, which is the frame that should be linked
- into this tag, a URL [URL] field, where a reference to the file where
- the frame is given, and additional ID data, if needed. Data should be
- retrieved from the first tag found in the file to which this link
- points. There may be more than one "LINK" frame in a tag, but only
- one with the same contents. A linked frame is to be considered as
- part of the tag and has the same restrictions as if it was a physical
- part of the tag (i.e. only one "RVRB" frame allowed, whether it's
- linked or not).
-
- <Header for 'Linked information', ID: "LINK">
- Frame identifier $xx xx xx
- URL <text string> $00
- ID and additional data <text string(s)>
-
- Frames that may be linked and need no additional data are "IPLS",
- "MCID", "ETCO", "MLLT", "SYTC", "RVAD", "EQUA", "RVRB", "RBUF", the
- text information frames and the URL link frames.
-
- The "TXXX", "APIC", "GEOB" and "AENC" frames may be linked with
- the content descriptor as additional ID data.
-
- The "COMM", "SYLT" and "USLT" frames may be linked with three bytes
- of language descriptor directly followed by a content descriptor as
- additional ID data.
-
-
-4.22. Position synchronisation frame
-
- This frame delivers information to the listener of how far into the
- audio stream he picked up; in effect, it states the time offset of
- the first frame in the stream. The frame layout is:
-
- <Head for 'Position synchronisation', ID: "POSS">
- Time stamp format $xx
- Position $xx (xx ...)
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- and position is where in the audio the listener starts to receive,
- i.e. the beginning of the next frame. If this frame is used in the
- beginning of a file the value is always 0. There may only be one
- "POSS" frame in each tag.
-
-
-4.23. Terms of use frame
-
- This frame contains a brief description of the terms of use and
- ownership of the file. More detailed information concerning the legal
- terms might be available through the "WCOP" frame. Newlines are
- allowed in the text. There may only be one "USER" frame in a tag.
-
- <Header for 'Terms of use frame', ID: "USER">
- Text encoding $xx
- Language $xx xx xx
- The actual text <text string according to encoding>
-
-
-4.24. Ownership frame
-
- The ownership frame might be used as a reminder of a made transaction
- or, if signed, as proof. Note that the "USER" and "TOWN" frames are
- good to use in conjunction with this one. The frame begins, after the
- frame ID, size and encoding fields, with a 'price payed' field. The
- first three characters of this field contains the currency used for
- the transaction, encoded according to ISO 4217 [ISO-4217] alphabetic
- currency code. Concatenated to this is the actual price payed, as a
- numerical string using "." as the decimal separator. Next is an 8
- character date string (YYYYMMDD) followed by a string with the name
- of the seller as the last field in the frame. There may only be one
- "OWNE" frame in a tag.
-
- <Header for 'Ownership frame', ID: "OWNE">
- Text encoding $xx
- Price payed <text string> $00
- Date of purch. <text string>
- Seller <text string according to encoding>
-
-
-4.25. Commercial frame
-
- This frame enables several competing offers in the same tag by
- bundling all needed information. That makes this frame rather complex
- but it's an easier solution than if one tries to achieve the same
- result with several frames. The frame begins, after the frame ID,
- size and encoding fields, with a price string field. A price is
- constructed by one three character currency code, encoded according
- to ISO 4217 [ISO-4217] alphabetic currency code, followed by a
- numerical value where "." is used as decimal seperator. In the price
- string several prices may be concatenated, seperated by a "/"
- character, but there may only be one currency of each type.
-
- The price string is followed by an 8 character date string in the
- format YYYYMMDD, describing for how long the price is valid. After
- that is a contact URL, with which the user can contact the seller,
- followed by a one byte 'received as' field. It describes how the
- audio is delivered when bought according to the following list:
-
- $00 Other
- $01 Standard CD album with other songs
- $02 Compressed audio on CD
- $03 File over the Internet
- $04 Stream over the Internet
- $05 As note sheets
- $06 As note sheets in a book with other sheets
- $07 Music on other media
- $08 Non-musical merchandise
-
- Next follows a terminated string with the name of the seller followed
- by a terminated string with a short description of the product. The
- last thing is the ability to include a company logotype. The first of
- them is the 'Picture MIME type' field containing information about
- which picture format is used. In the event that the MIME media type
- name is omitted, "image/" will be implied. Currently only "image/png"
- and "image/jpeg" are allowed. This format string is followed by the
- binary picture data. This two last fields may be omitted if no
- picture is to attach.
-
- <Header for 'Commercial frame', ID: "COMR">
- Text encoding $xx
- Price string <text string> $00
- Valid until <text string>
- Contact URL <text string> $00
- Received as $xx
- Name of seller <text string according to encoding> $00 (00)
- Description <text string according to encoding> $00 (00)
- Picture MIME type <string> $00
- Seller logo <binary data>
-
-
-4.26. Encryption method registration
-
- To identify with which method a frame has been encrypted the
- encryption method must be registered in the tag with this frame. The
- 'Owner identifier' is a null-terminated string with a URL [URL]
- containing an email address, or a link to a location where an email
- address can be found, that belongs to the organisation responsible
- for this specific encryption method. Questions regarding the
- encryption method should be sent to the indicated email address. The
- 'Method symbol' contains a value that is associated with this method
- throughout the whole tag. Values below $80 are reserved. The 'Method
- symbol' may optionally be followed by encryption specific data. There
- may be several "ENCR" frames in a tag but only one containing the
- same symbol and only one containing the same owner identifier. The
- method must be used somewhere in the tag. See section 3.3.1, flag j
- for more information.
-
- <Header for 'Encryption method registration', ID: "ENCR">
- Owner identifier <text string> $00
- Method symbol $xx
- Encryption data <binary data>
-
-
-4.27. Group identification registration
-
- This frame enables grouping of otherwise unrelated frames. This can
- be used when some frames are to be signed. To identify which frames
- belongs to a set of frames a group identifier must be registered in
- the tag with this frame. The 'Owner identifier' is a null-terminated
- string with a URL [URL] containing an email address, or a link to a
- location where an email address can be found, that belongs to the
- organisation responsible for this grouping. Questions regarding the
- grouping should be sent to the indicated email address. The 'Group
- symbol' contains a value that associates the frame with this group
- throughout the whole tag. Values below $80 are reserved. The 'Group
- symbol' may optionally be followed by some group specific data, e.g.
- a digital signature. There may be several "GRID" frames in a tag but
- only one containing the same symbol and only one containing the same
- owner identifier. The group symbol must be used somewhere in the tag.
- See section 3.3.1, flag j for more information.
-
- <Header for 'Group ID registration', ID: "GRID">
- Owner identifier <text string> $00
- Group symbol $xx
- Group dependent data <binary data>
-
-
-4.28. Private frame
-
- This frame is used to contain information from a software producer
- that its program uses and does not fit into the other frames. The
- frame consists of an 'Owner identifier' string and the binary data.
- The 'Owner identifier' is a null-terminated string with a URL [URL]
- containing an email address, or a link to a location where an email
- address can be found, that belongs to the organisation responsible
- for the frame. Questions regarding the frame should be sent to the
- indicated email address. The tag may contain more than one "PRIV"
- frame but only with different contents. It is recommended to keep the
- number of "PRIV" frames as low as possible.
-
- <Header for 'Private frame', ID: "PRIV">
- Owner identifier <text string> $00
- The private data <binary data>
-
-
-5. The 'unsynchronisation scheme'
-
- The only purpose of the 'unsynchronisation scheme' is to make the
- ID3v2 tag as compatible as possible with existing software. There is
- no use in 'unsynchronising' tags if the file is only to be processed
- by new software. Unsynchronisation may only be made with MPEG 2 layer
- I, II and III and MPEG 2.5 files.
-
- Whenever a false synchronisation is found within the tag, one zeroed
- byte is inserted after the first false synchronisation byte. The
- format of a correct sync that should be altered by ID3 encoders is as
- follows:
-
- %11111111 111xxxxx
-
- And should be replaced with:
-
- %11111111 00000000 111xxxxx
-
- This has the side effect that all $FF 00 combinations have to be
- altered, so they won't be affected by the decoding process. Therefore
- all the $FF 00 combinations have to be replaced with the $FF 00 00
- combination during the unsynchronisation.
-
- To indicate usage of the unsynchronisation, the first bit in 'ID3
- flags' should be set. This bit should only be set if the tag
- contains a, now corrected, false synchronisation. The bit should
- only be clear if the tag does not contain any false synchronisations.
-
- Do bear in mind, that if a compression scheme is used by the encoder,
- the unsynchronisation scheme should be applied *afterwards*. When
- decoding a compressed, 'unsynchronised' file, the 'unsynchronisation
- scheme' should be parsed first, decompression afterwards.
-
- If the last byte in the tag is $FF, and there is a need to eliminate
- false synchronisations in the tag, at least one byte of padding
- should be added.
-
-
-6. Copyright
-
- Copyright (C) Martin Nilsson 1998. All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that a reference to this document is included on all
- such copies and derivative works. However, this document itself may
- not be modified in any way and reissued as the original document.
-
- The limited permissions granted above are perpetual and will not be
- revoked.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-7. References
-
- [CDDB] Compact Disc Data Base
-
- http://www.cddb.com
-
- [ID3v2] Martin Nilsson, "ID3v2 informal standard".
-
- http://www.id3lib.org/id3/id3v2-00.txt
-
- [ISO-639-2] ISO/FDIS 639-2.
- Codes for the representation of names of languages, Part 2: Alpha-3
- code. Technical committee / subcommittee: TC 37 / SC 2
-
- [ISO-4217] ISO 4217:1995.
- Codes for the representation of currencies and funds.
- Technical committee / subcommittee: TC 68
-
- [ISO-8859-1] ISO/IEC DIS 8859-1.
- 8-bit single-byte coded graphic character sets, Part 1: Latin
- alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2
-
- [ISRC] ISO 3901:1986
- International Standard Recording Code (ISRC).
- Technical committee / subcommittee: TC 46 / SC 9
-
- [JFIF] JPEG File Interchange Format, version 1.02
-
- http://www.w3.org/Graphics/JPEG/jfif.txt">http://www.w3.org/Graphics/JPEG/jfif.txt
-
- [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
- Extensions (MIME) Part One: Format of Internet Message Bodies",
- RFC 2045, November 1996.
-
- ftp://ftp.isi.edu/in-notes/rfc2045.txt">ftp://ftp.isi.edu/in-notes/rfc2045.txt
-
- [MPEG] ISO/IEC 11172-3:1993.
- Coding of moving pictures and associated audio for digital storage
- media at up to about 1,5 Mbit/s, Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC 13818-3:1995
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC DIS 13818-3
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio (Revision of ISO/IEC 13818-3:1995)
-
-
- [PNG] Portable Network Graphics, version 1.0
-
- http://www.w3.org/TR/REC-png-multi.html
-
- [UNICODE] ISO/IEC 10646-1:1993.
- Universal Multiple-Octet Coded Character Set (UCS), Part 1:
- Architecture and Basic Multilingual Plane.
- Technical committee / subcommittee: JTC 1 / SC 2
-
- http://www.unicode.org/
-
- [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource
- Locators (URL).", RFC 1738, December 1994.
-
- ftp://ftp.isi.edu/in-notes/rfc1738.txt
-
- [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, "ZLIB
- Compressed
- Data Format Specification version 3.3", RFC 1950, May 1996.
-
- ftp://ftp.isi.edu/in-notes/rfc1950.txt
-
-
-8. Appendix
-
-
-A. Appendix A - Genre List from ID3v1
-
- The following genres is defined in ID3v1
-
- 0.Blues
- 1.Classic Rock
- 2.Country
- 3.Dance
- 4.Disco
- 5.Funk
- 6.Grunge
- 7.Hip-Hop
- 8.Jazz
- 9.Metal
- 10.New Age
- 11.Oldies
- 12.Other
- 13.Pop
- 14.R&B
- 15.Rap
- 16.Reggae
- 17.Rock
- 18.Techno
- 19.Industrial
- 20.Alternative
- 21.Ska
- 22.Death Metal
- 23.Pranks
- 24.Soundtrack
- 25.Euro-Techno
- 26.Ambient
- 27.Trip-Hop
- 28.Vocal
- 29.Jazz+Funk
- 30.Fusion
- 31.Trance
- 32.Classical
- 33.Instrumental
- 34.Acid
- 35.House
- 36.Game
- 37.Sound Clip
- 38.Gospel
- 39.Noise
- 40.AlternRock
- 41.Bass
- 42.Soul
- 43.Punk
- 44.Space
- 45.Meditative
- 46.Instrumental Pop
- 47.Instrumental Rock
- 48.Ethnic
- 49.Gothic
- 50.Darkwave
- 51.Techno-Industrial
- 52.Electronic
- 53.Pop-Folk
- 54.Eurodance
- 55.Dream
- 56.Southern Rock
- 57.Comedy
- 58.Cult
- 59.Gangsta
- 60.Top 40
- 61.Christian Rap
- 62.Pop/Funk
- 63.Jungle
- 64.Native American
- 65.Cabaret
- 66.New Wave
- 67.Psychadelic
- 68.Rave
- 69.Showtunes
- 70.Trailer
- 71.Lo-Fi
- 72.Tribal
- 73.Acid Punk
- 74.Acid Jazz
- 75.Polka
- 76.Retro
- 77.Musical
- 78.Rock & Roll
- 79.Hard Rock
-
- The following genres are Winamp extensions
-
- 80.Folk
- 81.Folk-Rock
- 82.National Folk
- 83.Swing
- 84.Fast Fusion
- 85.Bebob
- 86.Latin
- 87.Revival
- 88.Celtic
- 89.Bluegrass
- 90.Avantgarde
- 91.Gothic Rock
- 92.Progressive Rock
- 93.Psychedelic Rock
- 94.Symphonic Rock
- 95.Slow Rock
- 96.Big Band
- 97.Chorus
- 98.Easy Listening
- 99.Acoustic
- 100.Humour
- 101.Speech
- 102.Chanson
- 103.Opera
- 104.Chamber Music
- 105.Sonata
- 106.Symphony
- 107.Booty Bass
- 108.Primus
- 109.Porn Groove
- 110.Satire
- 111.Slow Jam
- 112.Club
- 113.Tango
- 114.Samba
- 115.Folklore
- 116.Ballad
- 117.Power Ballad
- 118.Rhythmic Soul
- 119.Freestyle
- 120.Duet
- 121.Punk Rock
- 122.Drum Solo
- 123.Acapella
- 124.Euro-House
- 125.Dance Hall
-
-
-9. Author's Address
-
- Written by
-
- Martin Nilsson
- Rydsvägen 246 C. 30
- S-584 34 Linköping
- Sweden
-
- Email: nilsson@id3.org
-
-
- Edited by
-
- Dirk Mahoney
- 57 Pechey Street
- Chermside Q
- Australia 4032
-
- Email: dirk@id3.org
-
-
- Johan Sundström
- Alsättersgatan 5 A. 34
- S-584 35 Linköping
- Sweden
-
- Email: johan@id3.org
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-frames.txt b/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-frames.txt
deleted file mode 100644
index 457acaa25c..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-frames.txt
+++ /dev/null
@@ -1,1734 +0,0 @@
-$Id: id3v2.4.0-frames.txt 168944 2002-07-26 20:59:59Z wheeler $
-
-Informal standard M. Nilsson
-Document: id3v2.4.0-frames.txt 1st November 2000
-
-
- ID3 tag version 2.4.0 - Native Frames
-
-Status of this document
-
- This document is an informal standard and replaces the ID3v2.3.0
- standard [ID3v2]. A formal standard will use another revision number
- even if the content is identical to document. The contents in this
- document may change for clarifications but never for added or altered
- functionallity.
-
- Distribution of this document is unlimited.
-
-
-Abstract
-
- This document describes the frames natively supported by ID3v2.4.0,
- which is a revised version of the ID3v2 informal standard [ID3v2.3.0]
- version 2.3.0. The ID3v2 offers a flexible way of storing audio meta
- information within audio file itself. The information may be
- technical information, such as equalisation curves, as well as title,
- performer, copyright etc.
-
- ID3v2.4.0 is meant to be as close as possible to ID3v2.3.0 in order
- to allow for implementations to be revised as easily as possible.
-
-
-1. Table of contents
-
- 2. Conventions in this document
- 3. Default flags
- 4. Declared ID3v2 frames
- 4.1. Unique file identifier
- 4.2. Text information frames
- 4.2.1. Identification frames
- 4.2.2. Involved persons frames
- 4.2.3. Derived and subjective properties frames
- 4.2.4. Rights and license frames
- 4.2.5. Other text frames
- 4.2.6. User defined text information frame
- 4.3. URL link frames
- 4.3.1. URL link frames - details
- 4.3.2. User defined URL link frame
- 4.4. Music CD Identifier
- 4.5. Event timing codes
- 4.6. MPEG location lookup table
- 4.7. Synced tempo codes
- 4.8. Unsynchronised lyrics/text transcription
- 4.9. Synchronised lyrics/text
- 4.10. Comments
- 4.11. Relative volume adjustment (2)
- 4.12. Equalisation (2)
- 4.13. Reverb
- 4.14. Attached picture
- 4.15. General encapsulated object
- 4.16. Play counter
- 4.17. Popularimeter
- 4.18. Recommended buffer size
- 4.19. Audio encryption
- 4.20. Linked information
- 4.21. Position synchronisation frame
- 4.22. Terms of use
- 4.23. Ownership frame
- 4.24. Commercial frame
- 4.25. Encryption method registration
- 4.26. Group identification registration
- 4.27. Private frame
- 4.28. Signature frame
- 4.29. Seek frame
- 4.30. Audio seek point index
- 5. Copyright
- 6. References
- 7. Appendix
- A. Appendix A - Genre List from ID3v1
- 8. Author's Address
-
-
-2. Conventions in this document
-
- Text within "" is a text string exactly as it appears in a tag.
- Numbers preceded with $ are hexadecimal and numbers preceded with %
- are binary. $xx is used to indicate a byte with unknown content. %x
- is used to indicate a bit with unknown content. The most significant
- bit (MSB) of a byte is called 'bit 7' and the least significant bit
- (LSB) is called 'bit 0'.
-
- A tag is the whole tag described the ID3v2 main structure document
- [ID3v2-strct]. A frame is a block of information in the tag. The tag
- consists of a header, frames and optional padding. A field is a piece
- of information; one value, a string etc. A numeric string is a string
- that consists of the characters "0123456789" only.
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119 [KEYWORDS].
-
-
-3. Default flags
-
- The default settings for the frames described in this document can be
- divided into the following classes. The flags may be set differently
- if found more suitable by the software.
-
- 1. Discarded if tag is altered, discarded if file is altered.
-
- None.
-
- 2. Discarded if tag is altered, preserved if file is altered.
-
- None.
-
- 3. Preserved if tag is altered, discarded if file is altered.
-
- ASPI, AENC, ETCO, EQU2, MLLT, POSS, SEEK, SYLT, SYTC, RVA2, TENC,
- TLEN
-
- 4. Preserved if tag is altered, preserved if file is altered.
-
- The rest of the frames.
-
-
-4. Declared ID3v2 frames
-
- The following frames are declared in this draft.
-
- 4.19 AENC Audio encryption
- 4.14 APIC Attached picture
- 4.30 ASPI Audio seek point index
-
- 4.10 COMM Comments
- 4.24 COMR Commercial frame
-
- 4.25 ENCR Encryption method registration
- 4.12 EQU2 Equalisation (2)
- 4.5 ETCO Event timing codes
-
- 4.15 GEOB General encapsulated object
- 4.26 GRID Group identification registration
-
- 4.20 LINK Linked information
-
- 4.4 MCDI Music CD identifier
- 4.6 MLLT MPEG location lookup table
-
- 4.23 OWNE Ownership frame
-
- 4.27 PRIV Private frame
- 4.16 PCNT Play counter
- 4.17 POPM Popularimeter
- 4.21 POSS Position synchronisation frame
-
- 4.18 RBUF Recommended buffer size
- 4.11 RVA2 Relative volume adjustment (2)
- 4.13 RVRB Reverb
-
- 4.29 SEEK Seek frame
- 4.28 SIGN Signature frame
- 4.9 SYLT Synchronised lyric/text
- 4.7 SYTC Synchronised tempo codes
-
- 4.2.1 TALB Album/Movie/Show title
- 4.2.3 TBPM BPM (beats per minute)
- 4.2.2 TCOM Composer
- 4.2.3 TCON Content type
- 4.2.4 TCOP Copyright message
- 4.2.5 TDEN Encoding time
- 4.2.5 TDLY Playlist delay
- 4.2.5 TDOR Original release time
- 4.2.5 TDRC Recording time
- 4.2.5 TDRL Release time
- 4.2.5 TDTG Tagging time
- 4.2.2 TENC Encoded by
- 4.2.2 TEXT Lyricist/Text writer
- 4.2.3 TFLT File type
- 4.2.2 TIPL Involved people list
- 4.2.1 TIT1 Content group description
- 4.2.1 TIT2 Title/songname/content description
- 4.2.1 TIT3 Subtitle/Description refinement
- 4.2.3 TKEY Initial key
- 4.2.3 TLAN Language(s)
- 4.2.3 TLEN Length
- 4.2.2 TMCL Musician credits list
- 4.2.3 TMED Media type
- 4.2.3 TMOO Mood
- 4.2.1 TOAL Original album/movie/show title
- 4.2.5 TOFN Original filename
- 4.2.2 TOLY Original lyricist(s)/text writer(s)
- 4.2.2 TOPE Original artist(s)/performer(s)
- 4.2.4 TOWN File owner/licensee
- 4.2.2 TPE1 Lead performer(s)/Soloist(s)
- 4.2.2 TPE2 Band/orchestra/accompaniment
- 4.2.2 TPE3 Conductor/performer refinement
- 4.2.2 TPE4 Interpreted, remixed, or otherwise modified by
- 4.2.1 TPOS Part of a set
- 4.2.4 TPRO Produced notice
- 4.2.4 TPUB Publisher
- 4.2.1 TRCK Track number/Position in set
- 4.2.4 TRSN Internet radio station name
- 4.2.4 TRSO Internet radio station owner
- 4.2.5 TSOA Album sort order
- 4.2.5 TSOP Performer sort order
- 4.2.5 TSOT Title sort order
- 4.2.1 TSRC ISRC (international standard recording code)
- 4.2.5 TSSE Software/Hardware and settings used for encoding
- 4.2.1 TSST Set subtitle
- 4.2.2 TXXX User defined text information frame
-
- 4.1 UFID Unique file identifier
- 4.22 USER Terms of use
- 4.8 USLT Unsynchronised lyric/text transcription
-
- 4.3.1 WCOM Commercial information
- 4.3.1 WCOP Copyright/Legal information
- 4.3.1 WOAF Official audio file webpage
- 4.3.1 WOAR Official artist/performer webpage
- 4.3.1 WOAS Official audio source webpage
- 4.3.1 WORS Official Internet radio station homepage
- 4.3.1 WPAY Payment
- 4.3.1 WPUB Publishers official webpage
- 4.3.2 WXXX User defined URL link frame
-
-
-4.1. Unique file identifier
-
- This frame's purpose is to be able to identify the audio file in a
- database, that may provide more information relevant to the content.
- Since standardisation of such a database is beyond this document, all
- UFID frames begin with an 'owner identifier' field. It is a null-
- terminated string with a URL [URL] containing an email address, or a
- link to a location where an email address can be found, that belongs
- to the organisation responsible for this specific database
- implementation. Questions regarding the database should be sent to
- the indicated email address. The URL should not be used for the
- actual database queries. The string
- "http://www.id3.org/dummy/ufid.html" should be used for tests. The
- 'Owner identifier' must be non-empty (more than just a termination).
- The 'Owner identifier' is then followed by the actual identifier,
- which may be up to 64 bytes. There may be more than one "UFID" frame
- in a tag, but only one with the same 'Owner identifier'.
-
- <Header for 'Unique file identifier', ID: "UFID">
- Owner identifier <text string> $00
- Identifier <up to 64 bytes binary data>
-
-
-4.2. Text information frames
-
- The text information frames are often the most important frames,
- containing information like artist, album and more. There may only be
- one text information frame of its kind in an tag. All text
- information frames supports multiple strings, stored as a null
- separated list, where null is reperesented by the termination code
- for the charater encoding. All text frame identifiers begin with "T".
- Only text frame identifiers begin with "T", with the exception of the
- "TXXX" frame. All the text information frames have the following
- format:
-
- <Header for 'Text information frame', ID: "T000" - "TZZZ",
- excluding "TXXX" described in 4.2.6.>
- Text encoding $xx
- Information <text string(s) according to encoding>
-
-
-4.2.1. Identification frames
-
- TIT1
- The 'Content group description' frame is used if the sound belongs to
- a larger category of sounds/music. For example, classical music is
- often sorted in different musical sections (e.g. "Piano Concerto",
- "Weather - Hurricane").
-
- TIT2
- The 'Title/Songname/Content description' frame is the actual name of
- the piece (e.g. "Adagio", "Hurricane Donna").
-
- TIT3
- The 'Subtitle/Description refinement' frame is used for information
- directly related to the contents title (e.g. "Op. 16" or "Performed
- live at Wembley").
-
- TALB
- The 'Album/Movie/Show title' frame is intended for the title of the
- recording (or source of sound) from which the audio in the file is
- taken.
-
- TOAL
- The 'Original album/movie/show title' frame is intended for the title
- of the original recording (or source of sound), if for example the
- music in the file should be a cover of a previously released song.
-
- TRCK
- The 'Track number/Position in set' frame is a numeric string
- containing the order number of the audio-file on its original
- recording. This MAY be extended with a "/" character and a numeric
- string containing the total number of tracks/elements on the original
- recording. E.g. "4/9".
-
- TPOS
- The 'Part of a set' frame is a numeric string that describes which
- part of a set the audio came from. This frame is used if the source
- described in the "TALB" frame is divided into several mediums, e.g. a
- double CD. The value MAY be extended with a "/" character and a
- numeric string containing the total number of parts in the set. E.g.
- "1/2".
-
- TSST
- The 'Set subtitle' frame is intended for the subtitle of the part of
- a set this track belongs to.
-
- TSRC
- The 'ISRC' frame should contain the International Standard Recording
- Code [ISRC] (12 characters).
-
-
-4.2.2. Involved persons frames
-
- TPE1
- The 'Lead artist/Lead performer/Soloist/Performing group' is
- used for the main artist.
-
- TPE2
- The 'Band/Orchestra/Accompaniment' frame is used for additional
- information about the performers in the recording.
-
- TPE3
- The 'Conductor' frame is used for the name of the conductor.
-
- TPE4
- The 'Interpreted, remixed, or otherwise modified by' frame contains
- more information about the people behind a remix and similar
- interpretations of another existing piece.
-
- TOPE
- The 'Original artist/performer' frame is intended for the performer
- of the original recording, if for example the music in the file
- should be a cover of a previously released song.
-
- TEXT
- The 'Lyricist/Text writer' frame is intended for the writer of the
- text or lyrics in the recording.
-
- TOLY
- The 'Original lyricist/text writer' frame is intended for the
- text writer of the original recording, if for example the music in
- the file should be a cover of a previously released song.
-
- TCOM
- The 'Composer' frame is intended for the name of the composer.
-
- TMCL
- The 'Musician credits list' is intended as a mapping between
- instruments and the musician that played it. Every odd field is an
- instrument and every even is an artist or a comma delimited list of
- artists.
-
- TIPL
- The 'Involved people list' is very similar to the musician credits
- list, but maps between functions, like producer, and names.
-
- TENC
- The 'Encoded by' frame contains the name of the person or
- organisation that encoded the audio file. This field may contain a
- copyright message, if the audio file also is copyrighted by the
- encoder.
-
-
-4.2.3. Derived and subjective properties frames
-
- TBPM
- The 'BPM' frame contains the number of beats per minute in the
- main part of the audio. The BPM is an integer and represented as a
- numerical string.
-
- TLEN
- The 'Length' frame contains the length of the audio file in
- milliseconds, represented as a numeric string.
-
- TKEY
- The 'Initial key' frame contains the musical key in which the sound
- starts. It is represented as a string with a maximum length of three
- characters. The ground keys are represented with "A","B","C","D","E",
- "F" and "G" and halfkeys represented with "b" and "#". Minor is
- represented as "m", e.g. "Dbm" $00. Off key is represented with an
- "o" only.
-
- TLAN
- The 'Language' frame should contain the languages of the text or
- lyrics spoken or sung in the audio. The language is represented with
- three characters according to ISO-639-2 [ISO-639-2]. If more than one
- language is used in the text their language codes should follow
- according to the amount of their usage, e.g. "eng" $00 "sve" $00.
-
- TCON
- The 'Content type', which ID3v1 was stored as a one byte numeric
- value only, is now a string. You may use one or several of the ID3v1
- types as numerical strings, or, since the category list would be
- impossible to maintain with accurate and up to date categories,
- define your own. Example: "21" $00 "Eurodisco" $00
-
- You may also use any of the following keywords:
-
- RX Remix
- CR Cover
-
- TFLT
- The 'File type' frame indicates which type of audio this tag defines.
- The following types and refinements are defined:
-
- MIME MIME type follows
- MPG MPEG Audio
- /1 MPEG 1/2 layer I
- /2 MPEG 1/2 layer II
- /3 MPEG 1/2 layer III
- /2.5 MPEG 2.5
- /AAC Advanced audio compression
- VQF Transform-domain Weighted Interleave Vector Quantisation
- PCM Pulse Code Modulated audio
-
- but other types may be used, but not for these types though. This is
- used in a similar way to the predefined types in the "TMED" frame,
- but without parentheses. If this frame is not present audio type is
- assumed to be "MPG".
-
- TMED
- The 'Media type' frame describes from which media the sound
- originated. This may be a text string or a reference to the
- predefined media types found in the list below. Example:
- "VID/PAL/VHS" $00.
-
- DIG Other digital media
- /A Analogue transfer from media
-
- ANA Other analogue media
- /WAC Wax cylinder
- /8CA 8-track tape cassette
-
- CD CD
- /A Analogue transfer from media
- /DD DDD
- /AD ADD
- /AA AAD
-
- LD Laserdisc
-
- TT Turntable records
- /33 33.33 rpm
- /45 45 rpm
- /71 71.29 rpm
- /76 76.59 rpm
- /78 78.26 rpm
- /80 80 rpm
-
- MD MiniDisc
- /A Analogue transfer from media
-
- DAT DAT
- /A Analogue transfer from media
- /1 standard, 48 kHz/16 bits, linear
- /2 mode 2, 32 kHz/16 bits, linear
- /3 mode 3, 32 kHz/12 bits, non-linear, low speed
- /4 mode 4, 32 kHz/12 bits, 4 channels
- /5 mode 5, 44.1 kHz/16 bits, linear
- /6 mode 6, 44.1 kHz/16 bits, 'wide track' play
-
- DCC DCC
- /A Analogue transfer from media
-
- DVD DVD
- /A Analogue transfer from media
-
- TV Television
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
-
- VID Video
- /PAL PAL
- /NTSC NTSC
- /SECAM SECAM
- /VHS VHS
- /SVHS S-VHS
- /BETA BETAMAX
-
- RAD Radio
- /FM FM
- /AM AM
- /LW LW
- /MW MW
-
- TEL Telephone
- /I ISDN
-
- MC MC (normal cassette)
- /4 4.75 cm/s (normal speed for a two sided cassette)
- /9 9.5 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- REE Reel
- /9 9.5 cm/s
- /19 19 cm/s
- /38 38 cm/s
- /76 76 cm/s
- /I Type I cassette (ferric/normal)
- /II Type II cassette (chrome)
- /III Type III cassette (ferric chrome)
- /IV Type IV cassette (metal)
-
- TMOO
- The 'Mood' frame is intended to reflect the mood of the audio with a
- few keywords, e.g. "Romantic" or "Sad".
-
-
-4.2.4. Rights and license frames
-
- TCOP
- The 'Copyright message' frame, in which the string must begin with a
- year and a space character (making five characters), is intended for
- the copyright holder of the original sound, not the audio file
- itself. The absence of this frame means only that the copyright
- information is unavailable or has been removed, and must not be
- interpreted to mean that the audio is public domain. Every time this
- field is displayed the field must be preceded with "Copyright " (C) "
- ", where (C) is one character showing a C in a circle.
-
- TPRO
- The 'Produced notice' frame, in which the string must begin with a
- year and a space character (making five characters), is intended for
- the production copyright holder of the original sound, not the audio
- file itself. The absence of this frame means only that the production
- copyright information is unavailable or has been removed, and must
- not be interpreted to mean that the audio is public domain. Every
- time this field is displayed the field must be preceded with
- "Produced " (P) " ", where (P) is one character showing a P in a
- circle.
-
- TPUB
- The 'Publisher' frame simply contains the name of the label or
- publisher.
-
- TOWN
- The 'File owner/licensee' frame contains the name of the owner or
- licensee of the file and it's contents.
-
- TRSN
- The 'Internet radio station name' frame contains the name of the
- internet radio station from which the audio is streamed.
-
- TRSO
- The 'Internet radio station owner' frame contains the name of the
- owner of the internet radio station from which the audio is
- streamed.
-
-4.2.5. Other text frames
-
- TOFN
- The 'Original filename' frame contains the preferred filename for the
- file, since some media doesn't allow the desired length of the
- filename. The filename is case sensitive and includes its suffix.
-
- TDLY
- The 'Playlist delay' defines the numbers of milliseconds of silence
- that should be inserted before this audio. The value zero indicates
- that this is a part of a multifile audio track that should be played
- continuously.
-
- TDEN
- The 'Encoding time' frame contains a timestamp describing when the
- audio was encoded. Timestamp format is described in the ID3v2
- structure document [ID3v2-strct].
-
- TDOR
- The 'Original release time' frame contains a timestamp describing
- when the original recording of the audio was released. Timestamp
- format is described in the ID3v2 structure document [ID3v2-strct].
-
- TDRC
- The 'Recording time' frame contains a timestamp describing when the
- audio was recorded. Timestamp format is described in the ID3v2
- structure document [ID3v2-strct].
-
- TDRL
- The 'Release time' frame contains a timestamp describing when the
- audio was first released. Timestamp format is described in the ID3v2
- structure document [ID3v2-strct].
-
- TDTG
- The 'Tagging time' frame contains a timestamp describing then the
- audio was tagged. Timestamp format is described in the ID3v2
- structure document [ID3v2-strct].
-
- TSSE
- The 'Software/Hardware and settings used for encoding' frame
- includes the used audio encoder and its settings when the file was
- encoded. Hardware refers to hardware encoders, not the computer on
- which a program was run.
-
- TSOA
- The 'Album sort order' frame defines a string which should be used
- instead of the album name (TALB) for sorting purposes. E.g. an album
- named "A Soundtrack" might preferably be sorted as "Soundtrack".
-
- TSOP
- The 'Performer sort order' frame defines a string which should be
- used instead of the performer (TPE2) for sorting purposes.
-
- TSOT
- The 'Title sort order' frame defines a string which should be used
- instead of the title (TIT2) for sorting purposes.
-
-
-4.2.6. User defined text information frame
-
- This frame is intended for one-string text information concerning the
- audio file in a similar way to the other "T"-frames. The frame body
- consists of a description of the string, represented as a terminated
- string, followed by the actual string. There may be more than one
- "TXXX" frame in each tag, but only one with the same description.
-
- <Header for 'User defined text information frame', ID: "TXXX">
- Text encoding $xx
- Description <text string according to encoding> $00 (00)
- Value <text string according to encoding>
-
-
-4.3. URL link frames
-
- With these frames dynamic data such as webpages with touring
- information, price information or plain ordinary news can be added to
- the tag. There may only be one URL [URL] link frame of its kind in an
- tag, except when stated otherwise in the frame description. If the
- text string is followed by a string termination, all the following
- information should be ignored and not be displayed. All URL link
- frame identifiers begins with "W". Only URL link frame identifiers
- begins with "W", except for "WXXX". All URL link frames have the
- following format:
-
- <Header for 'URL link frame', ID: "W000" - "WZZZ", excluding "WXXX"
- described in 4.3.2.>
- URL <text string>
-
-
-4.3.1. URL link frames - details
-
- WCOM
- The 'Commercial information' frame is a URL pointing at a webpage
- with information such as where the album can be bought. There may be
- more than one "WCOM" frame in a tag, but not with the same content.
-
- WCOP
- The 'Copyright/Legal information' frame is a URL pointing at a
- webpage where the terms of use and ownership of the file is
- described.
-
- WOAF
- The 'Official audio file webpage' frame is a URL pointing at a file
- specific webpage.
-
- WOAR
- The 'Official artist/performer webpage' frame is a URL pointing at
- the artists official webpage. There may be more than one "WOAR" frame
- in a tag if the audio contains more than one performer, but not with
- the same content.
-
- WOAS
- The 'Official audio source webpage' frame is a URL pointing at the
- official webpage for the source of the audio file, e.g. a movie.
-
- WORS
- The 'Official Internet radio station homepage' contains a URL
- pointing at the homepage of the internet radio station.
-
- WPAY
- The 'Payment' frame is a URL pointing at a webpage that will handle
- the process of paying for this file.
-
- WPUB
- The 'Publishers official webpage' frame is a URL pointing at the
- official webpage for the publisher.
-
-
-4.3.2. User defined URL link frame
-
- This frame is intended for URL [URL] links concerning the audio file
- in a similar way to the other "W"-frames. The frame body consists
- of a description of the string, represented as a terminated string,
- followed by the actual URL. The URL is always encoded with ISO-8859-1
- [ISO-8859-1]. There may be more than one "WXXX" frame in each tag,
- but only one with the same description.
-
- <Header for 'User defined URL link frame', ID: "WXXX">
- Text encoding $xx
- Description <text string according to encoding> $00 (00)
- URL <text string>
-
-
-4.4. Music CD identifier
-
- This frame is intended for music that comes from a CD, so that the CD
- can be identified in databases such as the CDDB [CDDB]. The frame
- consists of a binary dump of the Table Of Contents, TOC, from the CD,
- which is a header of 4 bytes and then 8 bytes/track on the CD plus 8
- bytes for the 'lead out', making a maximum of 804 bytes. The offset
- to the beginning of every track on the CD should be described with a
- four bytes absolute CD-frame address per track, and not with absolute
- time. When this frame is used the presence of a valid "TRCK" frame is
- REQUIRED, even if the CD's only got one track. It is recommended that
- this frame is always added to tags originating from CDs. There may
- only be one "MCDI" frame in each tag.
-
- <Header for 'Music CD identifier', ID: "MCDI">
- CD TOC <binary data>
-
-
-4.5. Event timing codes
-
- This frame allows synchronisation with key events in the audio. The
- header is:
-
- <Header for 'Event timing codes', ID: "ETCO">
- Time stamp format $xx
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Absolute time means that every stamp contains the time from the
- beginning of the file.
-
- Followed by a list of key events in the following format:
-
- Type of event $xx
- Time stamp $xx (xx ...)
-
- The 'Time stamp' is set to zero if directly at the beginning of the
- sound or after the previous event. All events MUST be sorted in
- chronological order. The type of event is as follows:
-
- $00 padding (has no meaning)
- $01 end of initial silence
- $02 intro start
- $03 main part start
- $04 outro start
- $05 outro end
- $06 verse start
- $07 refrain start
- $08 interlude start
- $09 theme start
- $0A variation start
- $0B key change
- $0C time change
- $0D momentary unwanted noise (Snap, Crackle & Pop)
- $0E sustained noise
- $0F sustained noise end
- $10 intro end
- $11 main part end
- $12 verse end
- $13 refrain end
- $14 theme end
- $15 profanity
- $16 profanity end
-
- $17-$DF reserved for future use
-
- $E0-$EF not predefined synch 0-F
-
- $F0-$FC reserved for future use
-
- $FD audio end (start of silence)
- $FE audio file ends
- $FF one more byte of events follows (all the following bytes with
- the value $FF have the same function)
-
- Terminating the start events such as "intro start" is OPTIONAL. The
- 'Not predefined synch's ($E0-EF) are for user events. You might want
- to synchronise your music to something, like setting off an explosion
- on-stage, activating a screensaver etc.
-
- There may only be one "ETCO" frame in each tag.
-
-
-4.6. MPEG location lookup table
-
- To increase performance and accuracy of jumps within a MPEG [MPEG]
- audio file, frames with time codes in different locations in the file
- might be useful. This ID3v2 frame includes references that the
- software can use to calculate positions in the file. After the frame
- header follows a descriptor of how much the 'frame counter' should be
- increased for every reference. If this value is two then the first
- reference points out the second frame, the 2nd reference the 4th
- frame, the 3rd reference the 6th frame etc. In a similar way the
- 'bytes between reference' and 'milliseconds between reference' points
- out bytes and milliseconds respectively.
-
- Each reference consists of two parts; a certain number of bits, as
- defined in 'bits for bytes deviation', that describes the difference
- between what is said in 'bytes between reference' and the reality and
- a certain number of bits, as defined in 'bits for milliseconds
- deviation', that describes the difference between what is said in
- 'milliseconds between reference' and the reality. The number of bits
- in every reference, i.e. 'bits for bytes deviation'+'bits for
- milliseconds deviation', must be a multiple of four. There may only
- be one "MLLT" frame in each tag.
-
- <Header for 'Location lookup table', ID: "MLLT">
- MPEG frames between reference $xx xx
- Bytes between reference $xx xx xx
- Milliseconds between reference $xx xx xx
- Bits for bytes deviation $xx
- Bits for milliseconds dev. $xx
-
- Then for every reference the following data is included;
-
- Deviation in bytes %xxx....
- Deviation in milliseconds %xxx....
-
-
-4.7. Synchronised tempo codes
-
- For a more accurate description of the tempo of a musical piece, this
- frame might be used. After the header follows one byte describing
- which time stamp format should be used. Then follows one or more
- tempo codes. Each tempo code consists of one tempo part and one time
- part. The tempo is in BPM described with one or two bytes. If the
- first byte has the value $FF, one more byte follows, which is added
- to the first giving a range from 2 - 510 BPM, since $00 and $01 is
- reserved. $00 is used to describe a beat-free time period, which is
- not the same as a music-free time period. $01 is used to indicate one
- single beat-stroke followed by a beat-free period.
-
- The tempo descriptor is followed by a time stamp. Every time the
- tempo in the music changes, a tempo descriptor may indicate this for
- the player. All tempo descriptors MUST be sorted in chronological
- order. The first beat-stroke in a time-period is at the same time as
- the beat description occurs. There may only be one "SYTC" frame in
- each tag.
-
- <Header for 'Synchronised tempo codes', ID: "SYTC">
- Time stamp format $xx
- Tempo data <binary data>
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Absolute time means that every stamp contains the time from the
- beginning of the file.
-
-
-4.8. Unsynchronised lyrics/text transcription
-
- This frame contains the lyrics of the song or a text transcription of
- other vocal activities. The head includes an encoding descriptor and
- a content descriptor. The body consists of the actual text. The
- 'Content descriptor' is a terminated string. If no descriptor is
- entered, 'Content descriptor' is $00 (00) only. Newline characters
- are allowed in the text. There may be more than one 'Unsynchronised
- lyrics/text transcription' frame in each tag, but only one with the
- same language and content descriptor.
-
- <Header for 'Unsynchronised lyrics/text transcription', ID: "USLT">
- Text encoding $xx
- Language $xx xx xx
- Content descriptor <text string according to encoding> $00 (00)
- Lyrics/text <full text string according to encoding>
-
-
-4.9. Synchronised lyrics/text
-
- This is another way of incorporating the words, said or sung lyrics,
- in the audio file as text, this time, however, in sync with the
- audio. It might also be used to describing events e.g. occurring on a
- stage or on the screen in sync with the audio. The header includes a
- content descriptor, represented with as terminated text string. If no
- descriptor is entered, 'Content descriptor' is $00 (00) only.
-
- <Header for 'Synchronised lyrics/text', ID: "SYLT">
- Text encoding $xx
- Language $xx xx xx
- Time stamp format $xx
- Content type $xx
- Content descriptor <text string according to encoding> $00 (00)
-
- Content type: $00 is other
- $01 is lyrics
- $02 is text transcription
- $03 is movement/part name (e.g. "Adagio")
- $04 is events (e.g. "Don Quijote enters the stage")
- $05 is chord (e.g. "Bb F Fsus")
- $06 is trivia/'pop up' information
- $07 is URLs to webpages
- $08 is URLs to images
-
- Time stamp format:
-
- $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- Absolute time means that every stamp contains the time from the
- beginning of the file.
-
- The text that follows the frame header differs from that of the
- unsynchronised lyrics/text transcription in one major way. Each
- syllable (or whatever size of text is considered to be convenient by
- the encoder) is a null terminated string followed by a time stamp
- denoting where in the sound file it belongs. Each sync thus has the
- following structure:
-
- Terminated text to be synced (typically a syllable)
- Sync identifier (terminator to above string) $00 (00)
- Time stamp $xx (xx ...)
-
- The 'time stamp' is set to zero or the whole sync is omitted if
- located directly at the beginning of the sound. All time stamps
- should be sorted in chronological order. The sync can be considered
- as a validator of the subsequent string.
-
- Newline characters are allowed in all "SYLT" frames and MUST be used
- after every entry (name, event etc.) in a frame with the content type
- $03 - $04.
-
- A few considerations regarding whitespace characters: Whitespace
- separating words should mark the beginning of a new word, thus
- occurring in front of the first syllable of a new word. This is also
- valid for new line characters. A syllable followed by a comma should
- not be broken apart with a sync (both the syllable and the comma
- should be before the sync).
-
- An example: The "USLT" passage
-
- "Strangers in the night" $0A "Exchanging glances"
-
- would be "SYLT" encoded as:
-
- "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
- " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
- xx "glan" $00 xx xx "ces" $00 xx xx
-
- There may be more than one "SYLT" frame in each tag, but only one
- with the same language and content descriptor.
-
-
-4.10. Comments
-
- This frame is intended for any kind of full text information that
- does not fit in any other frame. It consists of a frame header
- followed by encoding, language and content descriptors and is ended
- with the actual comment as a text string. Newline characters are
- allowed in the comment text string. There may be more than one
- comment frame in each tag, but only one with the same language and
- content descriptor.
-
- <Header for 'Comment', ID: "COMM">
- Text encoding $xx
- Language $xx xx xx
- Short content descrip. <text string according to encoding> $00 (00)
- The actual text <full text string according to encoding>
-
-
-4.11. Relative volume adjustment (2)
-
- This is a more subjective frame than the previous ones. It allows the
- user to say how much he wants to increase/decrease the volume on each
- channel when the file is played. The purpose is to be able to align
- all files to a reference volume, so that you don't have to change the
- volume constantly. This frame may also be used to balance adjust the
- audio. The volume adjustment is encoded as a fixed point decibel
- value, 16 bit signed integer representing (adjustment*512), giving
- +/- 64 dB with a precision of 0.001953125 dB. E.g. +2 dB is stored as
- $04 00 and -2 dB is $FC 00. There may be more than one "RVA2" frame
- in each tag, but only one with the same identification string.
-
- <Header for 'Relative volume adjustment (2)', ID: "RVA2">
- Identification <text string> $00
-
- The 'identification' string is used to identify the situation and/or
- device where this adjustment should apply. The following is then
- repeated for every channel
-
- Type of channel $xx
- Volume adjustment $xx xx
- Bits representing peak $xx
- Peak volume $xx (xx ...)
-
-
- Type of channel: $00 Other
- $01 Master volume
- $02 Front right
- $03 Front left
- $04 Back right
- $05 Back left
- $06 Front centre
- $07 Back centre
- $08 Subwoofer
-
- Bits representing peak can be any number between 0 and 255. 0 means
- that there is no peak volume field. The peak volume field is always
- padded to whole bytes, setting the most significant bits to zero.
-
-
-4.12. Equalisation (2)
-
- This is another subjective, alignment frame. It allows the user to
- predefine an equalisation curve within the audio file. There may be
- more than one "EQU2" frame in each tag, but only one with the same
- identification string.
-
- <Header of 'Equalisation (2)', ID: "EQU2">
- Interpolation method $xx
- Identification <text string> $00
-
- The 'interpolation method' describes which method is preferred when
- an interpolation between the adjustment point that follows. The
- following methods are currently defined:
-
- $00 Band
- No interpolation is made. A jump from one adjustment level to
- another occurs in the middle between two adjustment points.
- $01 Linear
- Interpolation between adjustment points is linear.
-
- The 'identification' string is used to identify the situation and/or
- device where this adjustment should apply. The following is then
- repeated for every adjustment point
-
- Frequency $xx xx
- Volume adjustment $xx xx
-
- The frequency is stored in units of 1/2 Hz, giving it a range from 0
- to 32767 Hz.
-
- The volume adjustment is encoded as a fixed point decibel value, 16
- bit signed integer representing (adjustment*512), giving +/- 64 dB
- with a precision of 0.001953125 dB. E.g. +2 dB is stored as $04 00
- and -2 dB is $FC 00.
-
- Adjustment points should be ordered by frequency and one frequency
- should only be described once in the frame.
-
-
-4.13. Reverb
-
- Yet another subjective frame, with which you can adjust echoes of
- different kinds. Reverb left/right is the delay between every bounce
- in ms. Reverb bounces left/right is the number of bounces that should
- be made. $FF equals an infinite number of bounces. Feedback is the
- amount of volume that should be returned to the next echo bounce. $00
- is 0%, $FF is 100%. If this value were $7F, there would be 50% volume
- reduction on the first bounce, 50% of that on the second and so on.
- Left to left means the sound from the left bounce to be played in the
- left speaker, while left to right means sound from the left bounce to
- be played in the right speaker.
-
- 'Premix left to right' is the amount of left sound to be mixed in the
- right before any reverb is applied, where $00 id 0% and $FF is 100%.
- 'Premix right to left' does the same thing, but right to left.
- Setting both premix to $FF would result in a mono output (if the
- reverb is applied symmetric). There may only be one "RVRB" frame in
- each tag.
-
- <Header for 'Reverb', ID: "RVRB">
- Reverb left (ms) $xx xx
- Reverb right (ms) $xx xx
- Reverb bounces, left $xx
- Reverb bounces, right $xx
- Reverb feedback, left to left $xx
- Reverb feedback, left to right $xx
- Reverb feedback, right to right $xx
- Reverb feedback, right to left $xx
- Premix left to right $xx
- Premix right to left $xx
-
-
-4.14. Attached picture
-
- This frame contains a picture directly related to the audio file.
- Image format is the MIME type and subtype [MIME] for the image. In
- the event that the MIME media type name is omitted, "image/" will be
- implied. The "image/png" [PNG] or "image/jpeg" [JFIF] picture format
- should be used when interoperability is wanted. Description is a
- short description of the picture, represented as a terminated
- text string. There may be several pictures attached to one file, each
- in their individual "APIC" frame, but only one with the same content
- descriptor. There may only be one picture with the picture type
- declared as picture type $01 and $02 respectively. There is the
- possibility to put only a link to the image file by using the 'MIME
- type' "-->" and having a complete URL [URL] instead of picture data.
- The use of linked files should however be used sparingly since there
- is the risk of separation of files.
-
- <Header for 'Attached picture', ID: "APIC">
- Text encoding $xx
- MIME type <text string> $00
- Picture type $xx
- Description <text string according to encoding> $00 (00)
- Picture data <binary data>
-
-
- Picture type: $00 Other
- $01 32x32 pixels 'file icon' (PNG only)
- $02 Other file icon
- $03 Cover (front)
- $04 Cover (back)
- $05 Leaflet page
- $06 Media (e.g. label side of CD)
- $07 Lead artist/lead performer/soloist
- $08 Artist/performer
- $09 Conductor
- $0A Band/Orchestra
- $0B Composer
- $0C Lyricist/text writer
- $0D Recording Location
- $0E During recording
- $0F During performance
- $10 Movie/video screen capture
- $11 A bright coloured fish
- $12 Illustration
- $13 Band/artist logotype
- $14 Publisher/Studio logotype
-
-
-4.15. General encapsulated object
-
- In this frame any type of file can be encapsulated. After the header,
- 'Frame size' and 'Encoding' follows 'MIME type' [MIME] represented as
- as a terminated string encoded with ISO 8859-1 [ISO-8859-1]. The
- filename is case sensitive and is encoded as 'Encoding'. Then follows
- a content description as terminated string, encoded as 'Encoding'.
- The last thing in the frame is the actual object. The first two
- strings may be omitted, leaving only their terminations. MIME type is
- always an ISO-8859-1 text string. There may be more than one "GEOB"
- frame in each tag, but only one with the same content descriptor.
-
- <Header for 'General encapsulated object', ID: "GEOB">
- Text encoding $xx
- MIME type <text string> $00
- Filename <text string according to encoding> $00 (00)
- Content description <text string according to encoding> $00 (00)
- Encapsulated object <binary data>
-
-
-4.16. Play counter
-
- This is simply a counter of the number of times a file has been
- played. The value is increased by one every time the file begins to
- play. There may only be one "PCNT" frame in each tag. When the
- counter reaches all one's, one byte is inserted in front of the
- counter thus making the counter eight bits bigger. The counter must
- be at least 32-bits long to begin with.
-
- <Header for 'Play counter', ID: "PCNT">
- Counter $xx xx xx xx (xx ...)
-
-
-4.17. Popularimeter
-
- The purpose of this frame is to specify how good an audio file is.
- Many interesting applications could be found to this frame such as a
- playlist that features better audio files more often than others or
- it could be used to profile a person's taste and find other 'good'
- files by comparing people's profiles. The frame contains the email
- address to the user, one rating byte and a four byte play counter,
- intended to be increased with one for every time the file is played.
- The email is a terminated string. The rating is 1-255 where 1 is
- worst and 255 is best. 0 is unknown. If no personal counter is wanted
- it may be omitted. When the counter reaches all one's, one byte is
- inserted in front of the counter thus making the counter eight bits
- bigger in the same away as the play counter ("PCNT"). There may be
- more than one "POPM" frame in each tag, but only one with the same
- email address.
-
- <Header for 'Popularimeter', ID: "POPM">
- Email to user <text string> $00
- Rating $xx
- Counter $xx xx xx xx (xx ...)
-
-
-4.18. Recommended buffer size
-
- Sometimes the server from which an audio file is streamed is aware of
- transmission or coding problems resulting in interruptions in the
- audio stream. In these cases, the size of the buffer can be
- recommended by the server using this frame. If the 'embedded info
- flag' is true (1) then this indicates that an ID3 tag with the
- maximum size described in 'Buffer size' may occur in the audio
- stream. In such case the tag should reside between two MPEG [MPEG]
- frames, if the audio is MPEG encoded. If the position of the next tag
- is known, 'offset to next tag' may be used. The offset is calculated
- from the end of tag in which this frame resides to the first byte of
- the header in the next. This field may be omitted. Embedded tags are
- generally not recommended since this could render unpredictable
- behaviour from present software/hardware.
-
- For applications like streaming audio it might be an idea to embed
- tags into the audio stream though. If the clients connects to
- individual connections like HTTP and there is a possibility to begin
- every transmission with a tag, then this tag should include a
- 'recommended buffer size' frame. If the client is connected to a
- arbitrary point in the stream, such as radio or multicast, then the
- 'recommended buffer size' frame SHOULD be included in every tag.
-
- The 'Buffer size' should be kept to a minimum. There may only be one
- "RBUF" frame in each tag.
-
- <Header for 'Recommended buffer size', ID: "RBUF">
- Buffer size $xx xx xx
- Embedded info flag %0000000x
- Offset to next tag $xx xx xx xx
-
-
-4.19. Audio encryption
-
- This frame indicates if the actual audio stream is encrypted, and by
- whom. Since standardisation of such encryption scheme is beyond this
- document, all "AENC" frames begin with a terminated string with a
- URL containing an email address, or a link to a location where an
- email address can be found, that belongs to the organisation
- responsible for this specific encrypted audio file. Questions
- regarding the encrypted audio should be sent to the email address
- specified. If a $00 is found directly after the 'Frame size' and the
- audio file indeed is encrypted, the whole file may be considered
- useless.
-
- After the 'Owner identifier', a pointer to an unencrypted part of the
- audio can be specified. The 'Preview start' and 'Preview length' is
- described in frames. If no part is unencrypted, these fields should
- be left zeroed. After the 'preview length' field follows optionally a
- data block required for decryption of the audio. There may be more
- than one "AENC" frames in a tag, but only one with the same 'Owner
- identifier'.
-
- <Header for 'Audio encryption', ID: "AENC">
- Owner identifier <text string> $00
- Preview start $xx xx
- Preview length $xx xx
- Encryption info <binary data>
-
-
-4.20. Linked information
-
- To keep information duplication as low as possible this frame may be
- used to link information from another ID3v2 tag that might reside in
- another audio file or alone in a binary file. It is RECOMMENDED that
- this method is only used when the files are stored on a CD-ROM or
- other circumstances when the risk of file separation is low. The
- frame contains a frame identifier, which is the frame that should be
- linked into this tag, a URL [URL] field, where a reference to the
- file where the frame is given, and additional ID data, if needed.
- Data should be retrieved from the first tag found in the file to
- which this link points. There may be more than one "LINK" frame in a
- tag, but only one with the same contents. A linked frame is to be
- considered as part of the tag and has the same restrictions as if it
- was a physical part of the tag (i.e. only one "RVRB" frame allowed,
- whether it's linked or not).
-
- <Header for 'Linked information', ID: "LINK">
- Frame identifier $xx xx xx xx
- URL <text string> $00
- ID and additional data <text string(s)>
-
- Frames that may be linked and need no additional data are "ASPI",
- "ETCO", "EQU2", "MCID", "MLLT", "OWNE", "RVA2", "RVRB", "SYTC", the
- text information frames and the URL link frames.
-
- The "AENC", "APIC", "GEOB" and "TXXX" frames may be linked with
- the content descriptor as additional ID data.
-
- The "USER" frame may be linked with the language field as additional
- ID data.
-
- The "PRIV" frame may be linked with the owner identifier as
- additional ID data.
-
- The "COMM", "SYLT" and "USLT" frames may be linked with three bytes
- of language descriptor directly followed by a content descriptor as
- additional ID data.
-
-
-4.21. Position synchronisation frame
-
- This frame delivers information to the listener of how far into the
- audio stream he picked up; in effect, it states the time offset from
- the first frame in the stream. The frame layout is:
-
- <Head for 'Position synchronisation', ID: "POSS">
- Time stamp format $xx
- Position $xx (xx ...)
-
- Where time stamp format is:
-
- $01 Absolute time, 32 bit sized, using MPEG frames as unit
- $02 Absolute time, 32 bit sized, using milliseconds as unit
-
- and position is where in the audio the listener starts to receive,
- i.e. the beginning of the next frame. If this frame is used in the
- beginning of a file the value is always 0. There may only be one
- "POSS" frame in each tag.
-
-
-4.22. Terms of use frame
-
- This frame contains a brief description of the terms of use and
- ownership of the file. More detailed information concerning the legal
- terms might be available through the "WCOP" frame. Newlines are
- allowed in the text. There may be more than one 'Terms of use' frame
- in a tag, but only one with the same 'Language'.
-
- <Header for 'Terms of use frame', ID: "USER">
- Text encoding $xx
- Language $xx xx xx
- The actual text <text string according to encoding>
-
-
-4.23. Ownership frame
-
- The ownership frame might be used as a reminder of a made transaction
- or, if signed, as proof. Note that the "USER" and "TOWN" frames are
- good to use in conjunction with this one. The frame begins, after the
- frame ID, size and encoding fields, with a 'price paid' field. The
- first three characters of this field contains the currency used for
- the transaction, encoded according to ISO 4217 [ISO-4217] alphabetic
- currency code. Concatenated to this is the actual price paid, as a
- numerical string using "." as the decimal separator. Next is an 8
- character date string (YYYYMMDD) followed by a string with the name
- of the seller as the last field in the frame. There may only be one
- "OWNE" frame in a tag.
-
- <Header for 'Ownership frame', ID: "OWNE">
- Text encoding $xx
- Price paid <text string> $00
- Date of purch. <text string>
- Seller <text string according to encoding>
-
-
-4.24. Commercial frame
-
- This frame enables several competing offers in the same tag by
- bundling all needed information. That makes this frame rather complex
- but it's an easier solution than if one tries to achieve the same
- result with several frames. The frame begins, after the frame ID,
- size and encoding fields, with a price string field. A price is
- constructed by one three character currency code, encoded according
- to ISO 4217 [ISO-4217] alphabetic currency code, followed by a
- numerical value where "." is used as decimal separator. In the price
- string several prices may be concatenated, separated by a "/"
- character, but there may only be one currency of each type.
-
- The price string is followed by an 8 character date string in the
- format YYYYMMDD, describing for how long the price is valid. After
- that is a contact URL, with which the user can contact the seller,
- followed by a one byte 'received as' field. It describes how the
- audio is delivered when bought according to the following list:
-
- $00 Other
- $01 Standard CD album with other songs
- $02 Compressed audio on CD
- $03 File over the Internet
- $04 Stream over the Internet
- $05 As note sheets
- $06 As note sheets in a book with other sheets
- $07 Music on other media
- $08 Non-musical merchandise
-
- Next follows a terminated string with the name of the seller followed
- by a terminated string with a short description of the product. The
- last thing is the ability to include a company logotype. The first of
- them is the 'Picture MIME type' field containing information about
- which picture format is used. In the event that the MIME media type
- name is omitted, "image/" will be implied. Currently only "image/png"
- and "image/jpeg" are allowed. This format string is followed by the
- binary picture data. This two last fields may be omitted if no
- picture is attached. There may be more than one 'commercial frame' in
- a tag, but no two may be identical.
-
- <Header for 'Commercial frame', ID: "COMR">
- Text encoding $xx
- Price string <text string> $00
- Valid until <text string>
- Contact URL <text string> $00
- Received as $xx
- Name of seller <text string according to encoding> $00 (00)
- Description <text string according to encoding> $00 (00)
- Picture MIME type <string> $00
- Seller logo <binary data>
-
-
-4.25. Encryption method registration
-
- To identify with which method a frame has been encrypted the
- encryption method must be registered in the tag with this frame. The
- 'Owner identifier' is a null-terminated string with a URL [URL]
- containing an email address, or a link to a location where an email
- address can be found, that belongs to the organisation responsible
- for this specific encryption method. Questions regarding the
- encryption method should be sent to the indicated email address. The
- 'Method symbol' contains a value that is associated with this method
- throughout the whole tag, in the range $80-F0. All other values are
- reserved. The 'Method symbol' may optionally be followed by
- encryption specific data. There may be several "ENCR" frames in a tag
- but only one containing the same symbol and only one containing the
- same owner identifier. The method must be used somewhere in the tag.
- See the description of the frame encryption flag in the ID3v2
- structure document [ID3v2-strct] for more information.
-
- <Header for 'Encryption method registration', ID: "ENCR">
- Owner identifier <text string> $00
- Method symbol $xx
- Encryption data <binary data>
-
-
-4.26. Group identification registration
-
- This frame enables grouping of otherwise unrelated frames. This can
- be used when some frames are to be signed. To identify which frames
- belongs to a set of frames a group identifier must be registered in
- the tag with this frame. The 'Owner identifier' is a null-terminated
- string with a URL [URL] containing an email address, or a link to a
- location where an email address can be found, that belongs to the
- organisation responsible for this grouping. Questions regarding the
- grouping should be sent to the indicated email address. The 'Group
- symbol' contains a value that associates the frame with this group
- throughout the whole tag, in the range $80-F0. All other values are
- reserved. The 'Group symbol' may optionally be followed by some group
- specific data, e.g. a digital signature. There may be several "GRID"
- frames in a tag but only one containing the same symbol and only one
- containing the same owner identifier. The group symbol must be used
- somewhere in the tag. See the description of the frame grouping flag
- in the ID3v2 structure document [ID3v2-strct] for more information.
-
- <Header for 'Group ID registration', ID: "GRID">
- Owner identifier <text string> $00
- Group symbol $xx
- Group dependent data <binary data>
-
-
-4.27. Private frame
-
- This frame is used to contain information from a software producer
- that its program uses and does not fit into the other frames. The
- frame consists of an 'Owner identifier' string and the binary data.
- The 'Owner identifier' is a null-terminated string with a URL [URL]
- containing an email address, or a link to a location where an email
- address can be found, that belongs to the organisation responsible
- for the frame. Questions regarding the frame should be sent to the
- indicated email address. The tag may contain more than one "PRIV"
- frame but only with different contents.
-
- <Header for 'Private frame', ID: "PRIV">
- Owner identifier <text string> $00
- The private data <binary data>
-
-
-4.28. Signature frame
-
- This frame enables a group of frames, grouped with the 'Group
- identification registration', to be signed. Although signatures can
- reside inside the registration frame, it might be desired to store
- the signature elsewhere, e.g. in watermarks. There may be more than
- one 'signature frame' in a tag, but no two may be identical.
-
- <Header for 'Signature frame', ID: "SIGN">
- Group symbol $xx
- Signature <binary data>
-
-
-4.29. Seek frame
-
- This frame indicates where other tags in a file/stream can be found.
- The 'minimum offset to next tag' is calculated from the end of this
- tag to the beginning of the next. There may only be one 'seek frame'
- in a tag.
-
- <Header for 'Seek frame', ID: "SEEK">
- Minimum offset to next tag $xx xx xx xx
-
-
-4.30. Audio seek point index
-
- Audio files with variable bit rates are intrinsically difficult to
- deal with in the case of seeking within the file. The ASPI frame
- makes seeking easier by providing a list a seek points within the
- audio file. The seek points are a fractional offset within the audio
- data, providing a starting point from which to find an appropriate
- point to start decoding. The presence of an ASPI frame requires the
- existence of a TLEN frame, indicating the duration of the file in
- milliseconds. There may only be one 'audio seek point index' frame in
- a tag.
-
- <Header for 'Seek Point Index', ID: "ASPI">
- Indexed data start (S) $xx xx xx xx
- Indexed data length (L) $xx xx xx xx
- Number of index points (N) $xx xx
- Bits per index point (b) $xx
-
- Then for every index point the following data is included;
-
- Fraction at index (Fi) $xx (xx)
-
- 'Indexed data start' is a byte offset from the beginning of the file.
- 'Indexed data length' is the byte length of the audio data being
- indexed. 'Number of index points' is the number of index points, as
- the name implies. The recommended number is 100. 'Bits per index
- point' is 8 or 16, depending on the chosen precision. 8 bits works
- well for short files (less than 5 minutes of audio), while 16 bits is
- advantageous for long files. 'Fraction at index' is the numerator of
- the fraction representing a relative position in the data. The
- denominator is 2 to the power of b.
-
- Here are the algorithms to be used in the calculation. The known data
- must be the offset of the start of the indexed data (S), the offset
- of the end of the indexed data (E), the number of index points (N),
- the offset at index i (Oi). We calculate the fraction at index i
- (Fi).
-
- Oi is the offset of the frame whose start is soonest after the point
- for which the time offset is (i/N * duration).
-
- The frame data should be calculated as follows:
-
- Fi = Oi/L * 2^b (rounded down to the nearest integer)
-
- Offset calculation should be calculated as follows from data in the
- frame:
-
- Oi = (Fi/2^b)*L (rounded up to the nearest integer)
-
-
-5. Copyright
-
- Copyright (C) Martin Nilsson 2000. All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that a reference to this document is included on all
- such copies and derivative works. However, this document itself may
- not be modified in any way and reissued as the original document.
-
- The limited permissions granted above are perpetual and will not be
- revoked.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-6. References
-
- [CDDB] Compact Disc Data Base
-
- <url:http://www.cddb.com>
-
- [ID3v2.3.0] Martin Nilsson, "ID3v2 informal standard".
-
- <url:http://www.id3.org/id3v2.3.0.txt>
-
- [ID3v2-strct] Martin Nilsson,
- "ID3 tag version 2.4.0 - Main Structure"
-
- <url:http//www.id3.org/id3v2.4.0-structure.txt>
-
- [ISO-639-2] ISO/FDIS 639-2.
- Codes for the representation of names of languages, Part 2: Alpha-3
- code. Technical committee / subcommittee: TC 37 / SC 2
-
- [ISO-4217] ISO 4217:1995.
- Codes for the representation of currencies and funds.
- Technical committee / subcommittee: TC 68
-
- [ISO-8859-1] ISO/IEC DIS 8859-1.
- 8-bit single-byte coded graphic character sets, Part 1: Latin
- alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2
-
- [ISRC] ISO 3901:1986
- International Standard Recording Code (ISRC).
- Technical committee / subcommittee: TC 46 / SC 9
-
- [JFIF] JPEG File Interchange Format, version 1.02
-
- <url:http://www.w3.org/Graphics/JPEG/jfif.txt>
-
- [KEYWORDS] S. Bradner, 'Key words for use in RFCs to Indicate
- Requirement Levels', RFC 2119, March 1997.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2119.txt>
-
- [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
- Extensions (MIME) Part One: Format of Internet Message Bodies",
- RFC 2045, November 1996.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2045.txt>
-
- [MPEG] ISO/IEC 11172-3:1993.
- Coding of moving pictures and associated audio for digital storage
- media at up to about 1,5 Mbit/s, Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC 13818-3:1995
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio.
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC DIS 13818-3
- Generic coding of moving pictures and associated audio information,
- Part 3: Audio (Revision of ISO/IEC 13818-3:1995)
-
-
- [PNG] Portable Network Graphics, version 1.0
-
- <url:http://www.w3.org/TR/REC-png-multi.html>
-
- [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource
- Locators (URL).", RFC 1738, December 1994.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc1738.txt>
-
- [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, "ZLIB
- Compressed
- Data Format Specification version 3.3", RFC 1950, May 1996.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc1950.txt>
-
-
-7. Appendix
-
-
-A. Appendix A - Genre List from ID3v1
-
- The following genres is defined in ID3v1
-
- 0.Blues
- 1.Classic Rock
- 2.Country
- 3.Dance
- 4.Disco
- 5.Funk
- 6.Grunge
- 7.Hip-Hop
- 8.Jazz
- 9.Metal
- 10.New Age
- 11.Oldies
- 12.Other
- 13.Pop
- 14.R&B
- 15.Rap
- 16.Reggae
- 17.Rock
- 18.Techno
- 19.Industrial
- 20.Alternative
- 21.Ska
- 22.Death Metal
- 23.Pranks
- 24.Soundtrack
- 25.Euro-Techno
- 26.Ambient
- 27.Trip-Hop
- 28.Vocal
- 29.Jazz+Funk
- 30.Fusion
- 31.Trance
- 32.Classical
- 33.Instrumental
- 34.Acid
- 35.House
- 36.Game
- 37.Sound Clip
- 38.Gospel
- 39.Noise
- 40.AlternRock
- 41.Bass
- 42.Soul
- 43.Punk
- 44.Space
- 45.Meditative
- 46.Instrumental Pop
- 47.Instrumental Rock
- 48.Ethnic
- 49.Gothic
- 50.Darkwave
- 51.Techno-Industrial
- 52.Electronic
- 53.Pop-Folk
- 54.Eurodance
- 55.Dream
- 56.Southern Rock
- 57.Comedy
- 58.Cult
- 59.Gangsta
- 60.Top 40
- 61.Christian Rap
- 62.Pop/Funk
- 63.Jungle
- 64.Native American
- 65.Cabaret
- 66.New Wave
- 67.Psychadelic
- 68.Rave
- 69.Showtunes
- 70.Trailer
- 71.Lo-Fi
- 72.Tribal
- 73.Acid Punk
- 74.Acid Jazz
- 75.Polka
- 76.Retro
- 77.Musical
- 78.Rock & Roll
- 79.Hard Rock
-
-
-8. Author's Address
-
- Written by
-
- Martin Nilsson
- Rydsvägen 246 C. 30
- SE-584 34 Linköping
- Sweden
-
- Email: nilsson@id3.org
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-structure.txt b/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-structure.txt
deleted file mode 100644
index 5fa156a0ad..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2.4.0-structure.txt
+++ /dev/null
@@ -1,733 +0,0 @@
-
-Informal standard M. Nilsson
-Document: id3v2.4.0-structure.txt 16 September 2001
-
-
- ID3 tag version 2.4.0 - Main Structure
-
-Status of this document
-
- This document is an informal standard and replaces the ID3v2.3.0
- standard [ID3v2]. A formal standard will use another revision number
- even if the content is identical to document. The contents in this
- document may change for clarifications but never for added or altered
- functionallity.
-
- Distribution of this document is unlimited.
-
-
-Abstract
-
- This document describes the main structure of ID3v2.4.0, which is a
- revised version of the ID3v2 informal standard [ID3v2] version
- 2.3.0. The ID3v2 offers a flexible way of storing audio meta
- information within the audio file itself. The information may be
- technical information, such as equalisation curves, as well as
- title, performer, copyright etc.
-
- ID3v2.4.0 is meant to be as close as possible to ID3v2.3.0 in order
- to allow for implementations to be revised as easily as possible.
-
-
-1. Table of contents
-
- Status of this document
- Abstract
- 1. Table of contents
- 2. Conventions in this document
- 2. Standard overview
- 3. ID3v2 overview
- 3.1. ID3v2 header
- 3.2. ID3v2 extended header
- 3.3. Padding
- 3.4. ID3v2 footer
- 4. ID3v2 frames overview
- 4.1. Frame header flags
- 4.1.1. Frame status flags
- 4.1.2. Frame format flags
- 5. Tag location
- 6. Unsynchronisation
- 6.1. The unsynchronisation scheme
- 6.2. Synchsafe integers
- 7. Copyright
- 8. References
- 9. Author's Address
-
-
-2. Conventions in this document
-
- Text within "" is a text string exactly as it appears in a tag.
- Numbers preceded with $ are hexadecimal and numbers preceded with %
- are binary. $xx is used to indicate a byte with unknown content. %x
- is used to indicate a bit with unknown content. The most significant
- bit (MSB) of a byte is called 'bit 7' and the least significant bit
- (LSB) is called 'bit 0'.
-
- A tag is the whole tag described in this document. A frame is a block
- of information in the tag. The tag consists of a header, frames and
- optional padding. A field is a piece of information; one value, a
- string etc. A numeric string is a string that consists of the
- characters "0123456789" only.
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119 [KEYWORDS].
-
-
-3. ID3v2 overview
-
- ID3v2 is a general tagging format for audio, which makes it possible
- to store meta data about the audio inside the audio file itself. The
- ID3 tag described in this document is mainly targeted at files
- encoded with MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III
- and MPEG-2.5, but may work with other types of encoded audio or as a
- stand alone format for audio meta data.
-
- ID3v2 is designed to be as flexible and expandable as possible to
- meet new meta information needs that might arise. To achieve that
- ID3v2 is constructed as a container for several information blocks,
- called frames, whose format need not be known to the software that
- encounters them. At the start of every frame is an unique and
- predefined identifier, a size descriptor that allows software to skip
- unknown frames and a flags field. The flags describes encoding
- details and if the frame should remain in the tag, should it be
- unknown to the software, if the file is altered.
-
- The bitorder in ID3v2 is most significant bit first (MSB). The
- byteorder in multibyte numbers is most significant byte first (e.g.
- $12345678 would be encoded $12 34 56 78), also known as big endian
- and network byte order.
-
- Overall tag structure:
-
- +-----------------------------+
- | Header (10 bytes) |
- +-----------------------------+
- | Extended Header |
- | (variable length, OPTIONAL) |
- +-----------------------------+
- | Frames (variable length) |
- +-----------------------------+
- | Padding |
- | (variable length, OPTIONAL) |
- +-----------------------------+
- | Footer (10 bytes, OPTIONAL) |
- +-----------------------------+
-
- In general, padding and footer are mutually exclusive. See details in
- sections 3.3, 3.4 and 5.
-
-
-3.1. ID3v2 header
-
- The first part of the ID3v2 tag is the 10 byte tag header, laid out
- as follows:
-
- ID3v2/file identifier "ID3"
- ID3v2 version $04 00
- ID3v2 flags %abcd0000
- ID3v2 size 4 * %0xxxxxxx
-
- The first three bytes of the tag are always "ID3", to indicate that
- this is an ID3v2 tag, directly followed by the two version bytes. The
- first byte of ID3v2 version is its major version, while the second
- byte is its revision number. In this case this is ID3v2.4.0. All
- revisions are backwards compatible while major versions are not. If
- software with ID3v2.4.0 and below support should encounter version
- five or higher it should simply ignore the whole tag. Version or
- revision will never be $FF.
-
- The version is followed by the ID3v2 flags field, of which currently
- four flags are used.
-
-
- a - Unsynchronisation
-
- Bit 7 in the 'ID3v2 flags' indicates whether or not
- unsynchronisation is applied on all frames (see section 6.1 for
- details); a set bit indicates usage.
-
-
- b - Extended header
-
- The second bit (bit 6) indicates whether or not the header is
- followed by an extended header. The extended header is described in
- section 3.2. A set bit indicates the presence of an extended
- header.
-
-
- c - Experimental indicator
-
- The third bit (bit 5) is used as an 'experimental indicator'. This
- flag SHALL always be set when the tag is in an experimental stage.
-
-
- d - Footer present
-
- Bit 4 indicates that a footer (section 3.4) is present at the very
- end of the tag. A set bit indicates the presence of a footer.
-
-
- All the other flags MUST be cleared. If one of these undefined flags
- are set, the tag might not be readable for a parser that does not
- know the flags function.
-
- The ID3v2 tag size is stored as a 32 bit synchsafe integer (section
- 6.2), making a total of 28 effective bits (representing up to 256MB).
-
- The ID3v2 tag size is the sum of the byte length of the extended
- header, the padding and the frames after unsynchronisation. If a
- footer is present this equals to ('total size' - 20) bytes, otherwise
- ('total size' - 10) bytes.
-
- An ID3v2 tag can be detected with the following pattern:
- $49 44 33 yy yy xx zz zz zz zz
- Where yy is less than $FF, xx is the 'flags' byte and zz is less than
- $80.
-
-
-3.2. Extended header
-
- The extended header contains information that can provide further
- insight in the structure of the tag, but is not vital to the correct
- parsing of the tag information; hence the extended header is
- optional.
-
- Extended header size 4 * %0xxxxxxx
- Number of flag bytes $01
- Extended Flags $xx
-
- Where the 'Extended header size' is the size of the whole extended
- header, stored as a 32 bit synchsafe integer. An extended header can
- thus never have a size of fewer than six bytes.
-
- The extended flags field, with its size described by 'number of flag
- bytes', is defined as:
-
- %0bcd0000
-
- Each flag that is set in the extended header has data attached, which
- comes in the order in which the flags are encountered (i.e. the data
- for flag 'b' comes before the data for flag 'c'). Unset flags cannot
- have any attached data. All unknown flags MUST be unset and their
- corresponding data removed when a tag is modified.
-
- Every set flag's data starts with a length byte, which contains a
- value between 0 and 127 ($00 - $7f), followed by data that has the
- field length indicated by the length byte. If a flag has no attached
- data, the value $00 is used as length byte.
-
-
- b - Tag is an update
-
- If this flag is set, the present tag is an update of a tag found
- earlier in the present file or stream. If frames defined as unique
- are found in the present tag, they are to override any
- corresponding ones found in the earlier tag. This flag has no
- corresponding data.
-
- Flag data length $00
-
- c - CRC data present
-
- If this flag is set, a CRC-32 [ISO-3309] data is included in the
- extended header. The CRC is calculated on all the data between the
- header and footer as indicated by the header's tag length field,
- minus the extended header. Note that this includes the padding (if
- there is any), but excludes the footer. The CRC-32 is stored as an
- 35 bit synchsafe integer, leaving the upper four bits always
- zeroed.
-
- Flag data length $05
- Total frame CRC 5 * %0xxxxxxx
-
- d - Tag restrictions
-
- For some applications it might be desired to restrict a tag in more
- ways than imposed by the ID3v2 specification. Note that the
- presence of these restrictions does not affect how the tag is
- decoded, merely how it was restricted before encoding. If this flag
- is set the tag is restricted as follows:
-
- Flag data length $01
- Restrictions %ppqrrstt
-
- p - Tag size restrictions
-
- 00 No more than 128 frames and 1 MB total tag size.
- 01 No more than 64 frames and 128 KB total tag size.
- 10 No more than 32 frames and 40 KB total tag size.
- 11 No more than 32 frames and 4 KB total tag size.
-
- q - Text encoding restrictions
-
- 0 No restrictions
- 1 Strings are only encoded with ISO-8859-1 [ISO-8859-1] or
- UTF-8 [UTF-8].
-
- r - Text fields size restrictions
-
- 00 No restrictions
- 01 No string is longer than 1024 characters.
- 10 No string is longer than 128 characters.
- 11 No string is longer than 30 characters.
-
- Note that nothing is said about how many bytes is used to
- represent those characters, since it is encoding dependent. If a
- text frame consists of more than one string, the sum of the
- strungs is restricted as stated.
-
- s - Image encoding restrictions
-
- 0 No restrictions
- 1 Images are encoded only with PNG [PNG] or JPEG [JFIF].
-
- t - Image size restrictions
-
- 00 No restrictions
- 01 All images are 256x256 pixels or smaller.
- 10 All images are 64x64 pixels or smaller.
- 11 All images are exactly 64x64 pixels, unless required
- otherwise.
-
-
-3.3. Padding
-
- It is OPTIONAL to include padding after the final frame (at the end
- of the ID3 tag), making the size of all the frames together smaller
- than the size given in the tag header. A possible purpose of this
- padding is to allow for adding a few additional frames or enlarge
- existing frames within the tag without having to rewrite the entire
- file. The value of the padding bytes must be $00. A tag MUST NOT have
- any padding between the frames or between the tag header and the
- frames. Furthermore it MUST NOT have any padding when a tag footer is
- added to the tag.
-
-
-3.4. ID3v2 footer
-
- To speed up the process of locating an ID3v2 tag when searching from
- the end of a file, a footer can be added to the tag. It is REQUIRED
- to add a footer to an appended tag, i.e. a tag located after all
- audio data. The footer is a copy of the header, but with a different
- identifier.
-
- ID3v2 identifier "3DI"
- ID3v2 version $04 00
- ID3v2 flags %abcd0000
- ID3v2 size 4 * %0xxxxxxx
-
-
-4. ID3v2 frame overview
-
- All ID3v2 frames consists of one frame header followed by one or more
- fields containing the actual information. The header is always 10
- bytes and laid out as follows:
-
- Frame ID $xx xx xx xx (four characters)
- Size 4 * %0xxxxxxx
- Flags $xx xx
-
- The frame ID is made out of the characters capital A-Z and 0-9.
- Identifiers beginning with "X", "Y" and "Z" are for experimental
- frames and free for everyone to use, without the need to set the
- experimental bit in the tag header. Bear in mind that someone else
- might have used the same identifier as you. All other identifiers are
- either used or reserved for future use.
-
- The frame ID is followed by a size descriptor containing the size of
- the data in the final frame, after encryption, compression and
- unsynchronisation. The size is excluding the frame header ('total
- frame size' - 10 bytes) and stored as a 32 bit synchsafe integer.
-
- In the frame header the size descriptor is followed by two flag
- bytes. These flags are described in section 4.1.
-
- There is no fixed order of the frames' appearance in the tag,
- although it is desired that the frames are arranged in order of
- significance concerning the recognition of the file. An example of
- such order: UFID, TIT2, MCDI, TRCK ...
-
- A tag MUST contain at least one frame. A frame must be at least 1
- byte big, excluding the header.
-
- If nothing else is said, strings, including numeric strings and URLs
- [URL], are represented as ISO-8859-1 [ISO-8859-1] characters in the
- range $20 - $FF. Such strings are represented in frame descriptions
- as <text string>, or <full text string> if newlines are allowed. If
- nothing else is said newline character is forbidden. In ISO-8859-1 a
- newline is represented, when allowed, with $0A only.
-
- Frames that allow different types of text encoding contains a text
- encoding description byte. Possible encodings:
-
- $00 ISO-8859-1 [ISO-8859-1]. Terminated with $00.
- $01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All
- strings in the same frame SHALL have the same byteorder.
- Terminated with $00 00.
- $02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM.
- Terminated with $00 00.
- $03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00.
-
- Strings dependent on encoding are represented in frame descriptions
- as <text string according to encoding>, or <full text string
- according to encoding> if newlines are allowed. Any empty strings of
- type $01 which are NULL-terminated may have the Unicode BOM followed
- by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).
-
- The timestamp fields are based on a subset of ISO 8601. When being as
- precise as possible the format of a time string is
- yyyy-MM-ddTHH:mm:ss (year, "-", month, "-", day, "T", hour (out of
- 24), ":", minutes, ":", seconds), but the precision may be reduced by
- removing as many time indicators as wanted. Hence valid timestamps
- are
- yyyy, yyyy-MM, yyyy-MM-dd, yyyy-MM-ddTHH, yyyy-MM-ddTHH:mm and
- yyyy-MM-ddTHH:mm:ss. All time stamps are UTC. For durations, use
- the slash character as described in 8601, and for multiple non-
- contiguous dates, use multiple strings, if allowed by the frame
- definition.
-
- The three byte language field, present in several frames, is used to
- describe the language of the frame's content, according to ISO-639-2
- [ISO-639-2]. The language should be represented in lower case. If the
- language is not known the string "XXX" should be used.
-
- All URLs [URL] MAY be relative, e.g. "picture.png", "../doc.txt".
-
- If a frame is longer than it should be, e.g. having more fields than
- specified in this document, that indicates that additions to the
- frame have been made in a later version of the ID3v2 standard. This
- is reflected by the revision number in the header of the tag.
-
-
-4.1. Frame header flags
-
- In the frame header the size descriptor is followed by two flag
- bytes. All unused flags MUST be cleared. The first byte is for
- 'status messages' and the second byte is a format description. If an
- unknown flag is set in the first byte the frame MUST NOT be changed
- without that bit cleared. If an unknown flag is set in the second
- byte the frame is likely to not be readable. Some flags in the second
- byte indicates that extra information is added to the header. These
- fields of extra information is ordered as the flags that indicates
- them. The flags field is defined as follows (l and o left out because
- ther resemblence to one and zero):
-
- %0abc0000 %0h00kmnp
-
- Some frame format flags indicate that additional information fields
- are added to the frame. This information is added after the frame
- header and before the frame data in the same order as the flags that
- indicates them. I.e. the four bytes of decompressed size will precede
- the encryption method byte. These additions affects the 'frame size'
- field, but are not subject to encryption or compression.
-
- The default status flags setting for a frame is, unless stated
- otherwise, 'preserved if tag is altered' and 'preserved if file is
- altered', i.e. %00000000.
-
-
-4.1.1. Frame status flags
-
- a - Tag alter preservation
-
- This flag tells the tag parser what to do with this frame if it is
- unknown and the tag is altered in any way. This applies to all
- kinds of alterations, including adding more padding and reordering
- the frames.
-
- 0 Frame should be preserved.
- 1 Frame should be discarded.
-
-
- b - File alter preservation
-
- This flag tells the tag parser what to do with this frame if it is
- unknown and the file, excluding the tag, is altered. This does not
- apply when the audio is completely replaced with other audio data.
-
- 0 Frame should be preserved.
- 1 Frame should be discarded.
-
-
- c - Read only
-
- This flag, if set, tells the software that the contents of this
- frame are intended to be read only. Changing the contents might
- break something, e.g. a signature. If the contents are changed,
- without knowledge of why the frame was flagged read only and
- without taking the proper means to compensate, e.g. recalculating
- the signature, the bit MUST be cleared.
-
-
-4.1.2. Frame format flags
-
- h - Grouping identity
-
- This flag indicates whether or not this frame belongs in a group
- with other frames. If set, a group identifier byte is added to the
- frame. Every frame with the same group identifier belongs to the
- same group.
-
- 0 Frame does not contain group information
- 1 Frame contains group information
-
-
- k - Compression
-
- This flag indicates whether or not the frame is compressed.
- A 'Data Length Indicator' byte MUST be included in the frame.
-
- 0 Frame is not compressed.
- 1 Frame is compressed using zlib [zlib] deflate method.
- If set, this requires the 'Data Length Indicator' bit
- to be set as well.
-
-
- m - Encryption
-
- This flag indicates whether or not the frame is encrypted. If set,
- one byte indicating with which method it was encrypted will be
- added to the frame. See description of the ENCR frame for more
- information about encryption method registration. Encryption
- should be done after compression. Whether or not setting this flag
- requires the presence of a 'Data Length Indicator' depends on the
- specific algorithm used.
-
- 0 Frame is not encrypted.
- 1 Frame is encrypted.
-
- n - Unsynchronisation
-
- This flag indicates whether or not unsynchronisation was applied
- to this frame. See section 6 for details on unsynchronisation.
- If this flag is set all data from the end of this header to the
- end of this frame has been unsynchronised. Although desirable, the
- presence of a 'Data Length Indicator' is not made mandatory by
- unsynchronisation.
-
- 0 Frame has not been unsynchronised.
- 1 Frame has been unsyrchronised.
-
- p - Data length indicator
-
- This flag indicates that a data length indicator has been added to
- the frame. The data length indicator is the value one would write
- as the 'Frame length' if all of the frame format flags were
- zeroed, represented as a 32 bit synchsafe integer.
-
- 0 There is no Data Length Indicator.
- 1 A data length Indicator has been added to the frame.
-
-
-5. Tag location
-
- The default location of an ID3v2 tag is prepended to the audio so
- that players can benefit from the information when the data is
- streamed. It is however possible to append the tag, or make a
- prepend/append combination. When deciding upon where an unembedded
- tag should be located, the following order of preference SHOULD be
- considered.
-
- 1. Prepend the tag.
-
- 2. Prepend a tag with all vital information and add a second tag at
- the end of the file, before tags from other tagging systems. The
- first tag is required to have a SEEK frame.
-
- 3. Add a tag at the end of the file, before tags from other tagging
- systems.
-
- In case 2 and 3 the tag can simply be appended if no other known tags
- are present. The suggested method to find ID3v2 tags are:
-
- 1. Look for a prepended tag using the pattern found in section 3.1.
-
- 2. If a SEEK frame was found, use its values to guide further
- searching.
-
- 3. Look for a tag footer, scanning from the back of the file.
-
- For every new tag that is found, the old tag should be discarded
- unless the update flag in the extended header (section 3.2) is set.
-
-
-6. Unsynchronisation
-
- The only purpose of unsynchronisation is to make the ID3v2 tag as
- compatible as possible with existing software and hardware. There is
- no use in 'unsynchronising' tags if the file is only to be processed
- only by ID3v2 aware software and hardware. Unsynchronisation is only
- useful with tags in MPEG 1/2 layer I, II and III, MPEG 2.5 and AAC
- files.
-
-
-6.1. The unsynchronisation scheme
-
- Whenever a false synchronisation is found within the tag, one zeroed
- byte is inserted after the first false synchronisation byte. The
- format of synchronisations that should be altered by ID3 encoders is
- as follows:
-
- %11111111 111xxxxx
-
- and should be replaced with:
-
- %11111111 00000000 111xxxxx
-
- This has the side effect that all $FF 00 combinations have to be
- altered, so they will not be affected by the decoding process.
- Therefore all the $FF 00 combinations have to be replaced with the
- $FF 00 00 combination during the unsynchronisation.
-
- To indicate usage of the unsynchronisation, the unsynchronisation
- flag in the frame header should be set. This bit MUST be set if the
- frame was altered by the unsynchronisation and SHOULD NOT be set if
- unaltered. If all frames in the tag are unsynchronised the
- unsynchronisation flag in the tag header SHOULD be set. It MUST NOT
- be set if the tag has a frame which is not unsynchronised.
-
- Assume the first byte of the audio to be $FF. The special case when
- the last byte of the last frame is $FF and no padding nor footer is
- used will then introduce a false synchronisation. This can be solved
- by adding a footer, adding padding or unsynchronising the frame and
- add $00 to the end of the frame data, thus adding more byte to the
- frame size than a normal unsynchronisation would. Although not
- preferred, it is allowed to apply the last method on all frames
- ending with $FF.
-
- It is preferred that the tag is either completely unsynchronised or
- not unsynchronised at all. A completely unsynchronised tag has no
- false synchonisations in it, as defined above, and does not end with
- $FF. A completely non-unsynchronised tag contains no unsynchronised
- frames, and thus the unsynchronisation flag in the header is cleared.
-
- Do bear in mind, that if compression or encryption is used, the
- unsynchronisation scheme MUST be applied afterwards. When decoding an
- unsynchronised frame, the unsynchronisation scheme MUST be reversed
- first, encryption and decompression afterwards.
-
-
-6.2. Synchsafe integers
-
- In some parts of the tag it is inconvenient to use the
- unsychronisation scheme because the size of unsynchronised data is
- not known in advance, which is particularly problematic with size
- descriptors. The solution in ID3v2 is to use synchsafe integers, in
- which there can never be any false synchs. Synchsafe integers are
- integers that keep its highest bit (bit 7) zeroed, making seven bits
- out of eight available. Thus a 32 bit synchsafe integer can store 28
- bits of information.
-
- Example:
-
- 255 (%11111111) encoded as a 16 bit synchsafe integer is 383
- (%00000001 01111111).
-
-
-7. Copyright
-
- Copyright (C) Martin Nilsson 2000. All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that a reference to this document is included on all
- such copies and derivative works. However, this document itself may
- not be modified in any way and reissued as the original document.
-
- The limited permissions granted above are perpetual and will not be
- revoked.
-
- This document and the information contained herein is provided on an
- 'AS IS' basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-8. References
-
- [ID3v2] Martin Nilsson, 'ID3v2 informal standard'.
-
- <url:http://www.id3.org/id3v2.3.0.txt>
-
- [ISO-639-2] ISO/FDIS 639-2.
- 'Codes for the representation of names of languages, Part 2: Alpha-3
- code.' Technical committee / subcommittee: TC 37 / SC 2
-
- [ISO-3309] ISO 3309
- 'Information Processing Systems--Data Communication High-Level Data
- Link Control Procedure--Frame Structure', IS 3309, October 1984, 3rd
- Edition.
-
- [ISO-8859-1] ISO/IEC DIS 8859-1.
- '8-bit single-byte coded graphic character sets, Part 1: Latin
- alphabet No. 1.' Technical committee / subcommittee: JTC 1 / SC 2
-
- [JFIF] 'JPEG File Interchange Format, version 1.02'
-
- <url:http://www.w3.org/Graphics/JPEG/jfif.txt>
-
- [KEYWORDS] S. Bradner, 'Key words for use in RFCs to Indicate
- Requirement Levels', RFC 2119, March 1997.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2119.txt>
-
- [MPEG] ISO/IEC 11172-3:1993.
- 'Coding of moving pictures and associated audio for digital storage
- media at up to about 1,5 Mbit/s, Part 3: Audio.'
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC 13818-3:1995
- 'Generic coding of moving pictures and associated audio information,
- Part 3: Audio.'
- Technical committee / subcommittee: JTC 1 / SC 29
- and
- ISO/IEC DIS 13818-3
- 'Generic coding of moving pictures and associated audio information,
- Part 3: Audio (Revision of ISO/IEC 13818-3:1995)'
-
- [PNG] 'Portable Network Graphics, version 1.0'
-
- <url:http://www.w3.org/TR/REC-png-multi.html>
-
- [UNICODE] The Unicode Consortium,
- 'The Unicode Standard Version 3.0', ISBN 0-201-61633-5.
-
- <url:http://www.unicode.org/unicode/standard/versions/Unicode3.0.htm>
-
- [URL] T. Berners-Lee, L. Masinter & M. McCahill, 'Uniform Resource
- Locators (URL)', RFC 1738, December 1994.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc1738.txt>
-
- [UTF-8] F. Yergeau, 'UTF-8, a transformation format of ISO 10646',
- RFC 2279, January 1998.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2279.txt>
-
- [UTF-16] F. Yergeau, 'UTF-16, an encoding of ISO 10646', RFC 2781,
- February 2000.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc2781.txt>
-
- [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, 'ZLIB
- Compressed Data Format Specification version 3.3', RFC 1950,
- May 1996.
-
- <url:ftp://ftp.isi.edu/in-notes/rfc1950.txt>
-
-
-9. Author's Address
-
- Written by
-
- Martin Nilsson
- Rydsvägen 246 C. 30
- SE-584 34 Linköping
- Sweden
-
- Email: nilsson@id3.org
-
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.cpp
deleted file mode 100644
index bd470a0add..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "id3v2extendedheader.h"
-#include "id3v2synchdata.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class ExtendedHeader::ExtendedHeaderPrivate
-{
-public:
- ExtendedHeaderPrivate() : size(0) {}
-
- uint size;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public methods
-////////////////////////////////////////////////////////////////////////////////
-
-ExtendedHeader::ExtendedHeader()
-{
- d = new ExtendedHeaderPrivate();
-}
-
-ExtendedHeader::~ExtendedHeader()
-{
- delete d;
-}
-
-TagLib::uint ExtendedHeader::size() const
-{
- return d->size;
-}
-
-void ExtendedHeader::setData(const ByteVector &data)
-{
- parse(data);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void ExtendedHeader::parse(const ByteVector &data)
-{
- d->size = SynchData::toUInt(data.mid(0, 4)); // (structure 3.2 "Extended header size")
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.h b/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.h
deleted file mode 100644
index 9750fae69a..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2extendedheader.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2EXTENDEDHEADER_H
-#define TAGLIB_ID3V2EXTENDEDHEADER_H
-
-#include "taglib_export.h"
-#include "tbytevector.h"
-#include "taglib.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! ID3v2 extended header implementation
-
- /*!
- * This class implements ID3v2 extended headers. It attempts to follow,
- * both semantically and programatically, the structure specified in
- * the ID3v2 standard. The API is based on the properties of ID3v2 extended
- * headers specified there. If any of the terms used in this documentation
- * are unclear please check the specification in the linked section.
- * (Structure, <a href="id3v2-structure.html#3.2">3.2</a>)
- */
-
- class TAGLIB_EXPORT ExtendedHeader
- {
- public:
- /*!
- * Constructs an empty ID3v2 extended header.
- */
- ExtendedHeader();
-
- /*!
- * Destroys the extended header.
- */
- virtual ~ExtendedHeader();
-
- /*!
- * Returns the size of the extended header. This is variable for the
- * extended header.
- */
- uint size() const;
-
- /*!
- * Sets the data that will be used as the extended header. Since the
- * length is not known before the extended header has been parsed, this
- * should just be a pointer to the first byte of the extended header. It
- * will determine the length internally and make that available through
- * size().
- */
- void setData(const ByteVector &data);
-
- protected:
- /*!
- * Called by setData() to parse the extended header data. It makes this
- * information available through the public API.
- */
- void parse(const ByteVector &data);
-
- private:
- ExtendedHeader(const ExtendedHeader &);
- ExtendedHeader &operator=(const ExtendedHeader &);
-
- class ExtendedHeaderPrivate;
- ExtendedHeaderPrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2footer.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2footer.cpp
deleted file mode 100644
index 8ac79a8185..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2footer.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "id3v2footer.h"
-#include "id3v2header.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class Footer::FooterPrivate
-{
-public:
- static const uint size = 10;
-};
-
-Footer::Footer()
-{
-
-}
-
-Footer::~Footer()
-{
-
-}
-
-unsigned int Footer::size()
-{
- return FooterPrivate::size;
-}
-
-ByteVector Footer::render(const Header *header) const
-{
- ByteVector headerData = header->render();
- headerData[0] = '3';
- headerData[1] = 'D';
- headerData[2] = 'I';
- return headerData;
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2footer.h b/libs/taglib/taglib/mpeg/id3v2/id3v2footer.h
deleted file mode 100644
index 86d3ff9763..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2footer.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2FOOTER_H
-#define TAGLIB_ID3V2FOOTER_H
-
-#include "taglib_export.h"
-#include "tbytevector.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- class Header;
-
- //! ID3v2 footer implementation
-
- /*!
- * Per the ID3v2 specification, the tag's footer is just a copy of the
- * information in the header. As such there is no API for reading the
- * data from the header, it can just as easily be done from the header.
- *
- * In fact, at this point, TagLib does not even parse the footer since
- * it is not useful internally. However, if the flag to include a footer
- * has been set in the ID3v2::Tag, TagLib will render a footer.
- */
-
- class TAGLIB_EXPORT Footer
- {
- public:
- /*!
- * Constructs an empty ID3v2 footer.
- */
- Footer();
- /*!
- * Destroys the footer.
- */
- virtual ~Footer();
-
- /*!
- * Returns the size of the footer. Presently this is always 10 bytes.
- */
- static unsigned int size();
-
- /*!
- * Renders the footer based on the data in \a header.
- */
- ByteVector render(const Header *header) const;
-
- private:
- Footer(const Footer &);
- Footer &operator=(const Footer &);
-
- class FooterPrivate;
- FooterPrivate *d;
- };
-
- }
-}
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2frame.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2frame.cpp
deleted file mode 100644
index 52f0849af3..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2frame.cpp
+++ /dev/null
@@ -1,551 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef HAVE_ZLIB
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#endif
-
-#if HAVE_ZLIB
-#include <zlib.h>
-#endif
-
-#include <bitset>
-
-#include <tdebug.h>
-#include <tstringlist.h>
-
-#include "id3v2frame.h"
-#include "id3v2synchdata.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class Frame::FramePrivate
-{
-public:
- FramePrivate() :
- header(0)
- {}
-
- ~FramePrivate()
- {
- delete header;
- }
-
- Frame::Header *header;
-};
-
-namespace
-{
- bool isValidFrameID(const ByteVector &frameID)
- {
- if(frameID.size() != 4)
- return false;
-
- for(ByteVector::ConstIterator it = frameID.begin(); it != frameID.end(); it++) {
- if( (*it < 'A' || *it > 'Z') && (*it < '1' || *it > '9') ) {
- return false;
- }
- }
- return true;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// static methods
-////////////////////////////////////////////////////////////////////////////////
-
-TagLib::uint Frame::headerSize()
-{
- return Header::size();
-}
-
-TagLib::uint Frame::headerSize(uint version)
-{
- return Header::size(version);
-}
-
-ByteVector Frame::textDelimiter(String::Type t)
-{
- ByteVector d = char(0);
- if(t == String::UTF16 || t == String::UTF16BE || t == String::UTF16LE)
- d.append(char(0));
- return d;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Frame::~Frame()
-{
- delete d;
-}
-
-ByteVector Frame::frameID() const
-{
- if(d->header)
- return d->header->frameID();
- else
- return ByteVector::null;
-}
-
-TagLib::uint Frame::size() const
-{
- if(d->header)
- return d->header->frameSize();
- else
- return 0;
-}
-
-void Frame::setData(const ByteVector &data)
-{
- parse(data);
-}
-
-void Frame::setText(const String &)
-{
-
-}
-
-ByteVector Frame::render() const
-{
- ByteVector fieldData = renderFields();
- d->header->setFrameSize(fieldData.size());
- ByteVector headerData = d->header->render();
-
- return headerData + fieldData;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-Frame::Frame(const ByteVector &data)
-{
- d = new FramePrivate;
- d->header = new Header(data);
-}
-
-Frame::Frame(Header *h)
-{
- d = new FramePrivate;
- d->header = h;
-}
-
-Frame::Header *Frame::header() const
-{
- return d->header;
-}
-
-void Frame::setHeader(Header *h, bool deleteCurrent)
-{
- if(deleteCurrent)
- delete d->header;
-
- d->header = h;
-}
-
-void Frame::parse(const ByteVector &data)
-{
- if(d->header)
- d->header->setData(data);
- else
- d->header = new Header(data);
-
- parseFields(fieldData(data));
-}
-
-ByteVector Frame::fieldData(const ByteVector &frameData) const
-{
- uint headerSize = Header::size(d->header->version());
-
- uint frameDataOffset = headerSize;
- uint frameDataLength = size();
-
- if(d->header->compression() || d->header->dataLengthIndicator()) {
- frameDataLength = SynchData::toUInt(frameData.mid(headerSize, 4));
- frameDataOffset += 4;
- }
-
-#if HAVE_ZLIB
- if(d->header->compression() &&
- !d->header->encryption())
- {
- ByteVector data(frameDataLength);
- uLongf uLongTmp = frameDataLength;
- ::uncompress((Bytef *) data.data(),
- (uLongf *) &uLongTmp,
- (Bytef *) frameData.data() + frameDataOffset,
- size());
- return data;
- }
- else
-#endif
- return frameData.mid(frameDataOffset, frameDataLength);
-}
-
-String Frame::readStringField(const ByteVector &data, String::Type encoding, int *position)
-{
- int start = 0;
-
- if(!position)
- position = &start;
-
- ByteVector delimiter = textDelimiter(encoding);
-
- int end = data.find(delimiter, *position, delimiter.size());
-
- if(end < *position)
- return String::null;
-
- String str = String(data.mid(*position, end - *position), encoding);
-
- *position = end + delimiter.size();
-
- return str;
-}
-
-String::Type Frame::checkEncoding(const StringList &fields, String::Type encoding) // static
-{
- if(encoding != String::Latin1)
- return encoding;
-
- for(StringList::ConstIterator it = fields.begin(); it != fields.end(); ++it) {
- if(!(*it).isLatin1()) {
- debug("Frame::checkEncoding() -- Rendering using UTF8.");
- return String::UTF8;
- }
- }
-
- return String::Latin1;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Frame::Header class
-////////////////////////////////////////////////////////////////////////////////
-
-class Frame::Header::HeaderPrivate
-{
-public:
- HeaderPrivate() :
- frameSize(0),
- version(4),
- tagAlterPreservation(false),
- fileAlterPreservation(false),
- readOnly(false),
- groupingIdentity(false),
- compression(false),
- encryption(false),
- unsynchronisation(false),
- dataLengthIndicator(false)
- {}
-
- ByteVector frameID;
- uint frameSize;
- uint version;
-
- // flags
-
- bool tagAlterPreservation;
- bool fileAlterPreservation;
- bool readOnly;
- bool groupingIdentity;
- bool compression;
- bool encryption;
- bool unsynchronisation;
- bool dataLengthIndicator;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members (Frame::Header)
-////////////////////////////////////////////////////////////////////////////////
-
-TagLib::uint Frame::Header::size()
-{
- return size(4);
-}
-
-TagLib::uint Frame::Header::size(uint version)
-{
- switch(version) {
- case 0:
- case 1:
- case 2:
- return 6;
- case 3:
- case 4:
- default:
- return 10;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members (Frame::Header)
-////////////////////////////////////////////////////////////////////////////////
-
-Frame::Header::Header(const ByteVector &data, bool synchSafeInts)
-{
- d = new HeaderPrivate;
- setData(data, synchSafeInts);
-}
-
-Frame::Header::Header(const ByteVector &data, uint version)
-{
- d = new HeaderPrivate;
- setData(data, version);
-}
-
-Frame::Header::~Header()
-{
- delete d;
-}
-
-void Frame::Header::setData(const ByteVector &data, bool synchSafeInts)
-{
- setData(data, uint(synchSafeInts ? 4 : 3));
-}
-
-void Frame::Header::setData(const ByteVector &data, uint version)
-{
- d->version = version;
-
- switch(version) {
- case 0:
- case 1:
- case 2:
- {
- // ID3v2.2
-
- if(data.size() < 3) {
- debug("You must at least specify a frame ID.");
- return;
- }
-
- // Set the frame ID -- the first three bytes
-
- d->frameID = data.mid(0, 3);
-
- // If the full header information was not passed in, do not continue to the
- // steps to parse the frame size and flags.
-
- if(data.size() < 6) {
- d->frameSize = 0;
- return;
- }
-
- d->frameSize = data.mid(3, 3).toUInt();
-
- break;
- }
- case 3:
- {
- // ID3v2.3
-
- if(data.size() < 4) {
- debug("You must at least specify a frame ID.");
- return;
- }
-
- // Set the frame ID -- the first four bytes
-
- d->frameID = data.mid(0, 4);
-
- // If the full header information was not passed in, do not continue to the
- // steps to parse the frame size and flags.
-
- if(data.size() < 10) {
- d->frameSize = 0;
- return;
- }
-
- // Set the size -- the frame size is the four bytes starting at byte four in
- // the frame header (structure 4)
-
- d->frameSize = data.mid(4, 4).toUInt();
-
- { // read the first byte of flags
- std::bitset<8> flags(data[8]);
- d->tagAlterPreservation = flags[7]; // (structure 3.3.1.a)
- d->fileAlterPreservation = flags[6]; // (structure 3.3.1.b)
- d->readOnly = flags[5]; // (structure 3.3.1.c)
- }
-
- { // read the second byte of flags
- std::bitset<8> flags(data[9]);
- d->compression = flags[7]; // (structure 3.3.1.i)
- d->encryption = flags[6]; // (structure 3.3.1.j)
- d->groupingIdentity = flags[5]; // (structure 3.3.1.k)
- }
- break;
- }
- case 4:
- default:
- {
- // ID3v2.4
-
- if(data.size() < 4) {
- debug("You must at least specify a frame ID.");
- return;
- }
-
- // Set the frame ID -- the first four bytes
-
- d->frameID = data.mid(0, 4);
-
- // If the full header information was not passed in, do not continue to the
- // steps to parse the frame size and flags.
-
- if(data.size() < 10) {
- d->frameSize = 0;
- return;
- }
-
- // Set the size -- the frame size is the four bytes starting at byte four in
- // the frame header (structure 4)
-
- d->frameSize = SynchData::toUInt(data.mid(4, 4));
-#ifndef NO_ITUNES_HACKS
- // iTunes writes v2.4 tags with v2.3-like frame sizes
- if(d->frameSize > 127) {
- if(!isValidFrameID(data.mid(d->frameSize + 10, 4))) {
- unsigned int uintSize = data.mid(4, 4).toUInt();
- if(isValidFrameID(data.mid(uintSize + 10, 4))) {
- d->frameSize = uintSize;
- }
- }
- }
-#endif
-
- { // read the first byte of flags
- std::bitset<8> flags(data[8]);
- d->tagAlterPreservation = flags[6]; // (structure 4.1.1.a)
- d->fileAlterPreservation = flags[5]; // (structure 4.1.1.b)
- d->readOnly = flags[4]; // (structure 4.1.1.c)
- }
-
- { // read the second byte of flags
- std::bitset<8> flags(data[9]);
- d->groupingIdentity = flags[6]; // (structure 4.1.2.h)
- d->compression = flags[3]; // (structure 4.1.2.k)
- d->encryption = flags[2]; // (structure 4.1.2.m)
- d->unsynchronisation = flags[1]; // (structure 4.1.2.n)
- d->dataLengthIndicator = flags[0]; // (structure 4.1.2.p)
- }
- break;
- }
- }
-}
-
-ByteVector Frame::Header::frameID() const
-{
- return d->frameID;
-}
-
-void Frame::Header::setFrameID(const ByteVector &id)
-{
- d->frameID = id.mid(0, 4);
-}
-
-TagLib::uint Frame::Header::frameSize() const
-{
- return d->frameSize;
-}
-
-void Frame::Header::setFrameSize(uint size)
-{
- d->frameSize = size;
-}
-
-TagLib::uint Frame::Header::version() const
-{
- return d->version;
-}
-
-bool Frame::Header::tagAlterPreservation() const
-{
- return d->tagAlterPreservation;
-}
-
-void Frame::Header::setTagAlterPreservation(bool preserve)
-{
- d->tagAlterPreservation = preserve;
-}
-
-bool Frame::Header::fileAlterPreservation() const
-{
- return d->fileAlterPreservation;
-}
-
-bool Frame::Header::readOnly() const
-{
- return d->readOnly;
-}
-
-bool Frame::Header::groupingIdentity() const
-{
- return d->groupingIdentity;
-}
-
-bool Frame::Header::compression() const
-{
- return d->compression;
-}
-
-bool Frame::Header::encryption() const
-{
- return d->encryption;
-}
-
-bool Frame::Header::unsycronisation() const
-{
- return unsynchronisation();
-}
-
-bool Frame::Header::unsynchronisation() const
-{
- return d->unsynchronisation;
-}
-
-bool Frame::Header::dataLengthIndicator() const
-{
- return d->dataLengthIndicator;
-}
-
-ByteVector Frame::Header::render() const
-{
- ByteVector flags(2, char(0)); // just blank for the moment
-
- ByteVector v = d->frameID + SynchData::fromUInt(d->frameSize) + flags;
-
- return v;
-}
-
-bool Frame::Header::frameAlterPreservation() const
-{
- return fileAlterPreservation();
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2frame.h b/libs/taglib/taglib/mpeg/id3v2/id3v2frame.h
deleted file mode 100644
index e76d060820..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2frame.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2FRAME_H
-#define TAGLIB_ID3V2FRAME_H
-
-#include "tstring.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- class StringList;
-
- namespace ID3v2 {
-
- class Tag;
- class FrameFactory;
-
- //! ID3v2 frame implementation
-
- /*!
- * This class is the main ID3v2 frame implementation. In ID3v2, a tag is
- * split between a collection of frames (which are in turn split into fields
- * (Structure, <a href="id3v2-structure.html#4">4</a>)
- * (<a href="id3v2-frames.html">Frames</a>). This class provides an API for
- * gathering information about and modifying ID3v2 frames. Funtionallity
- * specific to a given frame type is handed in one of the many subclasses.
- */
-
- class TAGLIB_EXPORT Frame
- {
- friend class Tag;
- friend class FrameFactory;
-
- public:
- /*!
- * Destroys this Frame instance.
- */
- virtual ~Frame();
-
- /*!
- * Returns the Frame ID (Structure, <a href="id3v2-structure.html#4">4</a>)
- * (Frames, <a href="id3v2-frames.html#4">4</a>)
- */
- ByteVector frameID() const;
-
- /*!
- * Returns the size of the frame.
- */
- uint size() const;
-
- /*!
- * Returns the size of the frame header
- *
- * \deprecated This is only accurate for ID3v2.3 or ID3v2.4. Please use
- * the call below which accepts an ID3v2 version number. In the next
- * non-binary compatible release this will be made into a non-static
- * member that checks the internal ID3v2 version.
- */
- static uint headerSize(); // BIC: remove and make non-static
-
- /*!
- * Returns the size of the frame header for the given ID3v2 version.
- *
- * \deprecated Please see the explanation above.
- */
- static uint headerSize(uint version); // BIC: remove and make non-static
-
- /*!
- * Sets the data that will be used as the frame. Since the length is not
- * known before the frame has been parsed, this should just be a pointer to
- * the first byte of the frame. It will determine the length internally
- * and make that available through size().
- */
- void setData(const ByteVector &data);
-
- /*!
- * Set the text of frame in the sanest way possible. This should only be
- * reimplemented in frames where there is some logical mapping to text.
- *
- * \note If the frame type supports multiple text encodings, this will not
- * change the text encoding of the frame; the string will be converted to
- * that frame's encoding. Please use the specific APIs of the frame types
- * to set the encoding if that is desired.
- */
- virtual void setText(const String &text);
-
- /*!
- * This returns the textual representation of the data in the frame.
- * Subclasses must reimplement this method to provide a string
- * representation of the frame's data.
- */
- virtual String toString() const = 0;
-
- /*!
- * Render the frame back to its binary format in a ByteVector.
- */
- ByteVector render() const;
-
- /*!
- * Returns the text delimiter that is used between fields for the string
- * type \a t.
- */
- static ByteVector textDelimiter(String::Type t);
-
- protected:
- class Header;
-
- /*!
- * Constructs an ID3v2 frame using \a data to read the header information.
- * All other processing of \a data should be handled in a subclass.
- *
- * \note This need not contain anything more than a frame ID, but
- * \e must constain at least that.
- */
- explicit Frame(const ByteVector &data);
-
- /*!
- * This creates an Frame using the header \a h.
- *
- * The ownership of this header will be assigned to the frame and the
- * header will be deleted when the frame is destroyed.
- */
- Frame(Header *h);
-
- /*!
- * Returns a pointer to the frame header.
- */
- Header *header() const;
-
- /*!
- * Sets the header to \a h. If \a deleteCurrent is true, this will free
- * the memory of the current header.
- *
- * The ownership of this header will be assigned to the frame and the
- * header will be deleted when the frame is destroyed.
- */
- void setHeader(Header *h, bool deleteCurrent = true);
-
- /*!
- * Called by setData() to parse the frame data. It makes this information
- * available through the public API.
- */
- void parse(const ByteVector &data);
-
- /*!
- * Called by parse() to parse the field data. It makes this information
- * available through the public API. This must be overridden by the
- * subclasses.
- */
- virtual void parseFields(const ByteVector &data) = 0;
-
- /*!
- * Render the field data back to a binary format in a ByteVector. This
- * must be overridden by subclasses.
- */
- virtual ByteVector renderFields() const = 0;
-
- /*!
- * Returns a ByteVector containing the field data given the frame data.
- * This correctly adjusts for the header size plus any additional frame
- * data that's specified in the frame header flags.
- */
- ByteVector fieldData(const ByteVector &frameData) const;
-
- /*!
- * Reads a String of type \a encodiong from the ByteVector \a data. If \a
- * position is passed in it is used both as the starting point and is
- * updated to replect the position just after the string that has been read.
- * This is useful for reading strings sequentially.
- */
- String readStringField(const ByteVector &data, String::Type encoding,
- int *positon = 0);
-
- /*!
- * Checks a the list of string values to see if they can be used with the
- * specified encoding and returns the recommended encoding.
- */
- static String::Type checkEncoding(const StringList &fields,
- String::Type encoding);
-
- private:
- Frame(const Frame &);
- Frame &operator=(const Frame &);
-
- class FramePrivate;
- friend class FramePrivate;
- FramePrivate *d;
- };
-
- //! ID3v2 frame header implementation
-
- /*!
- * The ID3v2 Frame Header (Structure, <a href="id3v2-structure.html#4">4</a>)
- *
- * Every ID3v2::Frame has an associated header that gives some general
- * properties of the frame and also makes it possible to identify the frame
- * type.
- *
- * As such when reading an ID3v2 tag ID3v2::FrameFactory first creates the
- * frame headers and then creates the appropriate Frame subclass based on
- * the type and attaches the header.
- */
-
- class TAGLIB_EXPORT Frame::Header
- {
- public:
- /*!
- * Construct a Frame Header based on \a data. \a data must at least
- * contain a 4 byte frame ID, and optionally can contain flag data and the
- * frame size. i.e. Just the frame id -- "TALB" -- is a valid value.
- *
- * \deprecated Please use the constructor below that accepts a version
- * number.
- */
- Header(const ByteVector &data, bool synchSafeInts);
-
- /*!
- * Construct a Frame Header based on \a data. \a data must at least
- * contain a 4 byte frame ID, and optionally can contain flag data and the
- * frame size. i.e. Just the frame id -- "TALB" -- is a valid value.
- *
- * \a version should be the ID3v2 version of the tag.
- */
- explicit Header(const ByteVector &data, uint version = 4);
-
- /*!
- * Destroys this Header instance.
- */
- virtual ~Header();
-
- /*!
- * Sets the data for the Header.
- *
- * \deprecated Please use the version below that accepts an ID3v2 version
- * number.
- */
- void setData(const ByteVector &data, bool synchSafeInts);
-
- /*!
- * Sets the data for the Header. \a version should indicate the ID3v2
- * version number of the tag that this frame is contained in.
- */
- void setData(const ByteVector &data, uint version = 4);
-
- /*!
- * Returns the Frame ID (Structure, <a href="id3v2-structure.html#4">4</a>)
- * (Frames, <a href="id3v2-frames.html#4">4</a>)
- */
- ByteVector frameID() const;
-
- /*!
- * Sets the frame's ID to \a id. Only the first four bytes of \a id will
- * be used.
- *
- * \warning This method should in general be avoided. It exists simply to
- * provide a mechanism for transforming frames from a deprecated frame type
- * to a newer one -- i.e. TYER to TDRC from ID3v2.3 to ID3v2.4.
- */
- void setFrameID(const ByteVector &id);
-
- /*!
- * Returns the size of the frame data portion, as set when setData() was
- * called or set explicitly via setFrameSize().
- */
- uint frameSize() const;
-
- /*!
- * Sets the size of the frame data portion.
- */
- void setFrameSize(uint size);
-
- /*!
- * Returns the ID3v2 version of the header (as passed in from the
- * construction of the header).
- */
- uint version() const;
-
- /*!
- * Returns the size of the frame header in bytes.
- *
- * \deprecated Please use the version of this method that accepts a
- * version. This is only accurate for ID3v2.3 and ID3v2.4. This will be
- * removed in the next binary incompatible release (2.0) and will be
- * replaced with a non-static method that checks the frame version.
- */
- static uint size();
-
- /*!
- * Returns the size of the frame header in bytes for the ID3v2 version
- * that's given.
- *
- * \deprecated Please see the explanation in the version above.
- */
- static uint size(uint version);
-
- /*!
- * Returns true if the flag for tag alter preservation is set.
- *
- * The semantics are a little backwards from what would seem natural
- * (setting the preservation flag to throw away the frame), but this
- * follows the ID3v2 standard.
- *
- * \see setTagAlterPreservation()
- */
- bool tagAlterPreservation() const;
-
- /*!
- * Sets the flag for preservation of this frame if the tag is set. If
- * this is set to true the frame will not be written when the tag is
- * saved.
- *
- * The semantics are a little backwards from what would seem natural
- * (setting the preservation flag to throw away the frame), but this
- * follows the ID3v2 standard.
- *
- * \see tagAlterPreservation()
- */
- void setTagAlterPreservation(bool discard);
-
- /*!
- * Returns true if the flag for file alter preservation is set.
- *
- * \note This flag is currently ignored internally in TagLib.
- */
- bool fileAlterPreservation() const;
-
- /*!
- * Returns true if the frame is meant to be read only.
- *
- * \note This flag is currently ignored internally in TagLib.
- */
- bool readOnly() const;
-
- /*!
- * Returns true if the flag for the grouping identifity is set.
- *
- * \note This flag is currently ignored internally in TagLib.
- */
- bool groupingIdentity() const;
-
- /*!
- * Returns true if compression is enabled for this frame.
- *
- * \note This flag is currently ignored internally in TagLib.
- */
- bool compression() const;
-
- /*!
- * Returns true if encryption is enabled for this frame.
- *
- * \note This flag is currently ignored internally in TagLib.
- */
- bool encryption() const;
-
-#ifndef DO_NOT_DOCUMENT
- bool unsycronisation() const;
-#endif
-
- /*!
- * Returns true if unsynchronisation is enabled for this frame.
- */
- bool unsynchronisation() const;
-
- /*!
- * Returns true if the flag for a data length indicator is set.
- */
- bool dataLengthIndicator() const;
-
- /*!
- * Render the Header back to binary format in a ByteVector.
- */
- ByteVector render() const;
-
- /*!
- * \deprecated
- */
- bool frameAlterPreservation() const;
-
- private:
- Header(const Header &);
- Header &operator=(const Header &);
-
- class HeaderPrivate;
- HeaderPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.cpp
deleted file mode 100644
index 0c6f7706f5..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.cpp
+++ /dev/null
@@ -1,409 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef HAVE_ZLIB
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#endif
-
-#include <tdebug.h>
-
-#include "id3v2framefactory.h"
-#include "id3v2synchdata.h"
-
-#include "frames/attachedpictureframe.h"
-#include "frames/commentsframe.h"
-#include "frames/relativevolumeframe.h"
-#include "frames/textidentificationframe.h"
-#include "frames/uniquefileidentifierframe.h"
-#include "frames/unknownframe.h"
-#include "frames/generalencapsulatedobjectframe.h"
-#include "frames/urllinkframe.h"
-#include "frames/unsynchronizedlyricsframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class FrameFactory::FrameFactoryPrivate
-{
-public:
- FrameFactoryPrivate() :
- defaultEncoding(String::Latin1),
- useDefaultEncoding(false) {}
-
- String::Type defaultEncoding;
- bool useDefaultEncoding;
-
- template <class T> void setTextEncoding(T *frame)
- {
- if(useDefaultEncoding)
- frame->setTextEncoding(defaultEncoding);
- }
-};
-
-FrameFactory *FrameFactory::factory = 0;
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-FrameFactory *FrameFactory::instance()
-{
- if(!factory)
- factory = new FrameFactory;
- return factory;
-}
-
-Frame *FrameFactory::createFrame(const ByteVector &data, bool synchSafeInts) const
-{
- return createFrame(data, uint(synchSafeInts ? 4 : 3));
-}
-
-Frame *FrameFactory::createFrame(const ByteVector &data, uint version) const
-{
- Header tagHeader;
- tagHeader.setMajorVersion(version);
- return createFrame(data, &tagHeader);
-}
-
-Frame *FrameFactory::createFrame(const ByteVector &origData, Header *tagHeader) const
-{
- ByteVector data = origData;
- uint version = tagHeader->majorVersion();
- Frame::Header *header = new Frame::Header(data, version);
- ByteVector frameID = header->frameID();
-
- // A quick sanity check -- make sure that the frameID is 4 uppercase Latin1
- // characters. Also make sure that there is data in the frame.
-
- if(!frameID.size() == (version < 3 ? 3 : 4) ||
- header->frameSize() <= uint(header->dataLengthIndicator() ? 4 : 0) ||
- header->frameSize() > data.size())
- {
- delete header;
- return 0;
- }
-
- for(ByteVector::ConstIterator it = frameID.begin(); it != frameID.end(); it++) {
- if( (*it < 'A' || *it > 'Z') && (*it < '1' || *it > '9') ) {
- delete header;
- return 0;
- }
- }
-
- if(version > 3 && (tagHeader->unsynchronisation() || header->unsynchronisation())) {
- // Data lengths are not part of the encoded data, but since they are synch-safe
- // integers they will be never actually encoded.
- ByteVector frameData = data.mid(Frame::Header::size(version), header->frameSize());
- frameData = SynchData::decode(frameData);
- data = data.mid(0, Frame::Header::size(version)) + frameData;
- }
-
- // TagLib doesn't mess with encrypted frames, so just treat them
- // as unknown frames.
-
-#if HAVE_ZLIB == 0
- if(header->compression()) {
- debug("Compressed frames are currently not supported.");
- return new UnknownFrame(data, header);
- }
-#endif
- if(header->encryption()) {
- debug("Encrypted frames are currently not supported.");
- return new UnknownFrame(data, header);
- }
-
- if(!updateFrame(header)) {
- header->setTagAlterPreservation(true);
- return new UnknownFrame(data, header);
- }
-
- // updateFrame() might have updated the frame ID.
-
- frameID = header->frameID();
-
- // This is where things get necissarily nasty. Here we determine which
- // Frame subclass (or if none is found simply an Frame) based
- // on the frame ID. Since there are a lot of possibilities, that means
- // a lot of if blocks.
-
- // Text Identification (frames 4.2)
-
- if(frameID.startsWith("T")) {
-
- TextIdentificationFrame *f = frameID != "TXXX"
- ? new TextIdentificationFrame(data, header)
- : new UserTextIdentificationFrame(data, header);
-
- d->setTextEncoding(f);
-
- if(frameID == "TCON")
- updateGenre(f);
-
- return f;
- }
-
- // Comments (frames 4.10)
-
- if(frameID == "COMM") {
- CommentsFrame *f = new CommentsFrame(data, header);
- d->setTextEncoding(f);
- return f;
- }
-
- // Attached Picture (frames 4.14)
-
- if(frameID == "APIC") {
- AttachedPictureFrame *f = new AttachedPictureFrame(data, header);
- d->setTextEncoding(f);
- return f;
- }
-
- // Relative Volume Adjustment (frames 4.11)
-
- if(frameID == "RVA2")
- return new RelativeVolumeFrame(data, header);
-
- // Unique File Identifier (frames 4.1)
-
- if(frameID == "UFID")
- return new UniqueFileIdentifierFrame(data, header);
-
- // General Encapsulated Object (frames 4.15)
-
- if(frameID == "GEOB") {
- GeneralEncapsulatedObjectFrame *f = new GeneralEncapsulatedObjectFrame(data, header);
- d->setTextEncoding(f);
- return f;
- }
-
- // URL link (frames 4.3)
-
- if(frameID.startsWith("W")) {
- if(frameID != "WXXX") {
- return new UrlLinkFrame(data, header);
- }
- else {
- UserUrlLinkFrame *f = new UserUrlLinkFrame(data, header);
- d->setTextEncoding(f);
- return f;
- }
- }
-
- // Unsynchronized lyric/text transcription (frames 4.8)
-
- if(frameID == "USLT") {
- UnsynchronizedLyricsFrame *f = new UnsynchronizedLyricsFrame(data, header);
- if(d->useDefaultEncoding)
- f->setTextEncoding(d->defaultEncoding);
- return f;
- }
-
- return new UnknownFrame(data, header);
-}
-
-String::Type FrameFactory::defaultTextEncoding() const
-{
- return d->defaultEncoding;
-}
-
-void FrameFactory::setDefaultTextEncoding(String::Type encoding)
-{
- d->useDefaultEncoding = true;
- d->defaultEncoding = encoding;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-FrameFactory::FrameFactory()
-{
- d = new FrameFactoryPrivate;
-}
-
-FrameFactory::~FrameFactory()
-{
- delete d;
-}
-
-bool FrameFactory::updateFrame(Frame::Header *header) const
-{
- TagLib::ByteVector frameID = header->frameID();
-
- switch(header->version()) {
-
- case 2: // ID3v2.2
- {
- if(frameID == "CRM" ||
- frameID == "EQU" ||
- frameID == "LNK" ||
- frameID == "RVA" ||
- frameID == "TIM" ||
- frameID == "TSI")
- {
- debug("ID3v2.4 no longer supports the frame type " + String(frameID) +
- ". It will be discarded from the tag.");
- return false;
- }
-
- // ID3v2.2 only used 3 bytes for the frame ID, so we need to convert all of
- // the frames to their 4 byte ID3v2.4 equivalent.
-
- convertFrame("BUF", "RBUF", header);
- convertFrame("CNT", "PCNT", header);
- convertFrame("COM", "COMM", header);
- convertFrame("CRA", "AENC", header);
- convertFrame("ETC", "ETCO", header);
- convertFrame("GEO", "GEOB", header);
- convertFrame("IPL", "TIPL", header);
- convertFrame("MCI", "MCDI", header);
- convertFrame("MLL", "MLLT", header);
- convertFrame("PIC", "APIC", header);
- convertFrame("POP", "POPM", header);
- convertFrame("REV", "RVRB", header);
- convertFrame("SLT", "SYLT", header);
- convertFrame("STC", "SYTC", header);
- convertFrame("TAL", "TALB", header);
- convertFrame("TBP", "TBPM", header);
- convertFrame("TCM", "TCOM", header);
- convertFrame("TCO", "TCON", header);
- convertFrame("TCR", "TCOP", header);
- convertFrame("TDA", "TDRC", header);
- convertFrame("TDY", "TDLY", header);
- convertFrame("TEN", "TENC", header);
- convertFrame("TFT", "TFLT", header);
- convertFrame("TKE", "TKEY", header);
- convertFrame("TLA", "TLAN", header);
- convertFrame("TLE", "TLEN", header);
- convertFrame("TMT", "TMED", header);
- convertFrame("TOA", "TOAL", header);
- convertFrame("TOF", "TOFN", header);
- convertFrame("TOL", "TOLY", header);
- convertFrame("TOR", "TDOR", header);
- convertFrame("TOT", "TOAL", header);
- convertFrame("TP1", "TPE1", header);
- convertFrame("TP2", "TPE2", header);
- convertFrame("TP3", "TPE3", header);
- convertFrame("TP4", "TPE4", header);
- convertFrame("TPA", "TPOS", header);
- convertFrame("TPB", "TPUB", header);
- convertFrame("TRC", "TSRC", header);
- convertFrame("TRD", "TDRC", header);
- convertFrame("TRK", "TRCK", header);
- convertFrame("TSS", "TSSE", header);
- convertFrame("TT1", "TIT1", header);
- convertFrame("TT2", "TIT2", header);
- convertFrame("TT3", "TIT3", header);
- convertFrame("TXT", "TOLY", header);
- convertFrame("TXX", "TXXX", header);
- convertFrame("TYE", "TDRC", header);
- convertFrame("UFI", "UFID", header);
- convertFrame("ULT", "USLT", header);
- convertFrame("WAF", "WOAF", header);
- convertFrame("WAR", "WOAR", header);
- convertFrame("WAS", "WOAS", header);
- convertFrame("WCM", "WCOM", header);
- convertFrame("WCP", "WCOP", header);
- convertFrame("WPB", "WPUB", header);
- convertFrame("WXX", "WXXX", header);
-
- break;
- }
-
- case 3: // ID3v2.3
- {
- if(frameID == "EQUA" ||
- frameID == "RVAD" ||
- frameID == "TIME" ||
- frameID == "TRDA" ||
- frameID == "TSIZ" ||
- frameID == "TDAT")
- {
- debug("ID3v2.4 no longer supports the frame type " + String(frameID) +
- ". It will be discarded from the tag.");
- return false;
- }
-
- convertFrame("TORY", "TDOR", header);
- convertFrame("TYER", "TDRC", header);
-
- break;
- }
-
- default:
-
- // This should catch a typo that existed in TagLib up to and including
- // version 1.1 where TRDC was used for the year rather than TDRC.
-
- convertFrame("TRDC", "TDRC", header);
- break;
- }
-
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void FrameFactory::convertFrame(const char *from, const char *to,
- Frame::Header *header) const
-{
- if(header->frameID() != from)
- return;
-
- // debug("ID3v2.4 no longer supports the frame type " + String(from) + " It has" +
- // "been converted to the type " + String(to) + ".");
-
- header->setFrameID(to);
-}
-
-void FrameFactory::updateGenre(TextIdentificationFrame *frame) const
-{
- StringList fields;
- String s = frame->toString();
-
- while(s.startsWith("(")) {
-
- int closing = s.find(")");
-
- if(closing < 0)
- break;
-
- fields.append(s.substr(1, closing - 1));
-
- s = s.substr(closing + 1);
- }
-
- if(!s.isEmpty())
- fields.append(s);
-
- if(fields.isEmpty())
- fields.append(String::null);
-
- frame->setText(fields);
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.h b/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.h
deleted file mode 100644
index 15eb61b7dd..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2framefactory.h
+++ /dev/null
@@ -1,167 +0,0 @@
- /***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2FRAMEFACTORY_H
-#define TAGLIB_ID3V2FRAMEFACTORY_H
-
-#include "taglib_export.h"
-#include "tbytevector.h"
-#include "id3v2frame.h"
-#include "id3v2header.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- class TAGLIB_EXPORT TextIdentificationFrame;
-
- //! A factory for creating ID3v2 frames during parsing
-
- /*!
- * This factory abstracts away the frame creation process and instantiates
- * the appropriate ID3v2::Frame subclasses based on the contents of the
- * data.
- *
- * Reimplementing this factory is the key to adding support for frame types
- * not directly supported by TagLib to your application. To do so you would
- * subclass this factory reimplement createFrame(). Then by setting your
- * factory to be the default factory in ID3v2::Tag constructor or with
- * MPEG::File::setID3v2FrameFactory() you can implement behavior that will
- * allow for new ID3v2::Frame subclasses (also provided by you) to be used.
- *
- * This implements both <i>abstract factory</i> and <i>singleton</i> patterns
- * of which more information is available on the web and in software design
- * textbooks (Notably <i>Design Patters</i>).
- *
- * \note You do not need to use this factory to create new frames to add to
- * an ID3v2::Tag. You can instantiate frame subclasses directly (with new)
- * and add them to a tag using ID3v2::Tag::addFrame()
- *
- * \see ID3v2::Tag::addFrame()
- */
-
- class TAGLIB_EXPORT FrameFactory
- {
- public:
- static FrameFactory *instance();
- /*!
- * Create a frame based on \a data. \a synchSafeInts should only be set
- * false if we are parsing an old tag (v2.3 or older) that does not support
- * synchsafe ints.
- *
- * \deprecated Please use the method below that accepts a ID3v2::Header
- * instance in new code.
- */
- Frame *createFrame(const ByteVector &data, bool synchSafeInts) const;
-
- /*!
- * Create a frame based on \a data. \a version should indicate the ID3v2
- * version of the tag. As ID3v2.4 is the most current version of the
- * standard 4 is the default.
- *
- * \deprecated Please use the method below that accepts a ID3v2::Header
- * instance in new code.
- */
- Frame *createFrame(const ByteVector &data, uint version = 4) const;
-
- /*!
- * Create a frame based on \a data. \a tagHeader should be a valid
- * ID3v2::Header instance.
- */
- // BIC: make virtual
- Frame *createFrame(const ByteVector &data, Header *tagHeader) const;
-
- /*!
- * Returns the default text encoding for text frames. If setTextEncoding()
- * has not been explicitly called this will only be used for new text
- * frames. However, if this value has been set explicitly all frames will be
- * converted to this type (unless it's explitly set differently for the
- * individual frame) when being rendered.
- *
- * \see setDefaultTextEncoding()
- */
- String::Type defaultTextEncoding() const;
-
- /*!
- * Set the default text encoding for all text frames that are created to
- * \a encoding. If no value is set the frames with either default to the
- * encoding type that was parsed and new frames default to Latin1.
- *
- * Valid string types for ID3v2 tags are Latin1, UTF8, UTF16 and UTF16BE.
- *
- * \see defaultTextEncoding()
- */
- void setDefaultTextEncoding(String::Type encoding);
-
- protected:
- /*!
- * Constructs a frame factory. Because this is a singleton this method is
- * protected, but may be used for subclasses.
- */
- FrameFactory();
-
- /*!
- * Destroys the frame factory. In most cases this will never be called (as
- * is typical of singletons).
- */
- virtual ~FrameFactory();
-
- /*!
- * This method checks for compliance to the current ID3v2 standard (2.4)
- * and does nothing in the common case. However if a frame is found that
- * is not compatible with the current standard, this method either updates
- * the frame or indicates that it should be discarded.
- *
- * This method with return true (with or without changes to the frame) if
- * this frame should be kept or false if it should be discarded.
- *
- * See the id3v2.4.0-changes.txt document for further information.
- */
- virtual bool updateFrame(Frame::Header *header) const;
-
- private:
- FrameFactory(const FrameFactory &);
- FrameFactory &operator=(const FrameFactory &);
-
- /*!
- * This method is used internally to convert a frame from ID \a from to ID
- * \a to. If the frame matches the \a from pattern and converts the frame
- * ID in the \a header or simply does nothing if the frame ID does not match.
- */
- void convertFrame(const char *from, const char *to,
- Frame::Header *header) const;
-
- void updateGenre(TextIdentificationFrame *frame) const;
-
- static FrameFactory *factory;
-
- class FrameFactoryPrivate;
- FrameFactoryPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2header.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2header.cpp
deleted file mode 100644
index e14adcce15..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2header.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <iostream>
-#include <bitset>
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "id3v2header.h"
-#include "id3v2footer.h"
-#include "id3v2synchdata.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class Header::HeaderPrivate
-{
-public:
- HeaderPrivate() : majorVersion(4),
- revisionNumber(0),
- unsynchronisation(false),
- extendedHeader(false),
- experimentalIndicator(false),
- footerPresent(false),
- tagSize(0) {}
-
- ~HeaderPrivate() {}
-
- uint majorVersion;
- uint revisionNumber;
-
- bool unsynchronisation;
- bool extendedHeader;
- bool experimentalIndicator;
- bool footerPresent;
-
- uint tagSize;
-
- static const uint size = 10;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members
-////////////////////////////////////////////////////////////////////////////////
-
-TagLib::uint Header::size()
-{
- return HeaderPrivate::size;
-}
-
-ByteVector Header::fileIdentifier()
-{
- return ByteVector::fromCString("ID3");
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Header::Header()
-{
- d = new HeaderPrivate;
-}
-
-Header::Header(const ByteVector &data)
-{
- d = new HeaderPrivate;
- parse(data);
-}
-
-Header::~Header()
-{
- delete d;
-}
-
-TagLib::uint Header::majorVersion() const
-{
- return d->majorVersion;
-}
-
-void Header::setMajorVersion(TagLib::uint version)
-{
- d->majorVersion = version;
-}
-
-TagLib::uint Header::revisionNumber() const
-{
- return d->revisionNumber;
-}
-
-bool Header::unsynchronisation() const
-{
- return d->unsynchronisation;
-}
-
-bool Header::extendedHeader() const
-{
- return d->extendedHeader;
-}
-
-bool Header::experimentalIndicator() const
-{
- return d->experimentalIndicator;
-}
-
-bool Header::footerPresent() const
-{
- return d->footerPresent;
-}
-
-TagLib::uint Header::tagSize() const
-{
- return d->tagSize;
-}
-
-TagLib::uint Header::completeTagSize() const
-{
- if(d->footerPresent)
- return d->tagSize + d->size + Footer::size();
- else
- return d->tagSize + d->size;
-}
-
-void Header::setTagSize(uint s)
-{
- d->tagSize = s;
-}
-
-void Header::setData(const ByteVector &data)
-{
- parse(data);
-}
-
-ByteVector Header::render() const
-{
- ByteVector v;
-
- // add the file identifier -- "ID3"
- v.append(fileIdentifier());
-
- // add the version number -- we always render a 2.4.0 tag regardless of what
- // the tag originally was.
-
- v.append(char(4));
- v.append(char(0));
-
- // Currently we don't actually support writing extended headers, footers or
- // unsynchronized tags, make sure that the flags are set accordingly.
-
- d->extendedHeader = false;
- d->footerPresent = false;
- d->unsynchronisation = false;
-
- // render and add the flags
- std::bitset<8> flags;
-
- flags[7] = d->unsynchronisation;
- flags[6] = d->extendedHeader;
- flags[5] = d->experimentalIndicator;
- flags[4] = d->footerPresent;
-
- v.append(char(flags.to_ulong()));
-
- // add the size
- v.append(SynchData::fromUInt(d->tagSize));
-
- return v;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void Header::parse(const ByteVector &data)
-{
- if(data.size() < size())
- return;
-
-
- // do some sanity checking -- even in ID3v2.3.0 and less the tag size is a
- // synch-safe integer, so all bytes must be less than 128. If this is not
- // true then this is an invalid tag.
-
- // note that we're doing things a little out of order here -- the size is
- // later in the bytestream than the version
-
- ByteVector sizeData = data.mid(6, 4);
-
- if(sizeData.size() != 4) {
- d->tagSize = 0;
- debug("TagLib::ID3v2::Header::parse() - The tag size as read was 0 bytes!");
- return;
- }
-
- for(ByteVector::Iterator it = sizeData.begin(); it != sizeData.end(); it++) {
- if(uchar(*it) >= 128) {
- d->tagSize = 0;
- debug("TagLib::ID3v2::Header::parse() - One of the size bytes in the id3v2 header was greater than the allowed 128.");
- return;
- }
- }
-
- // The first three bytes, data[0..2], are the File Identifier, "ID3". (structure 3.1 "file identifier")
-
- // Read the version number from the fourth and fifth bytes.
- d->majorVersion = data[3]; // (structure 3.1 "major version")
- d->revisionNumber = data[4]; // (structure 3.1 "revision number")
-
- // Read the flags, the first four bits of the sixth byte.
- std::bitset<8> flags(data[5]);
-
- d->unsynchronisation = flags[7]; // (structure 3.1.a)
- d->extendedHeader = flags[6]; // (structure 3.1.b)
- d->experimentalIndicator = flags[5]; // (structure 3.1.c)
- d->footerPresent = flags[4]; // (structure 3.1.d)
-
- // Get the size from the remaining four bytes (read above)
-
- d->tagSize = SynchData::toUInt(sizeData); // (structure 3.1 "size")
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2header.h b/libs/taglib/taglib/mpeg/id3v2/id3v2header.h
deleted file mode 100644
index 99a7e7ff7c..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2header.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2HEADER_H
-#define TAGLIB_ID3V2HEADER_H
-
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An implementation of ID3v2 headers
-
- /*!
- * This class implements ID3v2 headers. It attempts to follow, both
- * semantically and programatically, the structure specified in
- * the ID3v2 standard. The API is based on the properties of ID3v2 headers
- * specified there. If any of the terms used in this documentation are
- * unclear please check the specification in the linked section.
- * (Structure, <a href="id3v2-structure.html#3.1">3.1</a>)
- */
-
- class TAGLIB_EXPORT Header
- {
- public:
- /*!
- * Constructs an empty ID3v2 header.
- */
- Header();
-
- /*!
- * Constructs an ID3v2 header based on \a data. parse() is called
- * immediately.
- */
- Header(const ByteVector &data);
-
- /*!
- * Destroys the header.
- */
- virtual ~Header();
-
- /*!
- * Returns the major version number. (Note: This is the 4, not the 2 in
- * ID3v2.4.0. The 2 is implied.)
- */
- uint majorVersion() const;
-
- /*!
- * Set the the major version number to \a version. (Note: This is
- * the 4, not the 2 in ID3v2.4.0. The 2 is implied.)
- * \see majorVersion()
- *
- * \note This is used by the internal parser; this will not change the
- * version which is written and in general should not be called by API
- * users.
- */
- void setMajorVersion(uint version);
-
- /*!
- * Returns the revision number. (Note: This is the 0, not the 4 in
- * ID3v2.4.0. The 2 is implied.)
- */
- uint revisionNumber() const;
-
- /*!
- * Returns true if unsynchronisation has been applied to all frames.
- */
- bool unsynchronisation() const;
-
- /*!
- * Returns true if an extended header is present in the tag.
- */
- bool extendedHeader() const;
-
- /*!
- * Returns true if the experimental indicator flag is set.
- */
- bool experimentalIndicator() const;
-
- /*!
- * Returns true if a footer is present in the tag.
- */
- bool footerPresent() const;
- /*!
- * Returns the tag size in bytes. This is the size of the frame content.
- * The size of the \e entire tag will be this plus the header size (10
- * bytes) and, if present, the footer size (potentially another 10 bytes).
- *
- * \note This is the value as read from the header to which TagLib attempts
- * to provide an API to; it was not a design decision on the part of TagLib
- * to not include the mentioned portions of the tag in the \e size.
- *
- * \see completeTagSize()
- */
- uint tagSize() const;
-
- /*!
- * Returns the tag size, including the header and, if present, the footer
- * size.
- *
- * \see tagSize()
- */
- uint completeTagSize() const;
-
- /*!
- * Set the tag size to \a s.
- * \see tagSize()
- */
- void setTagSize(uint s);
-
- /*!
- * Returns the size of the header. Presently this is always 10 bytes.
- */
- static uint size();
-
- /*!
- * Returns the string used to identify and ID3v2 tag inside of a file.
- * Presently this is always "ID3".
- */
- static ByteVector fileIdentifier();
-
- /*!
- * Sets the data that will be used as the header. 10 bytes, starting from
- * the beginning of \a data are used.
- */
- void setData(const ByteVector &data);
-
- /*!
- * Renders the Header back to binary format.
- */
- ByteVector render() const;
-
- protected:
- /*!
- * Called by setData() to parse the header data. It makes this information
- * available through the public API.
- */
- void parse(const ByteVector &data);
-
- private:
- Header(const Header &);
- Header &operator=(const Header &);
-
- class HeaderPrivate;
- HeaderPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.cpp
deleted file mode 100644
index 17503ba543..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <iostream>
-
-#include "id3v2synchdata.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-TagLib::uint SynchData::toUInt(const ByteVector &data)
-{
- uint sum = 0;
- int last = data.size() > 4 ? 3 : data.size() - 1;
-
- for(int i = 0; i <= last; i++)
- sum |= (data[i] & 0x7f) << ((last - i) * 7);
-
- return sum;
-}
-
-ByteVector SynchData::fromUInt(uint value)
-{
- ByteVector v(4, 0);
-
- for(int i = 0; i < 4; i++)
- v[i] = uchar(value >> ((3 - i) * 7) & 0x7f);
-
- return v;
-}
-
-ByteVector SynchData::decode(const ByteVector &data)
-{
- ByteVector result = data;
-
- ByteVector pattern(2, char(0));
- pattern[0] = '\xFF';
- pattern[1] = '\x00';
-
- return result.replace(pattern, '\xFF');
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.h b/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.h
deleted file mode 100644
index 86e0bfe551..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2synchdata.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2SYNCHDATA_H
-#define TAGLIB_ID3V2SYNCHDATA_H
-
-#include "tbytevector.h"
-#include "taglib.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! A few functions for ID3v2 synch safe integer conversion
-
- /*!
- * In the ID3v2.4 standard most integer values are encoded as "synch safe"
- * integers which are encoded in such a way that they will not give false
- * MPEG syncs and confuse MPEG decoders. This namespace provides some
- * methods for converting to and from these values to ByteVectors for
- * things rendering and parsing ID3v2 data.
- */
-
- namespace SynchData
- {
- /*!
- * This returns the unsigned integer value of \a data where \a data is a
- * ByteVector that contains a \e synchsafe integer (Structure,
- * <a href="id3v2-structure.html#6.2">6.2</a>). The default \a length of
- * 4 is used if another value is not specified.
- */
- TAGLIB_EXPORT uint toUInt(const ByteVector &data);
-
- /*!
- * Returns a 4 byte (32 bit) synchsafe integer based on \a value.
- */
- TAGLIB_EXPORT ByteVector fromUInt(uint value);
-
- /*!
- * Convert the data from unsynchronized data to its original format.
- */
- TAGLIB_EXPORT ByteVector decode(const ByteVector &input);
- }
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2tag.cpp b/libs/taglib/taglib/mpeg/id3v2/id3v2tag.cpp
deleted file mode 100644
index 1e9eb3f83f..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2tag.cpp
+++ /dev/null
@@ -1,475 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tfile.h>
-#include <tdebug.h>
-
-#include "id3v2tag.h"
-#include "id3v2header.h"
-#include "id3v2extendedheader.h"
-#include "id3v2footer.h"
-#include "id3v2synchdata.h"
-
-#include "id3v1genres.h"
-
-#include "frames/textidentificationframe.h"
-#include "frames/commentsframe.h"
-
-using namespace TagLib;
-using namespace ID3v2;
-
-class ID3v2::Tag::TagPrivate
-{
-public:
- TagPrivate() : file(0), tagOffset(-1), extendedHeader(0), footer(0), paddingSize(0)
- {
- frameList.setAutoDelete(true);
- }
- ~TagPrivate()
- {
- delete extendedHeader;
- delete footer;
- }
-
- File *file;
- long tagOffset;
- const FrameFactory *factory;
-
- Header header;
- ExtendedHeader *extendedHeader;
- Footer *footer;
-
- int paddingSize;
-
- FrameListMap frameListMap;
- FrameList frameList;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-ID3v2::Tag::Tag() : TagLib::Tag()
-{
- d = new TagPrivate;
- d->factory = FrameFactory::instance();
-}
-
-ID3v2::Tag::Tag(File *file, long tagOffset, const FrameFactory *factory) :
- TagLib::Tag()
-{
- d = new TagPrivate;
-
- d->file = file;
- d->tagOffset = tagOffset;
- d->factory = factory;
-
- read();
-}
-
-ID3v2::Tag::~Tag()
-{
- delete d;
-}
-
-
-String ID3v2::Tag::title() const
-{
- if(!d->frameListMap["TIT2"].isEmpty())
- return d->frameListMap["TIT2"].front()->toString();
- return String::null;
-}
-
-String ID3v2::Tag::artist() const
-{
- if(!d->frameListMap["TPE1"].isEmpty())
- return d->frameListMap["TPE1"].front()->toString();
- return String::null;
-}
-
-String ID3v2::Tag::album() const
-{
- if(!d->frameListMap["TALB"].isEmpty())
- return d->frameListMap["TALB"].front()->toString();
- return String::null;
-}
-
-String ID3v2::Tag::comment() const
-{
- const FrameList &comments = d->frameListMap["COMM"];
-
- if(comments.isEmpty())
- return String::null;
-
- for(FrameList::ConstIterator it = comments.begin(); it != comments.end(); ++it)
- {
- if(static_cast<CommentsFrame *>(*it)->description().isEmpty())
- return (*it)->toString();
- }
-
- return comments.front()->toString();
-}
-
-String ID3v2::Tag::genre() const
-{
- // TODO: In the next major version (TagLib 2.0) a list of multiple genres
- // should be separated by " / " instead of " ". For the moment to keep
- // the behavior the same as released versions it is being left with " ".
-
- if(d->frameListMap["TCON"].isEmpty() ||
- !dynamic_cast<TextIdentificationFrame *>(d->frameListMap["TCON"].front()))
- {
- return String::null;
- }
-
- // ID3v2.4 lists genres as the fields in its frames field list. If the field
- // is simply a number it can be assumed that it is an ID3v1 genre number.
- // Here was assume that if an ID3v1 string is present that it should be
- // appended to the genre string. Multiple fields will be appended as the
- // string is built.
-
- TextIdentificationFrame *f = static_cast<TextIdentificationFrame *>(
- d->frameListMap["TCON"].front());
-
- StringList fields = f->fieldList();
-
- StringList genres;
-
- for(StringList::Iterator it = fields.begin(); it != fields.end(); ++it) {
-
- bool isNumber = true;
-
- for(String::ConstIterator charIt = (*it).begin();
- isNumber && charIt != (*it).end();
- ++charIt)
- {
- isNumber = *charIt >= '0' && *charIt <= '9';
- }
-
- if(isNumber) {
- int number = (*it).toInt();
- if(number >= 0 && number <= 255)
- *it = ID3v1::genre(number);
- }
-
- if(std::find(genres.begin(), genres.end(), *it) == genres.end())
- genres.append(*it);
- }
-
- return genres.toString();
-}
-
-TagLib::uint ID3v2::Tag::year() const
-{
- if(!d->frameListMap["TDRC"].isEmpty())
- return d->frameListMap["TDRC"].front()->toString().substr(0, 4).toInt();
- return 0;
-}
-
-TagLib::uint ID3v2::Tag::track() const
-{
- if(!d->frameListMap["TRCK"].isEmpty())
- return d->frameListMap["TRCK"].front()->toString().toInt();
- return 0;
-}
-
-void ID3v2::Tag::setTitle(const String &s)
-{
- setTextFrame("TIT2", s);
-}
-
-void ID3v2::Tag::setArtist(const String &s)
-{
- setTextFrame("TPE1", s);
-}
-
-void ID3v2::Tag::setAlbum(const String &s)
-{
- setTextFrame("TALB", s);
-}
-
-void ID3v2::Tag::setComment(const String &s)
-{
- if(s.isEmpty()) {
- removeFrames("COMM");
- return;
- }
-
- if(!d->frameListMap["COMM"].isEmpty())
- d->frameListMap["COMM"].front()->setText(s);
- else {
- CommentsFrame *f = new CommentsFrame(d->factory->defaultTextEncoding());
- addFrame(f);
- f->setText(s);
- }
-}
-
-void ID3v2::Tag::setGenre(const String &s)
-{
- if(s.isEmpty()) {
- removeFrames("TCON");
- return;
- }
-
- // iTunes can't handle correctly encoded ID3v2.4 numerical genres. Just use
- // strings until iTunes sucks less.
-
-#ifdef NO_ITUNES_HACKS
-
- int index = ID3v1::genreIndex(s);
-
- if(index != 255)
- setTextFrame("TCON", String::number(index));
- else
- setTextFrame("TCON", s);
-
-#else
-
- setTextFrame("TCON", s);
-
-#endif
-}
-
-void ID3v2::Tag::setYear(uint i)
-{
- if(i <= 0) {
- removeFrames("TDRC");
- return;
- }
- setTextFrame("TDRC", String::number(i));
-}
-
-void ID3v2::Tag::setTrack(uint i)
-{
- if(i <= 0) {
- removeFrames("TRCK");
- return;
- }
- setTextFrame("TRCK", String::number(i));
-}
-
-bool ID3v2::Tag::isEmpty() const
-{
- return d->frameList.isEmpty();
-}
-
-Header *ID3v2::Tag::header() const
-{
- return &(d->header);
-}
-
-ExtendedHeader *ID3v2::Tag::extendedHeader() const
-{
- return d->extendedHeader;
-}
-
-Footer *ID3v2::Tag::footer() const
-{
- return d->footer;
-}
-
-const FrameListMap &ID3v2::Tag::frameListMap() const
-{
- return d->frameListMap;
-}
-
-const FrameList &ID3v2::Tag::frameList() const
-{
- return d->frameList;
-}
-
-const FrameList &ID3v2::Tag::frameList(const ByteVector &frameID) const
-{
- return d->frameListMap[frameID];
-}
-
-void ID3v2::Tag::addFrame(Frame *frame)
-{
- d->frameList.append(frame);
- d->frameListMap[frame->frameID()].append(frame);
-}
-
-void ID3v2::Tag::removeFrame(Frame *frame, bool del)
-{
- // remove the frame from the frame list
- FrameList::Iterator it = d->frameList.find(frame);
- d->frameList.erase(it);
-
- // ...and from the frame list map
- it = d->frameListMap[frame->frameID()].find(frame);
- d->frameListMap[frame->frameID()].erase(it);
-
- // ...and delete as desired
- if(del)
- delete frame;
-}
-
-void ID3v2::Tag::removeFrames(const ByteVector &id)
-{
- FrameList l = d->frameListMap[id];
- for(FrameList::Iterator it = l.begin(); it != l.end(); ++it)
- removeFrame(*it, true);
-}
-
-ByteVector ID3v2::Tag::render() const
-{
- // We need to render the "tag data" first so that we have to correct size to
- // render in the tag's header. The "tag data" -- everything that is included
- // in ID3v2::Header::tagSize() -- includes the extended header, frames and
- // padding, but does not include the tag's header or footer.
-
- ByteVector tagData;
-
- // TODO: Render the extended header.
-
- // Loop through the frames rendering them and adding them to the tagData.
-
- for(FrameList::Iterator it = d->frameList.begin(); it != d->frameList.end(); it++) {
- if(!(*it)->header()->tagAlterPreservation())
- tagData.append((*it)->render());
- }
-
- // Compute the amount of padding, and append that to tagData.
-
- uint paddingSize = 0;
- uint originalSize = d->header.tagSize();
-
- if(tagData.size() < originalSize)
- paddingSize = originalSize - tagData.size();
- else
- paddingSize = 1024;
-
- tagData.append(ByteVector(paddingSize, char(0)));
-
- // Set the tag size.
- d->header.setTagSize(tagData.size());
-
- // TODO: This should eventually include d->footer->render().
- return d->header.render() + tagData;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void ID3v2::Tag::read()
-{
- if(d->file && d->file->isOpen()) {
-
- d->file->seek(d->tagOffset);
- d->header.setData(d->file->readBlock(Header::size()));
-
- // if the tag size is 0, then this is an invalid tag (tags must contain at
- // least one frame)
-
- if(d->header.tagSize() == 0)
- return;
-
- parse(d->file->readBlock(d->header.tagSize()));
- }
-}
-
-void ID3v2::Tag::parse(const ByteVector &origData)
-{
- ByteVector data = origData;
-
- if(d->header.unsynchronisation() && d->header.majorVersion() <= 3)
- data = SynchData::decode(data);
-
- uint frameDataPosition = 0;
- uint frameDataLength = data.size();
-
- // check for extended header
-
- if(d->header.extendedHeader()) {
- if(!d->extendedHeader)
- d->extendedHeader = new ExtendedHeader;
- d->extendedHeader->setData(data);
- if(d->extendedHeader->size() <= data.size()) {
- frameDataPosition += d->extendedHeader->size();
- frameDataLength -= d->extendedHeader->size();
- }
- }
-
- // check for footer -- we don't actually need to parse it, as it *must*
- // contain the same data as the header, but we do need to account for its
- // size.
-
- if(d->header.footerPresent() && Footer::size() <= frameDataLength)
- frameDataLength -= Footer::size();
-
- // parse frames
-
- // Make sure that there is at least enough room in the remaining frame data for
- // a frame header.
-
- while(frameDataPosition < frameDataLength - Frame::headerSize(d->header.majorVersion())) {
-
- // If the next data is position is 0, assume that we've hit the padding
- // portion of the frame data.
-
- if(data.at(frameDataPosition) == 0) {
- if(d->header.footerPresent()) {
- debug("Padding *and* a footer found. This is not allowed by the spec.");
- }
-
- d->paddingSize = frameDataLength - frameDataPosition;
- return;
- }
-
- Frame *frame = d->factory->createFrame(data.mid(frameDataPosition),
- &d->header);
-
- if(!frame)
- return;
-
- // Checks to make sure that frame parsed correctly.
-
- if(frame->size() <= 0) {
- delete frame;
- return;
- }
-
- frameDataPosition += frame->size() + Frame::headerSize(d->header.majorVersion());
- addFrame(frame);
- }
-}
-
-void ID3v2::Tag::setTextFrame(const ByteVector &id, const String &value)
-{
- if(value.isEmpty()) {
- removeFrames(id);
- return;
- }
-
- if(!d->frameListMap[id].isEmpty())
- d->frameListMap[id].front()->setText(value);
- else {
- const String::Type encoding = d->factory->defaultTextEncoding();
- TextIdentificationFrame *f = new TextIdentificationFrame(id, encoding);
- addFrame(f);
- f->setText(value);
- }
-}
diff --git a/libs/taglib/taglib/mpeg/id3v2/id3v2tag.h b/libs/taglib/taglib/mpeg/id3v2/id3v2tag.h
deleted file mode 100644
index f43f6b7682..0000000000
--- a/libs/taglib/taglib/mpeg/id3v2/id3v2tag.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ID3V2TAG_H
-#define TAGLIB_ID3V2TAG_H
-
-#include "tag.h"
-#include "tbytevector.h"
-#include "tstring.h"
-#include "tlist.h"
-#include "tmap.h"
-#include "taglib_export.h"
-
-#include "id3v2framefactory.h"
-
-namespace TagLib {
-
- class File;
-
- //! An ID3v2 implementation
-
- /*!
- * This is a relatively complete and flexible framework for working with ID3v2
- * tags.
- *
- * \see ID3v2::Tag
- */
-
- namespace ID3v2 {
-
- class Header;
- class ExtendedHeader;
- class Footer;
-
- typedef List<Frame *> FrameList;
- typedef Map<ByteVector, FrameList> FrameListMap;
-
- //! The main class in the ID3v2 implementation
-
- /*!
- * This is the main class in the ID3v2 implementation. It serves two
- * functions. This first, as is obvious from the public API, is to provide a
- * container for the other ID3v2 related classes. In addition, through the
- * read() and parse() protected methods, it provides the most basic level of
- * parsing. In these methods the ID3v2 tag is extracted from the file and
- * split into data components.
- *
- * ID3v2 tags have several parts, TagLib attempts to provide an interface
- * for them all. header(), footer() and extendedHeader() corespond to those
- * data structures in the ID3v2 standard and the APIs for the classes that
- * they return attempt to reflect this.
- *
- * Also ID3v2 tags are built up from a list of frames, which are in turn
- * have a header and a list of fields. TagLib provides two ways of accessing
- * the list of frames that are in a given ID3v2 tag. The first is simply
- * via the frameList() method. This is just a list of pointers to the frames.
- * The second is a map from the frame type -- i.e. "COMM" for comments -- and
- * a list of frames of that type. (In some cases ID3v2 allows for multiple
- * frames of the same type, hence this being a map to a list rather than just
- * a map to an individual frame.)
- *
- * More information on the structure of frames can be found in the ID3v2::Frame
- * class.
- *
- * read() and parse() pass binary data to the other ID3v2 class structures,
- * they do not handle parsing of flags or fields, for instace. Those are
- * handled by similar functions within those classes.
- *
- * \note All pointers to data structures within the tag will become invalid
- * when the tag is destroyed.
- *
- * \warning Dealing with the nasty details of ID3v2 is not for the faint of
- * heart and should not be done without much meditation on the spec. It's
- * rather long, but if you're planning on messing with this class and others
- * that deal with the details of ID3v2 (rather than the nice, safe, abstract
- * TagLib::Tag and friends), it's worth your time to familiarize yourself
- * with said spec (which is distrubuted with the TagLib sources). TagLib
- * tries to do most of the work, but with a little luck, you can still
- * convince it to generate invalid ID3v2 tags. The APIs for ID3v2 assume a
- * working knowledge of ID3v2 structure. You're been warned.
- */
-
- class TAGLIB_EXPORT Tag : public TagLib::Tag
- {
- public:
- /*!
- * Constructs an empty ID3v2 tag.
- *
- * \note You must create at least one frame for this tag to be valid.
- */
- Tag();
-
- /*!
- * Constructs an ID3v2 tag read from \a file starting at \a tagOffset.
- * \a factory specifies which FrameFactory will be used for the
- * construction of new frames.
- *
- * \note You should be able to ignore the \a factory parameter in almost
- * all situations. You would want to specify your own FrameFactory
- * subclass in the case that you are extending TagLib to support additional
- * frame types, which would be incorperated into your factory.
- *
- * \see FrameFactory
- */
- Tag(File *file, long tagOffset,
- const FrameFactory *factory = FrameFactory::instance());
-
- /*!
- * Destroys this Tag instance.
- */
- virtual ~Tag();
-
- // Reimplementations.
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(uint i);
- virtual void setTrack(uint i);
-
- virtual bool isEmpty() const;
-
- /*!
- * Returns a pointer to the tag's header.
- */
- Header *header() const;
-
- /*!
- * Returns a pointer to the tag's extended header or null if there is no
- * extended header.
- */
- ExtendedHeader *extendedHeader() const;
-
- /*!
- * Returns a pointer to the tag's footer or null if there is no footer.
- *
- * \deprecated I don't see any reason to keep this around since there's
- * nothing useful to be retrieved from the footer, but well, again, I'm
- * prone to change my mind, so this gets to stay around until near a
- * release.
- */
- Footer *footer() const;
-
- /*!
- * Returns a reference to the frame list map. This is an FrameListMap of
- * all of the frames in the tag.
- *
- * This is the most convenient structure for accessing the tag's frames.
- * Many frame types allow multiple instances of the same frame type so this
- * is a map of lists. In most cases however there will only be a single
- * frame of a certain type.
- *
- * Let's say for instance that you wanted to access the frame for total
- * beats per minute -- the TBPM frame.
- *
- * \code
- * TagLib::MPEG::File f("foo.mp3");
- *
- * // Check to make sure that it has an ID3v2 tag
- *
- * if(f.ID3v2Tag()) {
- *
- * // Get the list of frames for a specific frame type
- *
- * TagLib::ID3v2::FrameList l = f.ID3v2Tag()->frameListMap()["TBPM"];
- *
- * if(!l.isEmpty())
- * std::cout << l.front()->toString() << std::endl;
- * }
- *
- * \endcode
- *
- * \warning You should not modify this data structure directly, instead
- * use addFrame() and removeFrame().
- *
- * \see frameList()
- */
- const FrameListMap &frameListMap() const;
-
- /*!
- * Returns a reference to the frame list. This is an FrameList of all of
- * the frames in the tag in the order that they were parsed.
- *
- * This can be useful if for example you want iterate over the tag's frames
- * in the order that they occur in the tag.
- *
- * \warning You should not modify this data structure directly, instead
- * use addFrame() and removeFrame().
- */
- const FrameList &frameList() const;
-
- /*!
- * Returns the frame list for frames with the id \a frameID or an empty
- * list if there are no frames of that type. This is just a convenience
- * and is equivalent to:
- *
- * \code
- * frameListMap()[frameID];
- * \endcode
- *
- * \see frameListMap()
- */
- const FrameList &frameList(const ByteVector &frameID) const;
-
- /*!
- * Add a frame to the tag. At this point the tag takes ownership of
- * the frame and will handle freeing its memory.
- *
- * \note Using this method will invalidate any pointers on the list
- * returned by frameList()
- */
- void addFrame(Frame *frame);
-
- /*!
- * Remove a frame from the tag. If \a del is true the frame's memory
- * will be freed; if it is false, it must be deleted by the user.
- *
- * \note Using this method will invalidate any pointers on the list
- * returned by frameList()
- */
- void removeFrame(Frame *frame, bool del = true);
-
- /*!
- * Remove all frames of type \a id from the tag and free their memory.
- *
- * \note Using this method will invalidate any pointers on the list
- * returned by frameList()
- */
- void removeFrames(const ByteVector &id);
-
- /*!
- * Render the tag back to binary data, suitable to be written to disk.
- */
- ByteVector render() const;
-
- protected:
- /*!
- * Reads data from the file specified in the constructor. It does basic
- * parsing of the data in the largest chunks. It partitions the tag into
- * the Header, the body of the tag (which contains the ExtendedHeader and
- * frames) and Footer.
- */
- void read();
-
- /*!
- * This is called by read to parse the body of the tag. It determines if an
- * extended header exists and adds frames to the FrameListMap.
- */
- void parse(const ByteVector &data);
-
- /*!
- * Sets the value of the text frame with the Frame ID \a id to \a value.
- * If the frame does not exist, it is created.
- */
- void setTextFrame(const ByteVector &id, const String &value);
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/mpegfile.cpp b/libs/taglib/taglib/mpeg/mpegfile.cpp
deleted file mode 100644
index 024d811005..0000000000
--- a/libs/taglib/taglib/mpeg/mpegfile.cpp
+++ /dev/null
@@ -1,593 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tagunion.h>
-#include <id3v2tag.h>
-#include <id3v2header.h>
-#include <id3v1tag.h>
-#include <apefooter.h>
-#include <apetag.h>
-#include <tdebug.h>
-
-#include <bitset>
-
-#include "mpegfile.h"
-#include "mpegheader.h"
-
-using namespace TagLib;
-
-namespace
-{
- enum { ID3v2Index = 0, APEIndex = 1, ID3v1Index = 2 };
-}
-
-class MPEG::File::FilePrivate
-{
-public:
- FilePrivate(ID3v2::FrameFactory *frameFactory = ID3v2::FrameFactory::instance()) :
- ID3v2FrameFactory(frameFactory),
- ID3v2Location(-1),
- ID3v2OriginalSize(0),
- APELocation(-1),
- APEFooterLocation(-1),
- APEOriginalSize(0),
- ID3v1Location(-1),
- hasID3v2(false),
- hasID3v1(false),
- hasAPE(false),
- properties(0)
- {
-
- }
-
- ~FilePrivate()
- {
- delete properties;
- }
-
- const ID3v2::FrameFactory *ID3v2FrameFactory;
-
- long ID3v2Location;
- uint ID3v2OriginalSize;
-
- long APELocation;
- long APEFooterLocation;
- uint APEOriginalSize;
-
- long ID3v1Location;
-
- TagUnion tag;
-
- // These indicate whether the file *on disk* has these tags, not if
- // this data structure does. This is used in computing offsets.
-
- bool hasID3v2;
- bool hasID3v1;
- bool hasAPE;
-
- Properties *properties;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MPEG::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : TagLib::File(file)
-{
- d = new FilePrivate;
-
- if(isOpen())
- read(readProperties, propertiesStyle);
-}
-
-MPEG::File::File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties, Properties::ReadStyle propertiesStyle) :
- TagLib::File(file)
-{
- d = new FilePrivate(frameFactory);
-
- if(isOpen())
- read(readProperties, propertiesStyle);
-}
-
-MPEG::File::~File()
-{
- delete d;
-}
-
-TagLib::Tag *MPEG::File::tag() const
-{
- return &d->tag;
-}
-
-MPEG::Properties *MPEG::File::audioProperties() const
-{
- return d->properties;
-}
-
-bool MPEG::File::save()
-{
- return save(AllTags);
-}
-
-bool MPEG::File::save(int tags)
-{
- return save(tags, true);
-}
-
-bool MPEG::File::save(int tags, bool stripOthers)
-{
- if(tags == NoTags && stripOthers)
- return strip(AllTags);
-
- if(!ID3v2Tag() && !ID3v1Tag() && !APETag()) {
-
- if((d->hasID3v1 || d->hasID3v2 || d->hasAPE) && stripOthers)
- return strip(AllTags);
-
- return true;
- }
-
- if(readOnly()) {
- debug("MPEG::File::save() -- File is read only.");
- return false;
- }
-
- // Create the tags if we've been asked to. Copy the values from the tag that
- // does exist into the new tag.
-
- if((tags & ID3v2) && ID3v1Tag())
- Tag::duplicate(ID3v1Tag(), ID3v2Tag(true), false);
-
- if((tags & ID3v1) && d->tag[ID3v2Index])
- Tag::duplicate(ID3v2Tag(), ID3v1Tag(true), false);
-
- bool success = true;
-
- if(ID3v2 & tags) {
-
- if(ID3v2Tag() && !ID3v2Tag()->isEmpty()) {
-
- if(!d->hasID3v2)
- d->ID3v2Location = 0;
-
- insert(ID3v2Tag()->render(), d->ID3v2Location, d->ID3v2OriginalSize);
-
- d->hasID3v2 = true;
-
- // v1 tag location has changed, update if it exists
-
- if(ID3v1Tag())
- d->ID3v1Location = findID3v1();
-
- // APE tag location has changed, update if it exists
-
- if(APETag())
- findAPE();
- }
- else if(stripOthers)
- success = strip(ID3v2, false) && success;
- }
- else if(d->hasID3v2 && stripOthers)
- success = strip(ID3v2) && success;
-
- if(ID3v1 & tags) {
- if(ID3v1Tag() && !ID3v1Tag()->isEmpty()) {
- int offset = d->hasID3v1 ? -128 : 0;
- seek(offset, End);
- writeBlock(ID3v1Tag()->render());
- d->hasID3v1 = true;
- d->ID3v1Location = findID3v1();
- }
- else if(stripOthers)
- success = strip(ID3v1) && success;
- }
- else if(d->hasID3v1 && stripOthers)
- success = strip(ID3v1, false) && success;
-
- // Dont save an APE-tag unless one has been created
-
- if((APE & tags) && APETag()) {
- if(d->hasAPE)
- insert(APETag()->render(), d->APELocation, d->APEOriginalSize);
- else {
- if(d->hasID3v1) {
- insert(APETag()->render(), d->ID3v1Location, 0);
- d->APEOriginalSize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- d->APELocation = d->ID3v1Location;
- d->ID3v1Location += d->APEOriginalSize;
- }
- else {
- seek(0, End);
- d->APELocation = tell();
- d->APEFooterLocation = d->APELocation
- + d->tag.access<APE::Tag>(APEIndex, false)->footer()->completeTagSize()
- - APE::Footer::size();
- writeBlock(APETag()->render());
- d->APEOriginalSize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- }
- }
- }
- else if(d->hasAPE && stripOthers)
- success = strip(APE, false) && success;
-
- return success;
-}
-
-ID3v2::Tag *MPEG::File::ID3v2Tag(bool create)
-{
- return d->tag.access<ID3v2::Tag>(ID3v2Index, create);
-}
-
-ID3v1::Tag *MPEG::File::ID3v1Tag(bool create)
-{
- return d->tag.access<ID3v1::Tag>(ID3v1Index, create);
-}
-
-APE::Tag *MPEG::File::APETag(bool create)
-{
- return d->tag.access<APE::Tag>(APEIndex, create);
-}
-
-bool MPEG::File::strip(int tags)
-{
- return strip(tags, true);
-}
-
-bool MPEG::File::strip(int tags, bool freeMemory)
-{
- if(readOnly()) {
- debug("MPEG::File::strip() - Cannot strip tags from a read only file.");
- return false;
- }
-
- if((tags & ID3v2) && d->hasID3v2) {
- removeBlock(d->ID3v2Location, d->ID3v2OriginalSize);
- d->ID3v2Location = -1;
- d->ID3v2OriginalSize = 0;
- d->hasID3v2 = false;
-
- if(freeMemory)
- d->tag.set(ID3v2Index, 0);
-
- // v1 tag location has changed, update if it exists
-
- if(ID3v1Tag())
- d->ID3v1Location = findID3v1();
-
- // APE tag location has changed, update if it exists
-
- if(APETag())
- findAPE();
- }
-
- if((tags & ID3v1) && d->hasID3v1) {
- truncate(d->ID3v1Location);
- d->ID3v1Location = -1;
- d->hasID3v1 = false;
-
- if(freeMemory)
- d->tag.set(ID3v1Index, 0);
- }
-
- if((tags & APE) && d->hasAPE) {
- removeBlock(d->APELocation, d->APEOriginalSize);
- d->APELocation = -1;
- d->APEFooterLocation = -1;
- d->hasAPE = false;
- if(d->hasID3v1) {
- if(d->ID3v1Location > d->APELocation)
- d->ID3v1Location -= d->APEOriginalSize;
- }
-
- if(freeMemory)
- d->tag.set(APEIndex, 0);
- }
-
- return true;
-}
-
-void MPEG::File::setID3v2FrameFactory(const ID3v2::FrameFactory *factory)
-{
- d->ID3v2FrameFactory = factory;
-}
-
-long MPEG::File::nextFrameOffset(long position)
-{
- bool foundLastSyncPattern = false;
-
- ByteVector buffer;
-
- while(true) {
- seek(position);
- buffer = readBlock(bufferSize());
-
- if(buffer.size() <= 0)
- return -1;
-
- if(foundLastSyncPattern && secondSynchByte(buffer[0]))
- return position - 1;
-
- for(uint i = 0; i < buffer.size() - 1; i++) {
- if(uchar(buffer[i]) == 0xff && secondSynchByte(buffer[i + 1]))
- return position + i;
- }
-
- foundLastSyncPattern = uchar(buffer[buffer.size() - 1]) == 0xff;
- position += buffer.size();
- }
-}
-
-long MPEG::File::previousFrameOffset(long position)
-{
- bool foundFirstSyncPattern = false;
- ByteVector buffer;
-
- while (position > 0) {
- long size = ulong(position) < bufferSize() ? position : bufferSize();
- position -= size;
-
- seek(position);
- buffer = readBlock(size);
-
- if(buffer.size() <= 0)
- break;
-
- if(foundFirstSyncPattern && uchar(buffer[buffer.size() - 1]) == 0xff)
- return position + buffer.size() - 1;
-
- for(int i = buffer.size() - 2; i >= 0; i--) {
- if(uchar(buffer[i]) == 0xff && secondSynchByte(buffer[i + 1]))
- return position + i;
- }
-
- foundFirstSyncPattern = secondSynchByte(buffer[0]);
- }
- return -1;
-}
-
-long MPEG::File::firstFrameOffset()
-{
- long position = 0;
-
- if(ID3v2Tag())
- position = d->ID3v2Location + ID3v2Tag()->header()->completeTagSize();
-
- return nextFrameOffset(position);
-}
-
-long MPEG::File::lastFrameOffset()
-{
- return previousFrameOffset(ID3v1Tag() ? d->ID3v1Location - 1 : length());
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void MPEG::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- // Look for an ID3v2 tag
-
- d->ID3v2Location = findID3v2();
-
- if(d->ID3v2Location >= 0) {
-
- d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->ID3v2Location, d->ID3v2FrameFactory));
-
- d->ID3v2OriginalSize = ID3v2Tag()->header()->completeTagSize();
-
- if(ID3v2Tag()->header()->tagSize() <= 0)
- d->tag.set(ID3v2Index, 0);
- else
- d->hasID3v2 = true;
- }
-
- // Look for an ID3v1 tag
-
- d->ID3v1Location = findID3v1();
-
- if(d->ID3v1Location >= 0) {
- d->tag.set(ID3v1Index, new ID3v1::Tag(this, d->ID3v1Location));
- d->hasID3v1 = true;
- }
-
- // Look for an APE tag
-
- findAPE();
-
- if(d->APELocation >= 0) {
-
- d->tag.set(APEIndex, new APE::Tag(this, d->APEFooterLocation));
- d->APEOriginalSize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- }
-
- if(readProperties)
- d->properties = new Properties(this, propertiesStyle);
-
- // Make sure that we have our default tag types available.
-
- ID3v2Tag(true);
- ID3v1Tag(true);
-}
-
-long MPEG::File::findID3v2()
-{
- // This method is based on the contents of TagLib::File::find(), but because
- // of some subtlteies -- specifically the need to look for the bit pattern of
- // an MPEG sync, it has been modified for use here.
-
- if(isValid() && ID3v2::Header::fileIdentifier().size() <= bufferSize()) {
-
- // The position in the file that the current buffer starts at.
-
- long bufferOffset = 0;
- ByteVector buffer;
-
- // These variables are used to keep track of a partial match that happens at
- // the end of a buffer.
-
- int previousPartialMatch = -1;
- bool previousPartialSynchMatch = false;
-
- // Save the location of the current read pointer. We will restore the
- // position using seek() before all returns.
-
- long originalPosition = tell();
-
- // Start the search at the beginning of the file.
-
- seek(0);
-
- // This loop is the crux of the find method. There are three cases that we
- // want to account for:
- // (1) The previously searched buffer contained a partial match of the search
- // pattern and we want to see if the next one starts with the remainder of
- // that pattern.
- //
- // (2) The search pattern is wholly contained within the current buffer.
- //
- // (3) The current buffer ends with a partial match of the pattern. We will
- // note this for use in the next itteration, where we will check for the rest
- // of the pattern.
-
- for(buffer = readBlock(bufferSize()); buffer.size() > 0; buffer = readBlock(bufferSize())) {
-
- // (1) previous partial match
-
- if(previousPartialSynchMatch && secondSynchByte(buffer[0]))
- return -1;
-
- if(previousPartialMatch >= 0 && int(bufferSize()) > previousPartialMatch) {
- const int patternOffset = (bufferSize() - previousPartialMatch);
- if(buffer.containsAt(ID3v2::Header::fileIdentifier(), 0, patternOffset)) {
- seek(originalPosition);
- return bufferOffset - bufferSize() + previousPartialMatch;
- }
- }
-
- // (2) pattern contained in current buffer
-
- long location = buffer.find(ID3v2::Header::fileIdentifier());
- if(location >= 0) {
- seek(originalPosition);
- return bufferOffset + location;
- }
-
- int firstSynchByte = buffer.find(char(uchar(255)));
-
- // Here we have to loop because there could be several of the first
- // (11111111) byte, and we want to check all such instances until we find
- // a full match (11111111 111) or hit the end of the buffer.
-
- while(firstSynchByte >= 0) {
-
- // if this *is not* at the end of the buffer
-
- if(firstSynchByte < int(buffer.size()) - 1) {
- if(secondSynchByte(buffer[firstSynchByte + 1])) {
- // We've found the frame synch pattern.
- seek(originalPosition);
- return -1;
- }
- else {
-
- // We found 11111111 at the end of the current buffer indicating a
- // partial match of the synch pattern. The find() below should
- // return -1 and break out of the loop.
-
- previousPartialSynchMatch = true;
- }
- }
-
- // Check in the rest of the buffer.
-
- firstSynchByte = buffer.find(char(uchar(255)), firstSynchByte + 1);
- }
-
- // (3) partial match
-
- previousPartialMatch = buffer.endsWithPartialMatch(ID3v2::Header::fileIdentifier());
-
- bufferOffset += bufferSize();
- }
-
- // Since we hit the end of the file, reset the status before continuing.
-
- clear();
-
- seek(originalPosition);
- }
-
- return -1;
-}
-
-long MPEG::File::findID3v1()
-{
- if(isValid()) {
- seek(-128, End);
- long p = tell();
-
- if(readBlock(3) == ID3v1::Tag::fileIdentifier())
- return p;
- }
- return -1;
-}
-
-void MPEG::File::findAPE()
-{
- if(isValid()) {
- seek(d->hasID3v1 ? -160 : -32, End);
-
- long p = tell();
-
- if(readBlock(8) == APE::Tag::fileIdentifier()) {
- d->APEFooterLocation = p;
- seek(d->APEFooterLocation);
- APE::Footer footer(readBlock(APE::Footer::size()));
- d->APELocation = d->APEFooterLocation - footer.completeTagSize()
- + APE::Footer::size();
- return;
- }
- }
-
- d->APELocation = -1;
- d->APEFooterLocation = -1;
-}
-
-bool MPEG::File::secondSynchByte(char byte)
-{
- if(uchar(byte) == 0xff)
- return false;
-
- std::bitset<8> b(byte);
-
- // check to see if the byte matches 111xxxxx
- return b.test(7) && b.test(6) && b.test(5);
-}
diff --git a/libs/taglib/taglib/mpeg/mpegfile.h b/libs/taglib/taglib/mpeg/mpegfile.h
deleted file mode 100644
index b53c94c7ce..0000000000
--- a/libs/taglib/taglib/mpeg/mpegfile.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MPEGFILE_H
-#define TAGLIB_MPEGFILE_H
-
-#include "taglib_export.h"
-#include "tfile.h"
-
-#include "mpegproperties.h"
-
-namespace TagLib {
-
- namespace ID3v2 { class Tag; class FrameFactory; }
- namespace ID3v1 { class Tag; }
- namespace APE { class Tag; }
-
- //! An implementation of TagLib::File with MPEG (MP3) specific methods
-
- namespace MPEG {
-
- //! An MPEG file class with some useful methods specific to MPEG
-
- /*!
- * This implements the generic TagLib::File API and additionally provides
- * access to properties that are distinct to MPEG files, notably access
- * to the different ID3 tags.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * This set of flags is used for various operations and is suitable for
- * being OR-ed together.
- */
- enum TagTypes {
- //! Empty set. Matches no tag types.
- NoTags = 0x0000,
- //! Matches ID3v1 tags.
- ID3v1 = 0x0001,
- //! Matches ID3v2 tags.
- ID3v2 = 0x0002,
- //! Matches APE tags.
- APE = 0x0004,
- //! Matches all tag types.
- AllTags = 0xffff
- };
-
- /*!
- * Contructs an MPEG file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * \deprecated This constructor will be dropped in favor of the one below
- * in a future version.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Contructs an MPEG file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored. The frames will be created using
- * \a frameFactory.
- */
- // BIC: merge with the above constructor
- File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns a pointer to a tag that is the union of the ID3v2 and ID3v1
- * tags. The ID3v2 tag is given priority in reading the information -- if
- * requested information exists in both the ID3v2 tag and the ID3v1 tag,
- * the information from the ID3v2 tag will be returned.
- *
- * If you would like more granular control over the content of the tags,
- * with the concession of generality, use the tag-type specific calls.
- *
- * \note As this tag is not implemented as an ID3v2 tag or an ID3v1 tag,
- * but a union of the two this pointer may not be cast to the specific
- * tag types.
- *
- * \see ID3v1Tag()
- * \see ID3v2Tag()
- * \see APETag()
- */
- virtual Tag *tag() const;
-
- /*!
- * Returns the MPEG::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Save the file. If at least one tag -- ID3v1 or ID3v2 -- exists this
- * will duplicate its content into the other tag. This returns true
- * if saving was successful.
- *
- * If neither exists or if both tags are empty, this will strip the tags
- * from the file.
- *
- * This is the same as calling save(AllTags);
- *
- * If you would like more granular control over the content of the tags,
- * with the concession of generality, use paramaterized save call below.
- *
- * \see save(int tags)
- */
- virtual bool save();
-
- /*!
- * Save the file. This will attempt to save all of the tag types that are
- * specified by OR-ing together TagTypes values. The save() method above
- * uses AllTags. This returns true if saving was successful.
- *
- * This strips all tags not included in the mask, but does not modify them
- * in memory, so later calls to save() which make use of these tags will
- * remain valid. This also strips empty tags.
- */
- bool save(int tags);
-
- /*!
- * Save the file. This will attempt to save all of the tag types that are
- * specified by OR-ing together TagTypes values. The save() method above
- * uses AllTags. This returns true if saving was successful.
- *
- * If \a stripOthers is true this strips all tags not included in the mask,
- * but does not modify them in memory, so later calls to save() which make
- * use of these tags will remain valid. This also strips empty tags.
- */
- // BIC: combine with the above method
- bool save(int tags, bool stripOthers);
-
- /*!
- * Returns a pointer to the ID3v2 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v2 tag. If \a create is true it will create
- * an ID3v2 tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the MPEG::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v2::Tag *ID3v2Tag(bool create = false);
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the MPEG::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the APE tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid APE tag. If \a create is true it will create
- * an APE tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the MPEG::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- APE::Tag *APETag(bool create = false);
-
- /*!
- * This will strip the tags that match the OR-ed together TagTypes from the
- * file. By default it strips all tags. It returns true if the tags are
- * successfully stripped.
- *
- * This is equivalent to strip(tags, true)
- *
- * \note This will also invalidate pointers to the ID3 and APE tags
- * as their memory will be freed.
- */
- bool strip(int tags = AllTags);
-
- /*!
- * This will strip the tags that match the OR-ed together TagTypes from the
- * file. By default it strips all tags. It returns true if the tags are
- * successfully stripped.
- *
- * If \a freeMemory is true the ID3 and APE tags will be deleted and
- * pointers to them will be invalidated.
- */
- // BIC: merge with the method above
- bool strip(int tags, bool freeMemory);
-
- /*!
- * Set the ID3v2::FrameFactory to something other than the default.
- *
- * \see ID3v2FrameFactory
- */
- void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
-
- /*!
- * Returns the position in the file of the first MPEG frame.
- */
- long firstFrameOffset();
-
- /*!
- * Returns the position in the file of the next MPEG frame,
- * using the current position as start
- */
- long nextFrameOffset(long position);
-
- /*!
- * Returns the position in the file of the previous MPEG frame,
- * using the current position as start
- */
- long previousFrameOffset(long position);
-
- /*!
- * Returns the position in the file of the last MPEG frame.
- */
- long lastFrameOffset();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- long findID3v2();
- long findID3v1();
- void findAPE();
-
- /*!
- * MPEG frames can be recognized by the bit pattern 11111111 111, so the
- * first byte is easy to check for, however checking to see if the second byte
- * starts with \e 111 is a bit more tricky, hence this member function.
- */
- static bool secondSynchByte(char byte);
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/mpegheader.cpp b/libs/taglib/taglib/mpeg/mpegheader.cpp
deleted file mode 100644
index 5238498b2e..0000000000
--- a/libs/taglib/taglib/mpeg/mpegheader.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <bitset>
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "mpegheader.h"
-
-using namespace TagLib;
-
-class MPEG::Header::HeaderPrivate : public RefCounter
-{
-public:
- HeaderPrivate() :
- isValid(false),
- version(Version1),
- layer(0),
- protectionEnabled(false),
- sampleRate(0),
- isPadded(false),
- channelMode(Stereo),
- isCopyrighted(false),
- isOriginal(false),
- frameLength(0),
- samplesPerFrame(0) {}
-
- bool isValid;
- Version version;
- int layer;
- bool protectionEnabled;
- int bitrate;
- int sampleRate;
- bool isPadded;
- ChannelMode channelMode;
- bool isCopyrighted;
- bool isOriginal;
- int frameLength;
- int samplesPerFrame;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MPEG::Header::Header(const ByteVector &data)
-{
- d = new HeaderPrivate;
- parse(data);
-}
-
-MPEG::Header::Header(const Header &h) : d(h.d)
-{
- d->ref();
-}
-
-MPEG::Header::~Header()
-{
- if (d->deref())
- delete d;
-}
-
-bool MPEG::Header::isValid() const
-{
- return d->isValid;
-}
-
-MPEG::Header::Version MPEG::Header::version() const
-{
- return d->version;
-}
-
-int MPEG::Header::layer() const
-{
- return d->layer;
-}
-
-bool MPEG::Header::protectionEnabled() const
-{
- return d->protectionEnabled;
-}
-
-int MPEG::Header::bitrate() const
-{
- return d->bitrate;
-}
-
-int MPEG::Header::sampleRate() const
-{
- return d->sampleRate;
-}
-
-bool MPEG::Header::isPadded() const
-{
- return d->isPadded;
-}
-
-MPEG::Header::ChannelMode MPEG::Header::channelMode() const
-{
- return d->channelMode;
-}
-
-bool MPEG::Header::isCopyrighted() const
-{
- return d->isCopyrighted;
-}
-
-bool MPEG::Header::isOriginal() const
-{
- return d->isOriginal;
-}
-
-int MPEG::Header::frameLength() const
-{
- return d->frameLength;
-}
-
-int MPEG::Header::samplesPerFrame() const
-{
- return d->samplesPerFrame;
-}
-
-MPEG::Header &MPEG::Header::operator=(const Header &h)
-{
- if(&h == this)
- return *this;
-
- if(d->deref())
- delete d;
-
- d = h.d;
- d->ref();
- return *this;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void MPEG::Header::parse(const ByteVector &data)
-{
- if(data.size() < 4 || uchar(data[0]) != 0xff) {
- debug("MPEG::Header::parse() -- First byte did not mactch MPEG synch.");
- return;
- }
-
- std::bitset<32> flags(data.toUInt());
-
- // Check for the second byte's part of the MPEG synch
-
- if(!flags[23] || !flags[22] || !flags[21]) {
- debug("MPEG::Header::parse() -- Second byte did not mactch MPEG synch.");
- return;
- }
-
- // Set the MPEG version
-
- if(!flags[20] && !flags[19])
- d->version = Version2_5;
- else if(flags[20] && !flags[19])
- d->version = Version2;
- else if(flags[20] && flags[19])
- d->version = Version1;
-
- // Set the MPEG layer
-
- if(!flags[18] && flags[17])
- d->layer = 3;
- else if(flags[18] && !flags[17])
- d->layer = 2;
- else if(flags[18] && flags[17])
- d->layer = 1;
-
- d->protectionEnabled = !flags[16];
-
- // Set the bitrate
-
- static const int bitrates[2][3][16] = {
- { // Version 1
- { 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0 }, // layer 1
- { 0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0 }, // layer 2
- { 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0 } // layer 3
- },
- { // Version 2 or 2.5
- { 0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0 }, // layer 1
- { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0 }, // layer 2
- { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0 } // layer 3
- }
- };
-
- const int versionIndex = d->version == Version1 ? 0 : 1;
- const int layerIndex = d->layer > 0 ? d->layer - 1 : 0;
-
- // The bitrate index is encoded as the first 4 bits of the 3rd byte,
- // i.e. 1111xxxx
-
- int i = uchar(data[2]) >> 4;
-
- d->bitrate = bitrates[versionIndex][layerIndex][i];
-
- // Set the sample rate
-
- static const int sampleRates[3][4] = {
- { 44100, 48000, 32000, 0 }, // Version 1
- { 22050, 24000, 16000, 0 }, // Version 2
- { 11025, 12000, 8000, 0 } // Version 2.5
- };
-
- // The sample rate index is encoded as two bits in the 3nd byte, i.e. xxxx11xx
-
- i = uchar(data[2]) >> 2 & 0x03;
-
- d->sampleRate = sampleRates[d->version][i];
-
- if(d->sampleRate == 0) {
- debug("MPEG::Header::parse() -- Invalid sample rate.");
- return;
- }
-
- // The channel mode is encoded as a 2 bit value at the end of the 3nd byte,
- // i.e. xxxxxx11
-
- d->channelMode = ChannelMode((uchar(data[3]) & 0xC0) >> 6);
-
- // TODO: Add mode extension for completeness
-
- d->isOriginal = flags[2];
- d->isCopyrighted = flags[3];
- d->isPadded = flags[9];
-
- // Calculate the frame length
-
- if(d->layer == 1)
- d->frameLength = 24000 * 2 * d->bitrate / d->sampleRate + int(d->isPadded);
- else
- d->frameLength = 72000 * d->bitrate / d->sampleRate + int(d->isPadded);
-
- // Samples per frame
-
- static const int samplesPerFrame[3][2] = {
- // MPEG1, 2/2.5
- { 384, 384 }, // Layer I
- { 1152, 1152 }, // Layer II
- { 1152, 576 } // Layer III
- };
-
- d->samplesPerFrame = samplesPerFrame[layerIndex][versionIndex];
-
- // Now that we're done parsing, set this to be a valid frame.
-
- d->isValid = true;
-}
diff --git a/libs/taglib/taglib/mpeg/mpegheader.h b/libs/taglib/taglib/mpeg/mpegheader.h
deleted file mode 100644
index c774de8177..0000000000
--- a/libs/taglib/taglib/mpeg/mpegheader.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MPEGHEADER_H
-#define TAGLIB_MPEGHEADER_H
-
-#include "taglib_export.h"
-
-namespace TagLib {
-
- class ByteVector;
-
- namespace MPEG {
-
- //! An implementation of MP3 frame headers
-
- /*!
- * This is an implementation of MPEG Layer III headers. The API follows more
- * or less the binary format of these headers. I've used
- * <a href="http://www.mp3-tech.org/programmer/frame_header.html">this</a>
- * document as a reference.
- */
-
- class TAGLIB_EXPORT Header
- {
- public:
- /*!
- * Parses an MPEG header based on \a data.
- */
- Header(const ByteVector &data);
-
- /*!
- * Does a shallow copy of \a h.
- */
- Header(const Header &h);
-
- /*!
- * Destroys this Header instance.
- */
- virtual ~Header();
-
- /*!
- * Returns true if the frame is at least an appropriate size and has
- * legal values.
- */
- bool isValid() const;
-
- /*!
- * The MPEG Version.
- */
- enum Version {
- //! MPEG Version 1
- Version1 = 0,
- //! MPEG Version 2
- Version2 = 1,
- //! MPEG Version 2.5
- Version2_5 = 2
- };
-
- /*!
- * Returns the MPEG Version of the header.
- */
- Version version() const;
-
- /*!
- * Returns the layer version. This will be between the values 1-3.
- */
- int layer() const;
-
- /*!
- * Returns true if the MPEG protection bit is enabled.
- */
- bool protectionEnabled() const;
-
- /*!
- * Returns the bitrate encoded in the header.
- */
- int bitrate() const;
-
- /*!
- * Returns the sample rate in Hz.
- */
- int sampleRate() const;
-
- /*!
- * Returns true if the frame is padded.
- */
- bool isPadded() const;
-
- /*!
- * There are a few combinations or one or two channel audio that are
- * possible:
- */
- enum ChannelMode {
- //! Stereo
- Stereo = 0,
- //! Stereo
- JointStereo = 1,
- //! Dual Mono
- DualChannel = 2,
- //! Mono
- SingleChannel = 3
- };
-
- /*!
- * Returns the channel mode for this frame.
- */
- ChannelMode channelMode() const;
-
- /*!
- * Returns true if the copyrighted bit is set.
- */
- bool isCopyrighted() const;
-
- /*!
- * Returns true if the "original" bit is set.
- */
- bool isOriginal() const;
-
- /*!
- * Returns the frame length.
- */
- int frameLength() const;
-
- /*!
- * Returns the number of frames per sample.
- */
- int samplesPerFrame() const;
-
- /*!
- * Makes a shallow copy of the header.
- */
- Header &operator=(const Header &h);
-
- private:
- void parse(const ByteVector &data);
-
- class HeaderPrivate;
- HeaderPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/mpegproperties.cpp b/libs/taglib/taglib/mpeg/mpegproperties.cpp
deleted file mode 100644
index 518de61c71..0000000000
--- a/libs/taglib/taglib/mpeg/mpegproperties.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tdebug.h>
-#include <tstring.h>
-
-#include "mpegproperties.h"
-#include "mpegfile.h"
-#include "xingheader.h"
-
-using namespace TagLib;
-
-class MPEG::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(File *f, ReadStyle s) :
- file(f),
- xingHeader(0),
- style(s),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0),
- layer(0),
- version(Header::Version1),
- channelMode(Header::Stereo),
- protectionEnabled(false),
- isCopyrighted(false),
- isOriginal(false) {}
-
- ~PropertiesPrivate()
- {
- delete xingHeader;
- }
-
- File *file;
- XingHeader *xingHeader;
- ReadStyle style;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
- int layer;
- Header::Version version;
- Header::ChannelMode channelMode;
- bool protectionEnabled;
- bool isCopyrighted;
- bool isOriginal;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MPEG::Properties::Properties(File *file, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(file, style);
-
- if(file && file->isOpen())
- read();
-}
-
-MPEG::Properties::~Properties()
-{
- delete d;
-}
-
-int MPEG::Properties::length() const
-{
- return d->length;
-}
-
-int MPEG::Properties::bitrate() const
-{
- return d->bitrate;
-}
-
-int MPEG::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int MPEG::Properties::channels() const
-{
- return d->channels;
-}
-
-const MPEG::XingHeader *MPEG::Properties::xingHeader() const
-{
- return d->xingHeader;
-}
-
-MPEG::Header::Version MPEG::Properties::version() const
-{
- return d->version;
-}
-
-int MPEG::Properties::layer() const
-{
- return d->layer;
-}
-
-bool MPEG::Properties::protectionEnabled() const
-{
- return d->protectionEnabled;
-}
-
-MPEG::Header::ChannelMode MPEG::Properties::channelMode() const
-{
- return d->channelMode;
-}
-
-bool MPEG::Properties::isCopyrighted() const
-{
- return d->isCopyrighted;
-}
-
-bool MPEG::Properties::isOriginal() const
-{
- return d->isOriginal;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void MPEG::Properties::read()
-{
- // Since we've likely just looked for the ID3v1 tag, start at the end of the
- // file where we're least likely to have to have to move the disk head.
-
- long last = d->file->lastFrameOffset();
-
- if(last < 0) {
- debug("MPEG::Properties::read() -- Could not find a valid last MPEG frame in the stream.");
- return;
- }
-
- d->file->seek(last);
- Header lastHeader(d->file->readBlock(4));
-
- long first = d->file->firstFrameOffset();
-
- if(first < 0) {
- debug("MPEG::Properties::read() -- Could not find a valid first MPEG frame in the stream.");
- return;
- }
-
- if(!lastHeader.isValid()) {
-
- long pos = last;
-
- while(pos > first) {
-
- pos = d->file->previousFrameOffset(pos);
-
- if(pos < 0)
- break;
-
- d->file->seek(pos);
- Header header(d->file->readBlock(4));
-
- if(header.isValid()) {
- lastHeader = header;
- last = pos;
- break;
- }
- }
- }
-
- // Now jump back to the front of the file and read what we need from there.
-
- d->file->seek(first);
- Header firstHeader(d->file->readBlock(4));
-
- if(!firstHeader.isValid() || !lastHeader.isValid()) {
- debug("MPEG::Properties::read() -- Page headers were invalid.");
- return;
- }
-
- // Check for a Xing header that will help us in gathering information about a
- // VBR stream.
-
- int xingHeaderOffset = MPEG::XingHeader::xingHeaderOffset(firstHeader.version(),
- firstHeader.channelMode());
-
- d->file->seek(first + xingHeaderOffset);
- d->xingHeader = new XingHeader(d->file->readBlock(16));
-
- // Read the length and the bitrate from the Xing header.
-
- if(d->xingHeader->isValid() &&
- firstHeader.sampleRate() > 0 &&
- d->xingHeader->totalFrames() > 0)
- {
- double timePerFrame =
- double(firstHeader.samplesPerFrame()) / firstHeader.sampleRate();
-
- d->length = int(timePerFrame * d->xingHeader->totalFrames());
- d->bitrate = d->length > 0 ? d->xingHeader->totalSize() * 8 / d->length / 1000 : 0;
- }
- else {
- // Since there was no valid Xing header found, we hope that we're in a constant
- // bitrate file.
-
- delete d->xingHeader;
- d->xingHeader = 0;
-
- // TODO: Make this more robust with audio property detection for VBR without a
- // Xing header.
-
- if(firstHeader.frameLength() > 0 && firstHeader.bitrate() > 0) {
- int frames = (last - first) / firstHeader.frameLength() + 1;
-
- d->length = int(float(firstHeader.frameLength() * frames) /
- float(firstHeader.bitrate() * 125) + 0.5);
- d->bitrate = firstHeader.bitrate();
- }
- }
-
-
- d->sampleRate = firstHeader.sampleRate();
- d->channels = firstHeader.channelMode() == Header::SingleChannel ? 1 : 2;
- d->version = firstHeader.version();
- d->layer = firstHeader.layer();
- d->protectionEnabled = firstHeader.protectionEnabled();
- d->channelMode = firstHeader.channelMode();
- d->isCopyrighted = firstHeader.isCopyrighted();
- d->isOriginal = firstHeader.isOriginal();
-}
diff --git a/libs/taglib/taglib/mpeg/mpegproperties.h b/libs/taglib/taglib/mpeg/mpegproperties.h
deleted file mode 100644
index 17452e189d..0000000000
--- a/libs/taglib/taglib/mpeg/mpegproperties.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MPEGPROPERTIES_H
-#define TAGLIB_MPEGPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-#include "mpegheader.h"
-
-namespace TagLib {
-
- namespace MPEG {
-
- class File;
- class XingHeader;
-
- //! An implementation of audio property reading for MP3
-
- /*!
- * This reads the data from an MPEG Layer III stream found in the
- * AudioProperties API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of MPEG::Properties with the data read from the
- * MPEG::File \a file.
- */
- Properties(File *file, ReadStyle style = Average);
-
- /*!
- * Destroys this MPEG Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns a pointer to the XingHeader if one exists or null if no
- * XingHeader was found.
- */
-
- const XingHeader *xingHeader() const;
-
- /*!
- * Returns the MPEG Version of the file.
- */
- Header::Version version() const;
-
- /*!
- * Returns the layer version. This will be between the values 1-3.
- */
- int layer() const;
-
- /*!
- * Returns true if the MPEG protection bit is enabled.
- */
- bool protectionEnabled() const;
-
- /*!
- * Returns the channel mode for this frame.
- */
- Header::ChannelMode channelMode() const;
-
- /*!
- * Returns true if the copyrighted bit is set.
- */
- bool isCopyrighted() const;
-
- /*!
- * Returns true if the "original" bit is set.
- */
- bool isOriginal() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/mpeg/xingheader.cpp b/libs/taglib/taglib/mpeg/xingheader.cpp
deleted file mode 100644
index 626452eaa2..0000000000
--- a/libs/taglib/taglib/mpeg/xingheader.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Ismael Orenstein
- email : orenstein@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "xingheader.h"
-
-using namespace TagLib;
-
-class MPEG::XingHeader::XingHeaderPrivate
-{
-public:
- XingHeaderPrivate() :
- frames(0),
- size(0),
- valid(false)
- {}
-
- uint frames;
- uint size;
- bool valid;
-};
-
-MPEG::XingHeader::XingHeader(const ByteVector &data)
-{
- d = new XingHeaderPrivate;
- parse(data);
-}
-
-MPEG::XingHeader::~XingHeader()
-{
- delete d;
-}
-
-bool MPEG::XingHeader::isValid() const
-{
- return d->valid;
-}
-
-TagLib::uint MPEG::XingHeader::totalFrames() const
-{
- return d->frames;
-}
-
-TagLib::uint MPEG::XingHeader::totalSize() const
-{
- return d->size;
-}
-
-int MPEG::XingHeader::xingHeaderOffset(TagLib::MPEG::Header::Version v,
- TagLib::MPEG::Header::ChannelMode c)
-{
- if(v == MPEG::Header::Version1) {
- if(c == MPEG::Header::SingleChannel)
- return 0x15;
- else
- return 0x24;
- }
- else {
- if(c == MPEG::Header::SingleChannel)
- return 0x0D;
- else
- return 0x15;
- }
-}
-
-void MPEG::XingHeader::parse(const ByteVector &data)
-{
- // Check to see if a valid Xing header is available.
-
- if(!data.startsWith("Xing") && !data.startsWith("Info"))
- return;
-
- // If the XingHeader doesn't contain the number of frames and the total stream
- // info it's invalid.
-
- if(!(data[7] & 0x01)) {
- debug("MPEG::XingHeader::parse() -- Xing header doesn't contain the total number of frames.");
- return;
- }
-
- if(!(data[7] & 0x02)) {
- debug("MPEG::XingHeader::parse() -- Xing header doesn't contain the total stream size.");
- return;
- }
-
- d->frames = data.mid(8, 4).toUInt();
- d->size = data.mid(12, 4).toUInt();
-
- d->valid = true;
-}
diff --git a/libs/taglib/taglib/mpeg/xingheader.h b/libs/taglib/taglib/mpeg/xingheader.h
deleted file mode 100644
index 1ffc03ddb0..0000000000
--- a/libs/taglib/taglib/mpeg/xingheader.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Ismael Orenstein
- email : orenstein@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_XINGHEADER_H
-#define TAGLIB_XINGHEADER_H
-
-#include "mpegheader.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- class ByteVector;
-
- namespace MPEG {
-
- //! An implementation of the Xing VBR headers
-
- /*!
- * This is a minimalistic implementation of the Xing VBR headers. Xing
- * headers are often added to VBR (variable bit rate) MP3 streams to make it
- * easy to compute the length and quality of a VBR stream. Our implementation
- * is only concerned with the total size of the stream (so that we can
- * calculate the total playing time and the average bitrate). It uses
- * <a href="http://home.pcisys.net/~melanson/codecs/mp3extensions.txt">this text</a>
- * and the XMMS sources as references.
- */
-
- class TAGLIB_EXPORT XingHeader
- {
- public:
- /*!
- * Parses a Xing header based on \a data. The data must be at least 16
- * bytes long (anything longer than this is discarded).
- */
- XingHeader(const ByteVector &data);
-
- /*!
- * Destroy this XingHeader instance.
- */
- virtual ~XingHeader();
-
- /*!
- * Returns true if the data was parsed properly and if there is a valid
- * Xing header present.
- */
- bool isValid() const;
-
- /*!
- * Returns the total number of frames.
- */
- uint totalFrames() const;
-
- /*!
- * Returns the total size of stream in bytes.
- */
- uint totalSize() const;
-
- /*!
- * Returns the offset for the start of this Xing header, given the
- * version and channels of the frame
- */
- // BIC: rename to offset()
- static int xingHeaderOffset(TagLib::MPEG::Header::Version v,
- TagLib::MPEG::Header::ChannelMode c);
-
- private:
- XingHeader(const XingHeader &);
- XingHeader &operator=(const XingHeader &);
-
- void parse(const ByteVector &data);
-
- class XingHeaderPrivate;
- XingHeaderPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/CMakeLists.txt b/libs/taglib/taglib/ogg/CMakeLists.txt
deleted file mode 100644
index d506a3cdf4..0000000000
--- a/libs/taglib/taglib/ogg/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-ADD_SUBDIRECTORY( vorbis )
-ADD_SUBDIRECTORY( speex )
-ADD_SUBDIRECTORY( flac )
-
-INSTALL( FILES oggfile.h oggpage.h oggpageheader.h xiphcomment.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib )
-
diff --git a/libs/taglib/taglib/ogg/Makefile.am b/libs/taglib/taglib/ogg/Makefile.am
deleted file mode 100644
index d398c86642..0000000000
--- a/libs/taglib/taglib/ogg/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-SUBDIRS = vorbis flac speex
-
-INCLUDES = -I$(top_srcdir)/taglib -I$(top_srcdir)/taglib/toolkit $(all_includes)
-
-noinst_LTLIBRARIES = libogg.la
-
-libogg_la_SOURCES = \
- oggfile.cpp \
- oggpage.cpp \
- oggpageheader.cpp \
- xiphcomment.cpp
-
-taglib_include_HEADERS = \
- oggfile.h \
- oggpage.h \
- oggpageheader.h \
- xiphcomment.h
-
-taglib_includedir = $(includedir)/taglib
-
-libogg_la_LIBADD = ./vorbis/libvorbis.la ./flac/liboggflac.la ./speex/libspeex.la
diff --git a/libs/taglib/taglib/ogg/Makefile.in b/libs/taglib/taglib/ogg/Makefile.in
deleted file mode 100644
index 2488646c5c..0000000000
--- a/libs/taglib/taglib/ogg/Makefile.in
+++ /dev/null
@@ -1,757 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/ogg
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libogg_la_DEPENDENCIES = ./vorbis/libvorbis.la ./flac/liboggflac.la \
- ./speex/libspeex.la
-am_libogg_la_OBJECTS = oggfile.lo oggpage.lo oggpageheader.lo \
- xiphcomment.lo
-#>- libogg_la_OBJECTS = $(am_libogg_la_OBJECTS)
-#>+ 5
-libogg_la_final_OBJECTS = libogg_la.all_cpp.lo
-libogg_la_nofinal_OBJECTS = oggfile.lo oggpage.lo oggpageheader.lo \
- xiphcomment.lo
-@KDE_USE_FINAL_FALSE@libogg_la_OBJECTS = $(libogg_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libogg_la_OBJECTS = $(libogg_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libogg_la_SOURCES)
-DIST_SOURCES = $(libogg_la_SOURCES)
-#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-#>- html-recursive info-recursive install-data-recursive \
-#>- install-dvi-recursive install-exec-recursive \
-#>- install-html-recursive install-info-recursive \
-#>- install-pdf-recursive install-ps-recursive install-recursive \
-#>- installcheck-recursive installdirs-recursive pdf-recursive \
-#>- ps-recursive uninstall-recursive
-#>+ 7
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive nmcheck-recursive bcheck-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)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = vorbis flac speex
-INCLUDES = -I$(top_srcdir)/taglib -I$(top_srcdir)/taglib/toolkit $(all_includes)
-noinst_LTLIBRARIES = libogg.la
-libogg_la_SOURCES = \
- oggfile.cpp \
- oggpage.cpp \
- oggpageheader.cpp \
- xiphcomment.cpp
-
-taglib_include_HEADERS = \
- oggfile.h \
- oggpage.h \
- oggpageheader.h \
- xiphcomment.h
-
-taglib_includedir = $(includedir)/taglib
-libogg_la_LIBADD = ./vorbis/libvorbis.la ./flac/liboggflac.la ./speex/libspeex.la
-#>- all: all-recursive
-#>+ 1
-all: docs-am all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/ogg/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/ogg/Makefile
-#>+ 12
- @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 taglib/ogg/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libogg.la: $(libogg_la_OBJECTS) $(libogg_la_DEPENDENCIES)
- $(CXXLINK) $(libogg_la_OBJECTS) $(libogg_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oggfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oggpage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oggpageheader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xiphcomment.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-recursive
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-info: install-info-recursive
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-taglib_includeHEADERS
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
- uninstall-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/ogg/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-recursive
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libogg_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/oggfile.cpp $(srcdir)/oggpage.cpp $(srcdir)/oggpageheader.cpp $(srcdir)/xiphcomment.cpp
- @echo 'creating libogg_la.all_cpp.cpp ...'; \
- rm -f libogg_la.all_cpp.files libogg_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libogg_la.all_cpp.final; \
- for file in oggfile.cpp oggpage.cpp oggpageheader.cpp xiphcomment.cpp ; do \
- echo "#include \"$$file\"" >> libogg_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libogg_la.all_cpp.final; \
- done; \
- cat libogg_la.all_cpp.final libogg_la.all_cpp.files > libogg_la.all_cpp.cpp; \
- rm -f libogg_la.all_cpp.final libogg_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libogg_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libogg_la_OBJECTS="$(libogg_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libogg_la_OBJECTS="$(libogg_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libogg_la_OBJECTS="$(libogg_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libogg_la_OBJECTS="$(libogg_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ogg/flac/CMakeLists.txt b/libs/taglib/taglib/ogg/flac/CMakeLists.txt
deleted file mode 100644
index 6e7d9a81db..0000000000
--- a/libs/taglib/taglib/ogg/flac/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-INSTALL( FILES oggflacfile.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
-
diff --git a/libs/taglib/taglib/ogg/flac/Makefile.am b/libs/taglib/taglib/ogg/flac/Makefile.am
deleted file mode 100644
index 120aa2a4e3..0000000000
--- a/libs/taglib/taglib/ogg/flac/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/flac \
- $(all_includes)
-
-noinst_LTLIBRARIES = liboggflac.la
-
-liboggflac_la_SOURCES = oggflacfile.cpp
-
-taglib_include_HEADERS = oggflacfile.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/ogg/flac/Makefile.in b/libs/taglib/taglib/ogg/flac/Makefile.in
deleted file mode 100644
index 7058f4443b..0000000000
--- a/libs/taglib/taglib/ogg/flac/Makefile.in
+++ /dev/null
@@ -1,604 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/ogg/flac
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-liboggflac_la_LIBADD =
-am_liboggflac_la_OBJECTS = oggflacfile.lo
-#>- liboggflac_la_OBJECTS = $(am_liboggflac_la_OBJECTS)
-#>+ 1
-liboggflac_la_OBJECTS = oggflacfile.lo
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(liboggflac_la_SOURCES)
-DIST_SOURCES = $(liboggflac_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- -I$(top_srcdir)/taglib/flac \
- $(all_includes)
-
-noinst_LTLIBRARIES = liboggflac.la
-liboggflac_la_SOURCES = oggflacfile.cpp
-taglib_include_HEADERS = oggflacfile.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/ogg/flac/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/ogg/flac/Makefile
-#>+ 12
- @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 taglib/ogg/flac/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/flac/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/flac/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-liboggflac.la: $(liboggflac_la_OBJECTS) $(liboggflac_la_DEPENDENCIES)
- $(CXXLINK) $(liboggflac_la_OBJECTS) $(liboggflac_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oggflacfile.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/ogg/flac/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/flac/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/flac/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 3
-final:
- $(MAKE) all-am
-
-#>+ 3
-final-install:
- $(MAKE) install-am
-
-#>+ 3
-no-final:
- $(MAKE) all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ogg/flac/oggflacfile.cpp b/libs/taglib/taglib/ogg/flac/oggflacfile.cpp
deleted file mode 100644
index 9281fbaf1d..0000000000
--- a/libs/taglib/taglib/ogg/flac/oggflacfile.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004-2005 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tdebug.h>
-
-#include <xiphcomment.h>
-#include "oggflacfile.h"
-
-using namespace TagLib;
-using TagLib::FLAC::Properties;
-
-class Ogg::FLAC::File::FilePrivate
-{
-public:
- FilePrivate() :
- comment(0),
- properties(0),
- streamStart(0),
- streamLength(0),
- scanned(false),
- hasXiphComment(false),
- commentPacket(0) {}
-
- ~FilePrivate()
- {
- delete comment;
- delete properties;
- }
-
- Ogg::XiphComment *comment;
-
- Properties *properties;
- ByteVector streamInfoData;
- ByteVector xiphCommentData;
- long streamStart;
- long streamLength;
- bool scanned;
-
- bool hasXiphComment;
- int commentPacket;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::FLAC::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : Ogg::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-Ogg::FLAC::File::~File()
-{
- delete d;
-}
-
-Ogg::XiphComment *Ogg::FLAC::File::tag() const
-{
- return d->comment;
-}
-
-Properties *Ogg::FLAC::File::audioProperties() const
-{
- return d->properties;
-}
-
-
-bool Ogg::FLAC::File::save()
-{
- d->xiphCommentData = d->comment->render();
-
- // Create FLAC metadata-block:
-
- // Put the size in the first 32 bit (I assume no more than 24 bit are used)
-
- ByteVector v = ByteVector::fromUInt(d->xiphCommentData.size());
-
- // Set the type of the metadata-block to be a Xiph / Vorbis comment
-
- v[0] = 4;
-
- // Append the comment-data after the 32 bit header
-
- v.append(d->xiphCommentData);
-
- // Save the packet at the old spot
- // FIXME: Use padding if size is increasing
-
- setPacket(d->commentPacket, v);
-
- return Ogg::File::save();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Ogg::FLAC::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- // Sanity: Check if we really have an Ogg/FLAC file
-
-/*
- ByteVector oggHeader = packet(0);
-
- if (oggHeader.mid(28,4) != "fLaC") {
- debug("Ogg::FLAC::File::read() -- Not an Ogg/FLAC file");
- setValid(false);
- return;
- }*/
-
- // Look for FLAC metadata, including vorbis comments
-
- scan();
-
- if (!d->scanned) {
- setValid(false);
- return;
- }
-
-
- if(d->hasXiphComment)
- d->comment = new Ogg::XiphComment(xiphCommentData());
- else
- d->comment = new Ogg::XiphComment;
-
-
- if(readProperties)
- d->properties = new Properties(streamInfoData(), streamLength(), propertiesStyle);
-}
-
-ByteVector Ogg::FLAC::File::streamInfoData()
-{
- scan();
- return d->streamInfoData;
-}
-
-ByteVector Ogg::FLAC::File::xiphCommentData()
-{
- scan();
- return d->xiphCommentData;
-}
-
-long Ogg::FLAC::File::streamLength()
-{
- scan();
- return d->streamLength;
-}
-
-void Ogg::FLAC::File::scan()
-{
- // Scan the metadata pages
-
- if(d->scanned)
- return;
-
- if(!isValid())
- return;
-
- int ipacket = 0;
- long overhead = 0;
-
- ByteVector metadataHeader = packet(ipacket);
- if(metadataHeader.isNull())
- return;
-
- ByteVector header;
-
- if (!metadataHeader.startsWith("fLaC")) {
- // FLAC 1.1.2+
- if (metadataHeader.mid(1,4) != "FLAC") return;
-
- if (metadataHeader[5] != 1) return; // not version 1
-
- metadataHeader = metadataHeader.mid(13);
- }
- else {
- // FLAC 1.1.0 & 1.1.1
- metadataHeader = packet(++ipacket);
-
- if(metadataHeader.isNull())
- return;
-
- }
-
- header = metadataHeader.mid(0,4);
- // Header format (from spec):
- // <1> Last-metadata-block flag
- // <7> BLOCK_TYPE
- // 0 : STREAMINFO
- // 1 : PADDING
- // ..
- // 4 : VORBIS_COMMENT
- // ..
- // <24> Length of metadata to follow
-
- char blockType = header[0] & 0x7f;
- bool lastBlock = (header[0] & 0x80) != 0;
- uint length = header.mid(1, 3).toUInt();
- overhead += length;
-
- // Sanity: First block should be the stream_info metadata
-
- if(blockType != 0) {
- debug("Ogg::FLAC::File::scan() -- Invalid Ogg/FLAC stream");
- return;
- }
-
- d->streamInfoData = metadataHeader.mid(4,length);
-
- // Search through the remaining metadata
-
- while(!lastBlock) {
- metadataHeader = packet(++ipacket);
-
- if(metadataHeader.isNull())
- return;
-
- header = metadataHeader.mid(0, 4);
- blockType = header[0] & 0x7f;
- lastBlock = (header[0] & 0x80) != 0;
- length = header.mid(1, 3).toUInt();
- overhead += length;
-
- if(blockType == 1) {
- // debug("Ogg::FLAC::File::scan() -- Padding found");
- }
- else if(blockType == 4) {
- // debug("Ogg::FLAC::File::scan() -- Vorbis-comments found");
- d->xiphCommentData = metadataHeader.mid(4, length);
- d->hasXiphComment = true;
- d->commentPacket = ipacket;
- }
- else if(blockType > 5) {
- debug("Ogg::FLAC::File::scan() -- Unknown metadata block");
- }
-
- }
-
- // End of metadata, now comes the datastream
- d->streamStart = overhead;
- d->streamLength = File::length() - d->streamStart;
-
- d->scanned = true;
-}
diff --git a/libs/taglib/taglib/ogg/flac/oggflacfile.h b/libs/taglib/taglib/ogg/flac/oggflacfile.h
deleted file mode 100644
index ab1e79deac..0000000000
--- a/libs/taglib/taglib/ogg/flac/oggflacfile.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_OGGFLACFILE_H
-#define TAGLIB_OGGFLACFILE_H
-
-#include "taglib_export.h"
-#include "oggfile.h"
-#include "xiphcomment.h"
-
-#include "flacproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace Ogg {
-
- //! An implementation of Ogg FLAC metadata
-
- /*!
- * This is implementation of FLAC metadata for Ogg FLAC files. For "pure"
- * FLAC files look under the FLAC hiearchy.
- *
- * Unlike "pure" FLAC-files, Ogg FLAC only supports Xiph-comments,
- * while the audio-properties are the same.
- */
- namespace FLAC {
-
- using TagLib::FLAC::Properties;
-
- //! An implementation of TagLib::File with Ogg/FLAC specific methods
-
- /*!
- * This implements and provides an interface for Ogg/FLAC files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to Ogg FLAC files.
- */
-
- class TAGLIB_EXPORT File : public Ogg::File
- {
- public:
- /*!
- * Contructs an Ogg/FLAC file from \a file. If \a readProperties is true
- * the file's audio properties will also be read using \a propertiesStyle.
- * If false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will always be a XiphComment.
- */
- virtual XiphComment *tag() const;
-
- /*!
- * Returns the FLAC::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Save the file. This will primarily save and update the XiphComment.
- * Returns true if the save is successful.
- */
- virtual bool save();
-
- /*!
- * Returns the length of the audio-stream, used by FLAC::Properties for
- * calculating the bitrate.
- */
- long streamLength();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- ByteVector streamInfoData();
- ByteVector xiphCommentData();
-
- class FilePrivate;
- FilePrivate *d;
- };
- } // namespace FLAC
- } // namespace Ogg
-} // namespace TagLib
-
-#endif
diff --git a/libs/taglib/taglib/ogg/oggfile.cpp b/libs/taglib/taglib/ogg/oggfile.cpp
deleted file mode 100644
index ce5ac79376..0000000000
--- a/libs/taglib/taglib/ogg/oggfile.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevectorlist.h>
-#include <tmap.h>
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "oggfile.h"
-#include "oggpage.h"
-#include "oggpageheader.h"
-
-using namespace TagLib;
-
-class Ogg::File::FilePrivate
-{
-public:
- FilePrivate() :
- streamSerialNumber(0),
- firstPageHeader(0),
- lastPageHeader(0),
- currentPage(0),
- currentPacketPage(0)
- {
- pages.setAutoDelete(true);
- }
-
- ~FilePrivate()
- {
- delete firstPageHeader;
- delete lastPageHeader;
- }
-
- uint streamSerialNumber;
- List<Page *> pages;
- PageHeader *firstPageHeader;
- PageHeader *lastPageHeader;
- std::vector< List<int> > packetToPageMap;
- Map<int, ByteVector> dirtyPackets;
- List<int> dirtyPages;
-
- //! The current page for the reader -- used by nextPage()
- Page *currentPage;
- //! The current page for the packet parser -- used by packet()
- Page *currentPacketPage;
- //! The packets for the currentPacketPage -- used by packet()
- ByteVectorList currentPackets;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::File::~File()
-{
- delete d;
-}
-
-ByteVector Ogg::File::packet(uint i)
-{
- // Check to see if we're called setPacket() for this packet since the last
- // save:
-
- if(d->dirtyPackets.contains(i))
- return d->dirtyPackets[i];
-
- // If we haven't indexed the page where the packet we're interested in starts,
- // begin reading pages until we have.
-
- while(d->packetToPageMap.size() <= i) {
- if(!nextPage()) {
- debug("Ogg::File::packet() -- Could not find the requested packet.");
- return ByteVector::null;
- }
- }
-
- // Start reading at the first page that contains part (or all) of this packet.
- // If the last read stopped at the packet that we're interested in, don't
- // reread its packet list. (This should make sequential packet reads fast.)
-
- uint pageIndex = d->packetToPageMap[i].front();
- if(d->currentPacketPage != d->pages[pageIndex]) {
- d->currentPacketPage = d->pages[pageIndex];
- d->currentPackets = d->currentPacketPage->packets();
- }
-
- // If the packet is completely contained in the first page that it's in, then
- // just return it now.
-
- if(d->currentPacketPage->containsPacket(i) & Page::CompletePacket)
- return d->currentPackets[i - d->currentPacketPage->firstPacketIndex()];
-
- // If the packet is *not* completely contained in the first page that it's a
- // part of then that packet trails off the end of the page. Continue appending
- // the pages' packet data until we hit a page that either does not end with the
- // packet that we're fetching or where the last packet is complete.
-
- ByteVector packet = d->currentPackets.back();
- while(d->currentPacketPage->containsPacket(i) & Page::EndsWithPacket &&
- !d->currentPacketPage->header()->lastPacketCompleted())
- {
- pageIndex++;
- if(pageIndex == d->pages.size()) {
- if(!nextPage()) {
- debug("Ogg::File::packet() -- Could not find the requested packet.");
- return ByteVector::null;
- }
- }
- d->currentPacketPage = d->pages[pageIndex];
- d->currentPackets = d->currentPacketPage->packets();
- packet.append(d->currentPackets.front());
- }
-
- return packet;
-}
-
-void Ogg::File::setPacket(uint i, const ByteVector &p)
-{
- while(d->packetToPageMap.size() <= i) {
- if(!nextPage()) {
- debug("Ogg::File::setPacket() -- Could not set the requested packet.");
- return;
- }
- }
-
- List<int>::ConstIterator it = d->packetToPageMap[i].begin();
- for(; it != d->packetToPageMap[i].end(); ++it)
- d->dirtyPages.sortedInsert(*it, true);
-
- d->dirtyPackets.insert(i, p);
-}
-
-const Ogg::PageHeader *Ogg::File::firstPageHeader()
-{
- if(d->firstPageHeader)
- return d->firstPageHeader->isValid() ? d->firstPageHeader : 0;
-
- long firstPageHeaderOffset = find("OggS");
-
- if(firstPageHeaderOffset < 0)
- return 0;
-
- d->firstPageHeader = new PageHeader(this, firstPageHeaderOffset);
- return d->firstPageHeader->isValid() ? d->firstPageHeader : 0;
-}
-
-const Ogg::PageHeader *Ogg::File::lastPageHeader()
-{
- if(d->lastPageHeader)
- return d->lastPageHeader->isValid() ? d->lastPageHeader : 0;
-
- long lastPageHeaderOffset = rfind("OggS");
-
- if(lastPageHeaderOffset < 0)
- return 0;
-
- d->lastPageHeader = new PageHeader(this, lastPageHeaderOffset);
- return d->lastPageHeader->isValid() ? d->lastPageHeader : 0;
-}
-
-bool Ogg::File::save()
-{
- if(readOnly()) {
- debug("Ogg::File::save() - Cannot save to a read only file.");
- return false;
- }
-
- List<int> pageGroup;
-
- for(List<int>::ConstIterator it = d->dirtyPages.begin(); it != d->dirtyPages.end(); ++it) {
- if(!pageGroup.isEmpty() && pageGroup.back() + 1 != *it) {
- writePageGroup(pageGroup);
- pageGroup.clear();
- }
- else
- pageGroup.append(*it);
- }
- writePageGroup(pageGroup);
- d->dirtyPages.clear();
- d->dirtyPackets.clear();
-
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::File::File(FileName file) : TagLib::File(file)
-{
- d = new FilePrivate;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-bool Ogg::File::nextPage()
-{
- long nextPageOffset;
- int currentPacket;
-
- if(d->pages.isEmpty()) {
- currentPacket = 0;
- nextPageOffset = find("OggS");
- if(nextPageOffset < 0)
- return false;
- }
- else {
- if(d->currentPage->header()->lastPageOfStream())
- return false;
-
- if(d->currentPage->header()->lastPacketCompleted())
- currentPacket = d->currentPage->firstPacketIndex() + d->currentPage->packetCount();
- else
- currentPacket = d->currentPage->firstPacketIndex() + d->currentPage->packetCount() - 1;
-
- nextPageOffset = d->currentPage->fileOffset() + d->currentPage->size();
- }
-
- // Read the next page and add it to the page list.
-
- d->currentPage = new Page(this, nextPageOffset);
-
- if(!d->currentPage->header()->isValid()) {
- delete d->currentPage;
- d->currentPage = 0;
- return false;
- }
-
- d->currentPage->setFirstPacketIndex(currentPacket);
-
- if(d->pages.isEmpty())
- d->streamSerialNumber = d->currentPage->header()->streamSerialNumber();
-
- d->pages.append(d->currentPage);
-
- // Loop through the packets in the page that we just read appending the
- // current page number to the packet to page map for each packet.
-
- for(uint i = 0; i < d->currentPage->packetCount(); i++) {
- uint currentPacket = d->currentPage->firstPacketIndex() + i;
- if(d->packetToPageMap.size() <= currentPacket)
- d->packetToPageMap.push_back(List<int>());
- d->packetToPageMap[currentPacket].append(d->pages.size() - 1);
- }
-
- return true;
-}
-
-void Ogg::File::writePageGroup(const List<int> &pageGroup)
-{
- if(pageGroup.isEmpty())
- return;
-
- ByteVectorList packets;
-
- // If the first page of the group isn't dirty, append its partial content here.
-
- if(!d->dirtyPages.contains(d->pages[pageGroup.front()]->firstPacketIndex()))
- packets.append(d->pages[pageGroup.front()]->packets().front());
-
- int previousPacket = -1;
- int originalSize = 0;
-
- for(List<int>::ConstIterator it = pageGroup.begin(); it != pageGroup.end(); ++it) {
- uint firstPacket = d->pages[*it]->firstPacketIndex();
- uint lastPacket = firstPacket + d->pages[*it]->packetCount() - 1;
-
- List<int>::ConstIterator last = --pageGroup.end();
-
- for(uint i = firstPacket; i <= lastPacket; i++) {
-
- if(it == last && i == lastPacket && !d->dirtyPages.contains(i))
- packets.append(d->pages[*it]->packets().back());
- else if(int(i) != previousPacket) {
- previousPacket = i;
- packets.append(packet(i));
- }
- }
- originalSize += d->pages[*it]->size();
- }
-
- const bool continued = d->pages[pageGroup.front()]->header()->firstPacketContinued();
- const bool completed = d->pages[pageGroup.back()]->header()->lastPacketCompleted();
-
- // TODO: This pagination method isn't accurate for what's being done here.
- // This should account for real possibilities like non-aligned packets and such.
-
- List<Page *> pages = Page::paginate(packets, Page::SinglePagePerGroup,
- d->streamSerialNumber, pageGroup.front(),
- continued, completed);
-
- ByteVector data;
- for(List<Page *>::ConstIterator it = pages.begin(); it != pages.end(); ++it)
- data.append((*it)->render());
-
- // The insertion algorithms could also be improve to queue and prioritize data
- // on the way out. Currently it requires rewriting the file for every page
- // group rather than just once; however, for tagging applications there will
- // generally only be one page group, so it's not worth the time for the
- // optimization at the moment.
-
- insert(data, d->pages[pageGroup.front()]->fileOffset(), originalSize);
-
- // Update the page index to include the pages we just created and to delete the
- // old pages.
-
- for(List<Page *>::ConstIterator it = pages.begin(); it != pages.end(); ++it) {
- const int index = (*it)->header()->pageSequenceNumber();
- delete d->pages[index];
- d->pages[index] = *it;
- }
-}
diff --git a/libs/taglib/taglib/ogg/oggfile.h b/libs/taglib/taglib/ogg/oggfile.h
deleted file mode 100644
index e5535f6f3d..0000000000
--- a/libs/taglib/taglib/ogg/oggfile.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "taglib_export.h"
-#include "tfile.h"
-#include "tbytevectorlist.h"
-
-#ifndef TAGLIB_OGGFILE_H
-#define TAGLIB_OGGFILE_H
-
-namespace TagLib {
-
- //! A namespace for the classes used by Ogg-based metadata files
-
- namespace Ogg {
-
- class PageHeader;
-
- //! An implementation of TagLib::File with some helpers for Ogg based formats
-
- /*!
- * This is an implementation of Ogg file page and packet rendering and is of
- * use to Ogg based formats. While the API is small this handles the
- * non-trivial details of breaking up an Ogg stream into packets and makes
- * these available (via subclassing) to the codec meta data implementations.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- virtual ~File();
-
- /*!
- * Returns the packet contents for the i-th packet (starting from zero)
- * in the Ogg bitstream.
- *
- * \warning The requires reading at least the packet header for every page
- * up to the requested page.
- */
- ByteVector packet(uint i);
-
- /*!
- * Sets the packet with index \a i to the value \a p.
- */
- void setPacket(uint i, const ByteVector &p);
-
- /*!
- * Returns a pointer to the PageHeader for the first page in the stream or
- * null if the page could not be found.
- */
- const PageHeader *firstPageHeader();
-
- /*!
- * Returns a pointer to the PageHeader for the last page in the stream or
- * null if the page could not be found.
- */
- const PageHeader *lastPageHeader();
-
- virtual bool save();
-
- protected:
- /*!
- * Contructs an Ogg file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * \note This constructor is protected since Ogg::File shouldn't be
- * instantiated directly but rather should be used through the codec
- * specific subclasses.
- */
- File(FileName file);
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- /*!
- * Reads the next page and updates the internal "current page" pointer.
- */
- bool nextPage();
- void writePageGroup(const List<int> &group);
-
- class FilePrivate;
- FilePrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/oggpage.cpp b/libs/taglib/taglib/ogg/oggpage.cpp
deleted file mode 100644
index da231a143b..0000000000
--- a/libs/taglib/taglib/ogg/oggpage.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "oggpage.h"
-#include "oggpageheader.h"
-#include "oggfile.h"
-
-using namespace TagLib;
-
-class Ogg::Page::PagePrivate
-{
-public:
- PagePrivate(File *f = 0, long pageOffset = -1) :
- file(f),
- fileOffset(pageOffset),
- packetOffset(0),
- header(f, pageOffset),
- firstPacketIndex(-1)
- {
- if(file) {
- packetOffset = fileOffset + header.size();
- packetSizes = header.packetSizes();
- dataSize = header.dataSize();
- }
- }
-
- File *file;
- long fileOffset;
- long packetOffset;
- int dataSize;
- List<int> packetSizes;
- PageHeader header;
- int firstPacketIndex;
- ByteVectorList packets;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::Page::Page(Ogg::File *file, long pageOffset)
-{
- d = new PagePrivate(file, pageOffset);
-}
-
-Ogg::Page::~Page()
-{
- delete d;
-}
-
-long Ogg::Page::fileOffset() const
-{
- return d->fileOffset;
-}
-
-const Ogg::PageHeader *Ogg::Page::header() const
-{
- return &d->header;
-}
-
-int Ogg::Page::firstPacketIndex() const
-{
- return d->firstPacketIndex;
-}
-
-void Ogg::Page::setFirstPacketIndex(int index)
-{
- d->firstPacketIndex = index;
-}
-
-Ogg::Page::ContainsPacketFlags Ogg::Page::containsPacket(int index) const
-{
- int lastPacketIndex = d->firstPacketIndex + packetCount() - 1;
- if(index < d->firstPacketIndex || index > lastPacketIndex)
- return DoesNotContainPacket;
-
- ContainsPacketFlags flags = DoesNotContainPacket;
-
- if(index == d->firstPacketIndex)
- flags = ContainsPacketFlags(flags | BeginsWithPacket);
-
- if(index == lastPacketIndex)
- flags = ContainsPacketFlags(flags | EndsWithPacket);
-
- // If there's only one page and it's complete:
-
- if(packetCount() == 1 &&
- !d->header.firstPacketContinued() &&
- d->header.lastPacketCompleted())
- {
- flags = ContainsPacketFlags(flags | CompletePacket);
- }
-
- // Or if the page is (a) the first page and it's complete or (b) the last page
- // and it's complete or (c) a page in the middle.
-
- else if((flags & BeginsWithPacket && !d->header.firstPacketContinued()) ||
- (flags & EndsWithPacket && d->header.lastPacketCompleted()) ||
- (!(flags & BeginsWithPacket) && !(flags & EndsWithPacket)))
- {
- flags = ContainsPacketFlags(flags | CompletePacket);
- }
-
- return flags;
-}
-
-TagLib::uint Ogg::Page::packetCount() const
-{
- return d->header.packetSizes().size();
-}
-
-ByteVectorList Ogg::Page::packets() const
-{
- if(!d->packets.isEmpty())
- return d->packets;
-
- ByteVectorList l;
-
- if(d->file && d->header.isValid()) {
-
- d->file->seek(d->packetOffset);
-
- List<int> packetSizes = d->header.packetSizes();
-
- List<int>::ConstIterator it = packetSizes.begin();
- for(; it != packetSizes.end(); ++it)
- l.append(d->file->readBlock(*it));
- }
- else {
- debug("Ogg::Page::packets() -- attempting to read packets from an invalid page.");
- }
-
- return l;
-}
-
-int Ogg::Page::size() const
-{
- return d->header.size() + d->header.dataSize();
-}
-
-ByteVector Ogg::Page::render() const
-{
- ByteVector data;
-
- data.append(d->header.render());
-
- if(d->packets.isEmpty()) {
- if(d->file) {
- d->file->seek(d->packetOffset);
- data.append(d->file->readBlock(d->dataSize));
- }
- else {
- debug("Ogg::Page::render() -- this page is empty!");
- }
- }
- else {
- ByteVectorList::ConstIterator it = d->packets.begin();
- for(; it != d->packets.end(); ++it)
- data.append(*it);
- }
-
- // Compute and set the checksum for the Ogg page. The checksum is taken over
- // the entire page with the 4 bytes reserved for the checksum zeroed and then
- // inserted in bytes 22-25 of the page header.
-
- ByteVector checksum = ByteVector::fromUInt(data.checksum(), false);
- for(int i = 0; i < 4; i++)
- data[i + 22] = checksum[i];
-
- return data;
-}
-
-List<Ogg::Page *> Ogg::Page::paginate(const ByteVectorList &packets,
- PaginationStrategy strategy,
- uint streamSerialNumber,
- int firstPage,
- bool firstPacketContinued,
- bool lastPacketCompleted,
- bool containsLastPacket)
-{
- List<Page *> l;
-
- int totalSize = 0;
-
- for(ByteVectorList::ConstIterator it = packets.begin(); it != packets.end(); ++it)
- totalSize += (*it).size();
-
- if(strategy == Repaginate || totalSize + packets.size() > 255 * 256) {
- debug("Ogg::Page::paginate() -- Sorry! Repagination is not yet implemented.");
- return l;
- }
-
- // TODO: Handle creation of multiple pages here with appropriate pagination.
-
- Page *p = new Page(packets, streamSerialNumber, firstPage, firstPacketContinued,
- lastPacketCompleted, containsLastPacket);
- l.append(p);
-
- return l;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::Page::Page(const ByteVectorList &packets,
- uint streamSerialNumber,
- int pageNumber,
- bool firstPacketContinued,
- bool lastPacketCompleted,
- bool containsLastPacket)
-{
- d = new PagePrivate;
-
- ByteVector data;
- List<int> packetSizes;
-
- d->header.setFirstPageOfStream(pageNumber == 0 && !firstPacketContinued);
- d->header.setLastPageOfStream(containsLastPacket);
- d->header.setFirstPacketContinued(firstPacketContinued);
- d->header.setLastPacketCompleted(lastPacketCompleted);
- d->header.setStreamSerialNumber(streamSerialNumber);
- d->header.setPageSequenceNumber(pageNumber);
-
- // Build a page from the list of packets.
-
- for(ByteVectorList::ConstIterator it = packets.begin(); it != packets.end(); ++it) {
- packetSizes.append((*it).size());
- data.append(*it);
- }
- d->packets = packets;
- d->header.setPacketSizes(packetSizes);
-}
diff --git a/libs/taglib/taglib/ogg/oggpage.h b/libs/taglib/taglib/ogg/oggpage.h
deleted file mode 100644
index fbe0ebc6d7..0000000000
--- a/libs/taglib/taglib/ogg/oggpage.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_OGGPAGE_H
-#define TAGLIB_OGGPAGE_H
-
-#include "taglib_export.h"
-#include "tbytevectorlist.h"
-
-namespace TagLib {
-
- namespace Ogg {
-
- class File;
- class PageHeader;
-
- //! An implementation of Ogg pages
-
- /*!
- * This is an implementation of the pages that make up an Ogg stream.
- * This handles parsing pages and breaking them down into packets and handles
- * the details of packets spanning multiple pages and pages that contiain
- * multiple packets.
- *
- * In most Xiph.org formats the comments are found in the first few packets,
- * this however is a reasonably complete implementation of Ogg pages that
- * could potentially be useful for non-meta data purposes.
- */
-
- class TAGLIB_EXPORT Page
- {
- public:
- /*!
- * Read an Ogg page from the \a file at the position \a pageOffset.
- */
- Page(File *file, long pageOffset);
-
- virtual ~Page();
-
- /*!
- * Returns the page's position within the file (in bytes).
- */
- long fileOffset() const;
-
- /*!
- * Returns a pointer to the header for this page. This pointer will become
- * invalid when the page is deleted.
- */
- const PageHeader *header() const;
-
- /*!
- * Returns the index of the first packet wholly or partially contained in
- * this page.
- *
- * \see setFirstPacketIndex()
- */
- int firstPacketIndex() const;
-
- /*!
- * Sets the index of the first packet in the page.
- *
- * \see firstPacketIndex()
- */
- void setFirstPacketIndex(int index);
-
- /*!
- * When checking to see if a page contains a given packet this set of flags
- * represents the possible values for that packets status in the page.
- *
- * \see containsPacket()
- */
- enum ContainsPacketFlags {
- //! No part of the packet is contained in the page
- DoesNotContainPacket = 0x0000,
- //! The packet is wholly contained in the page
- CompletePacket = 0x0001,
- //! The page starts with the given packet
- BeginsWithPacket = 0x0002,
- //! The page ends with the given packet
- EndsWithPacket = 0x0004
- };
-
- /*!
- * Checks to see if the specified \a packet is contained in the current
- * page.
- *
- * \see ContainsPacketFlags
- */
- ContainsPacketFlags containsPacket(int index) const;
-
- /*!
- * Returns the number of packets (whole or partial) in this page.
- */
- uint packetCount() const;
-
- /*!
- * Returns a list of the packets in this page.
- *
- * \note Either or both the first and last packets may be only partial.
- * \see PageHeader::firstPacketContinued()
- */
- ByteVectorList packets() const;
-
- /*!
- * Returns the size of the page in bytes.
- */
- int size() const;
-
- ByteVector render() const;
-
- /*!
- * Defines a strategy for pagination, or grouping pages into Ogg packets,
- * for use with pagination methods.
- *
- * \note Yes, I'm aware that this is not a canonical "Strategy Pattern",
- * the term was simply convenient.
- */
- enum PaginationStrategy {
- /*!
- * Attempt to put the specified set of packets into a single Ogg packet.
- * If the sum of the packet data is greater than will fit into a single
- * Ogg page -- 65280 bytes -- this will fall back to repagination using
- * the recommended page sizes.
- */
- SinglePagePerGroup,
- /*!
- * Split the packet or group of packets into pages that conform to the
- * sizes recommended in the Ogg standard.
- */
- Repaginate
- };
-
- /*!
- * Pack \a packets into Ogg pages using the \a strategy for pagination.
- * The page number indicater inside of the rendered packets will start
- * with \a firstPage and be incremented for each page rendered.
- * \a containsLastPacket should be set to true if \a packets contains the
- * last page in the stream and will set the appropriate flag in the last
- * rendered Ogg page's header. \a streamSerialNumber should be set to
- * the serial number for this stream.
- *
- * \note The "absolute granule position" is currently always zeroed using
- * this method as this suffices for the comment headers.
- *
- * \warning The pages returned by this method must be deleted by the user.
- * You can use List<T>::setAutoDelete(true) to set these pages to be
- * automatically deleted when this list passes out of scope.
- *
- * \see PaginationStrategy
- * \see List::setAutoDelete()
- */
- static List<Page *> paginate(const ByteVectorList &packets,
- PaginationStrategy strategy,
- uint streamSerialNumber,
- int firstPage,
- bool firstPacketContinued = false,
- bool lastPacketCompleted = true,
- bool containsLastPacket = false);
-
- protected:
- /*!
- * Creates an Ogg packet based on the data in \a packets. The page number
- * for each page will be set to \a pageNumber.
- */
- Page(const ByteVectorList &packets,
- uint streamSerialNumber,
- int pageNumber,
- bool firstPacketContinued = false,
- bool lastPacketCompleted = true,
- bool containsLastPacket = false);
-
- private:
- Page(const Page &);
- Page &operator=(const Page &);
-
- class PagePrivate;
- PagePrivate *d;
- };
- }
-}
-#endif
diff --git a/libs/taglib/taglib/ogg/oggpageheader.cpp b/libs/taglib/taglib/ogg/oggpageheader.cpp
deleted file mode 100644
index 5f86fcbcda..0000000000
--- a/libs/taglib/taglib/ogg/oggpageheader.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <stdlib.h>
-
-#include <bitset>
-
-#include <tstring.h>
-#include <tdebug.h>
-#include <taglib.h>
-
-#include "oggpageheader.h"
-#include "oggfile.h"
-
-using namespace TagLib;
-
-class Ogg::PageHeader::PageHeaderPrivate
-{
-public:
- PageHeaderPrivate(File *f, long pageOffset) :
- file(f),
- fileOffset(pageOffset),
- isValid(false),
- firstPacketContinued(false),
- lastPacketCompleted(false),
- firstPageOfStream(false),
- lastPageOfStream(false),
- absoluteGranularPosition(0),
- streamSerialNumber(0),
- pageSequenceNumber(-1),
- size(0),
- dataSize(0)
- {}
-
- File *file;
- long fileOffset;
- bool isValid;
- List<int> packetSizes;
- bool firstPacketContinued;
- bool lastPacketCompleted;
- bool firstPageOfStream;
- bool lastPageOfStream;
- long long absoluteGranularPosition;
- uint streamSerialNumber;
- int pageSequenceNumber;
- int size;
- int dataSize;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::PageHeader::PageHeader(Ogg::File *file, long pageOffset)
-{
- d = new PageHeaderPrivate(file, pageOffset);
- if(file && pageOffset >= 0)
- read();
-}
-
-Ogg::PageHeader::~PageHeader()
-{
- delete d;
-}
-
-bool Ogg::PageHeader::isValid() const
-{
- return d->isValid;
-}
-
-List<int> Ogg::PageHeader::packetSizes() const
-{
- return d->packetSizes;
-}
-
-void Ogg::PageHeader::setPacketSizes(const List<int> &sizes)
-{
- d->packetSizes = sizes;
-}
-
-bool Ogg::PageHeader::firstPacketContinued() const
-{
- return d->firstPacketContinued;
-}
-
-void Ogg::PageHeader::setFirstPacketContinued(bool continued)
-{
- d->firstPacketContinued = continued;
-}
-
-bool Ogg::PageHeader::lastPacketCompleted() const
-{
- return d->lastPacketCompleted;
-}
-
-void Ogg::PageHeader::setLastPacketCompleted(bool completed)
-{
- d->lastPacketCompleted = completed;
-}
-
-bool Ogg::PageHeader::firstPageOfStream() const
-{
- return d->firstPageOfStream;
-}
-
-void Ogg::PageHeader::setFirstPageOfStream(bool first)
-{
- d->firstPageOfStream = first;
-}
-
-bool Ogg::PageHeader::lastPageOfStream() const
-{
- return d->lastPageOfStream;
-}
-
-void Ogg::PageHeader::setLastPageOfStream(bool last)
-{
- d->lastPageOfStream = last;
-}
-
-long long Ogg::PageHeader::absoluteGranularPosition() const
-{
- return d->absoluteGranularPosition;
-}
-
-void Ogg::PageHeader::setAbsoluteGranularPosition(long long agp)
-{
- d->absoluteGranularPosition = agp;
-}
-
-int Ogg::PageHeader::pageSequenceNumber() const
-{
- return d->pageSequenceNumber;
-}
-
-void Ogg::PageHeader::setPageSequenceNumber(int sequenceNumber)
-{
- d->pageSequenceNumber = sequenceNumber;
-}
-
-TagLib::uint Ogg::PageHeader::streamSerialNumber() const
-{
- return d->streamSerialNumber;
-}
-
-void Ogg::PageHeader::setStreamSerialNumber(uint n)
-{
- d->streamSerialNumber = n;
-}
-
-int Ogg::PageHeader::size() const
-{
- return d->size;
-}
-
-int Ogg::PageHeader::dataSize() const
-{
- return d->dataSize;
-}
-
-ByteVector Ogg::PageHeader::render() const
-{
- ByteVector data;
-
- // capture patern
-
- data.append("OggS");
-
- // stream structure version
-
- data.append(char(0));
-
- // header type flag
-
- std::bitset<8> flags;
- flags[0] = d->firstPacketContinued;
- flags[1] = d->pageSequenceNumber == 0;
- flags[2] = d->lastPageOfStream;
-
- data.append(char(flags.to_ulong()));
-
- // absolute granular position
-
- data.append(ByteVector::fromLongLong(d->absoluteGranularPosition, false));
-
- // stream serial number
-
- data.append(ByteVector::fromUInt(d->streamSerialNumber, false));
-
- // page sequence number
-
- data.append(ByteVector::fromUInt(d->pageSequenceNumber, false));
-
- // checksum -- this is left empty and should be filled in by the Ogg::Page
- // class
-
- data.append(ByteVector(4, 0));
-
- // page segment count and page segment table
-
- ByteVector pageSegments = lacingValues();
-
- data.append(char(uchar(pageSegments.size())));
- data.append(pageSegments);
-
- return data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Ogg::PageHeader::read()
-{
- d->file->seek(d->fileOffset);
-
- // An Ogg page header is at least 27 bytes, so we'll go ahead and read that
- // much and then get the rest when we're ready for it.
-
- ByteVector data = d->file->readBlock(27);
-
- // Sanity check -- make sure that we were in fact able to read as much data as
- // we asked for and that the page begins with "OggS".
-
- if(data.size() != 27 || !data.startsWith("OggS")) {
- debug("Ogg::PageHeader::read() -- error reading page header");
- return;
- }
-
- std::bitset<8> flags(data[5]);
-
- d->firstPacketContinued = flags.test(0);
- d->firstPageOfStream = flags.test(1);
- d->lastPageOfStream = flags.test(2);
-
- d->absoluteGranularPosition = data.mid(6, 8).toLongLong(false);
- d->streamSerialNumber = data.mid(14, 4).toUInt(false);
- d->pageSequenceNumber = data.mid(18, 4).toUInt(false);
-
- // Byte number 27 is the number of page segments, which is the only variable
- // length portion of the page header. After reading the number of page
- // segments we'll then read in the corresponding data for this count.
-
- int pageSegmentCount = uchar(data[26]);
-
- ByteVector pageSegments = d->file->readBlock(pageSegmentCount);
-
- // Another sanity check.
-
- if(pageSegmentCount < 1 || int(pageSegments.size()) != pageSegmentCount)
- return;
-
- // The base size of an Ogg page 27 bytes plus the number of lacing values.
-
- d->size = 27 + pageSegmentCount;
-
- int packetSize = 0;
-
- for(int i = 0; i < pageSegmentCount; i++) {
- d->dataSize += uchar(pageSegments[i]);
- packetSize += uchar(pageSegments[i]);
-
- if(uchar(pageSegments[i]) < 255) {
- d->packetSizes.append(packetSize);
- packetSize = 0;
- }
- }
-
- if(packetSize > 0) {
- d->packetSizes.append(packetSize);
- d->lastPacketCompleted = false;
- }
- else
- d->lastPacketCompleted = true;
-
- d->isValid = true;
-}
-
-ByteVector Ogg::PageHeader::lacingValues() const
-{
- ByteVector data;
-
- List<int> sizes = d->packetSizes;
- for(List<int>::ConstIterator it = sizes.begin(); it != sizes.end(); ++it) {
-
- // The size of a packet in an Ogg page is indicated by a series of "lacing
- // values" where the sum of the values is the packet size in bytes. Each of
- // these values is a byte. A value of less than 255 (0xff) indicates the end
- // of the packet.
-
- div_t n = div(*it, 255);
-
- for(int i = 0; i < n.quot; i++)
- data.append(char(uchar(255)));
-
- if(it != --sizes.end() || d->lastPacketCompleted)
- data.append(char(uchar(n.rem)));
- }
-
- return data;
-}
diff --git a/libs/taglib/taglib/ogg/oggpageheader.h b/libs/taglib/taglib/ogg/oggpageheader.h
deleted file mode 100644
index 4c683fe580..0000000000
--- a/libs/taglib/taglib/ogg/oggpageheader.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_OGGPAGEHEADER_H
-#define TAGLIB_OGGPAGEHEADER_H
-
-#include "tlist.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace Ogg {
-
- class File;
-
- //! An implementation of the page headers associated with each Ogg::Page
-
- /*!
- * This class implements Ogg page headers which contain the information
- * about Ogg pages needed to break them into packets which can be passed on
- * to the codecs.
- */
-
- class TAGLIB_EXPORT PageHeader
- {
- public:
- /*!
- * Reads a PageHeader from \a file starting at \a pageOffset. The defaults
- * create a page with no (and as such, invalid) data that must be set
- * later.
- */
- PageHeader(File *file = 0, long pageOffset = -1);
-
- /*!
- * Deletes this instance of the PageHeader.
- */
- virtual ~PageHeader();
-
- /*!
- * Returns true if the header parsed properly and is valid.
- */
- bool isValid() const;
-
- /*!
- * Ogg pages contain a list of packets (which are used by the contained
- * codecs). The sizes of these pages is encoded in the page header. This
- * returns a list of the packet sizes in bytes.
- *
- * \see setPacketSizes()
- */
- List<int> packetSizes() const;
-
- /*!
- * Sets the sizes of the packets in this page to \a sizes. Internally this
- * updates the lacing values in the header.
- *
- * \see packetSizes()
- */
- void setPacketSizes(const List<int> &sizes);
-
- /*!
- * Some packets can be <i>continued</i> across multiple pages. If the
- * first packet in the current page is a continuation this will return
- * true. If this is page starts with a new packet this will return false.
- *
- * \see lastPacketCompleted()
- * \see setFirstPacketContinued()
- */
- bool firstPacketContinued() const;
-
- /*!
- * Sets the internal flag indicating if the first packet in this page is
- * continued to \a continued.
- *
- * \see firstPacketContinued()
- */
- void setFirstPacketContinued(bool continued);
-
- /*!
- * Returns true if the last packet of this page is completely contained in
- * this page.
- *
- * \see firstPacketContinued()
- * \see setLastPacketCompleted()
- */
- bool lastPacketCompleted() const;
-
- /*!
- * Sets the internal flag indicating if the last packet in this page is
- * complete to \a completed.
- *
- * \see lastPacketCompleted()
- */
- void setLastPacketCompleted(bool completed);
-
- /*!
- * This returns true if this is the first page of the Ogg (logical) stream.
- *
- * \see setFirstPageOfStream()
- */
- bool firstPageOfStream() const;
-
- /*!
- * Marks this page as the first page of the Ogg stream.
- *
- * \see firstPageOfStream()
- */
- void setFirstPageOfStream(bool first);
-
- /*!
- * This returns true if this is the last page of the Ogg (logical) stream.
- *
- * \see setLastPageOfStream()
- */
- bool lastPageOfStream() const;
-
- /*!
- * Marks this page as the last page of the Ogg stream.
- *
- * \see lastPageOfStream()
- */
- void setLastPageOfStream(bool last);
-
- /*!
- * A special value of containing the position of the packet to be
- * interpreted by the codec. In the case of Vorbis this contains the PCM
- * value and is used to calculate the length of the stream.
- *
- * \see setAbsoluteGranularPosition()
- */
- long long absoluteGranularPosition() const;
-
- /*!
- * A special value of containing the position of the packet to be
- * interpreted by the codec. It is only supported here so that it may be
- * coppied from one page to another.
- *
- * \see absoluteGranularPosition()
- */
- void setAbsoluteGranularPosition(long long agp);
-
- /*!
- * Every Ogg logical stream is given a random serial number which is common
- * to every page in that logical stream. This returns the serial number of
- * the stream associated with this packet.
- *
- * \see setStreamSerialNumber()
- */
- uint streamSerialNumber() const;
-
- /*!
- * Every Ogg logical stream is given a random serial number which is common
- * to every page in that logical stream. This sets this pages serial
- * number. This method should be used when adding new pages to a logical
- * stream.
- *
- * \see streamSerialNumber()
- */
- void setStreamSerialNumber(uint n);
-
- /*!
- * Returns the index of the page within the Ogg stream. This helps make it
- * possible to determine if pages have been lost.
- *
- * \see setPageSequenceNumber()
- */
- int pageSequenceNumber() const;
-
- /*!
- * Sets the page's position in the stream to \a sequenceNumber.
- *
- * \see pageSequenceNumber()
- */
- void setPageSequenceNumber(int sequenceNumber);
-
- /*!
- * Returns the complete header size.
- */
- int size() const;
-
- /*!
- * Returns the size of the data portion of the page -- i.e. the size of the
- * page less the header size.
- */
- int dataSize() const;
-
- /*!
- * Render the page header to binary data.
- *
- * \note The checksum -- bytes 22 - 25 -- will be left empty and must be
- * filled in when rendering the entire page.
- */
- ByteVector render() const;
-
- private:
- PageHeader(const PageHeader &);
- PageHeader &operator=(const PageHeader &);
-
- void read();
- ByteVector lacingValues() const;
-
- class PageHeaderPrivate;
- PageHeaderPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/speex/CMakeLists.txt b/libs/taglib/taglib/ogg/speex/CMakeLists.txt
deleted file mode 100644
index 7f35b71f30..0000000000
--- a/libs/taglib/taglib/ogg/speex/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES speexfile.h speexproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/ogg/speex/Makefile.am b/libs/taglib/taglib/ogg/speex/Makefile.am
deleted file mode 100644
index ef95d5bd01..0000000000
--- a/libs/taglib/taglib/ogg/speex/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libspeex.la
-
-libspeex_la_SOURCES = speexfile.cpp speexproperties.cpp
-
-taglib_include_HEADERS = speexfile.h speexproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/ogg/speex/Makefile.in b/libs/taglib/taglib/ogg/speex/Makefile.in
deleted file mode 100644
index fbaff53af9..0000000000
--- a/libs/taglib/taglib/ogg/speex/Makefile.in
+++ /dev/null
@@ -1,623 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/ogg/speex
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libspeex_la_LIBADD =
-am_libspeex_la_OBJECTS = speexfile.lo speexproperties.lo
-#>- libspeex_la_OBJECTS = $(am_libspeex_la_OBJECTS)
-#>+ 4
-libspeex_la_final_OBJECTS = libspeex_la.all_cpp.lo
-libspeex_la_nofinal_OBJECTS = speexfile.lo speexproperties.lo
-@KDE_USE_FINAL_FALSE@libspeex_la_OBJECTS = $(libspeex_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libspeex_la_OBJECTS = $(libspeex_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libspeex_la_SOURCES)
-DIST_SOURCES = $(libspeex_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libspeex.la
-libspeex_la_SOURCES = speexfile.cpp speexproperties.cpp
-taglib_include_HEADERS = speexfile.h speexproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/ogg/speex/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/ogg/speex/Makefile
-#>+ 12
- @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 taglib/ogg/speex/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/speex/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/speex/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libspeex.la: $(libspeex_la_OBJECTS) $(libspeex_la_DEPENDENCIES)
- $(CXXLINK) $(libspeex_la_OBJECTS) $(libspeex_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speexfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speexproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/ogg/speex/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/speex/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/speex/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libspeex_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/speexfile.cpp $(srcdir)/speexproperties.cpp
- @echo 'creating libspeex_la.all_cpp.cpp ...'; \
- rm -f libspeex_la.all_cpp.files libspeex_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libspeex_la.all_cpp.final; \
- for file in speexfile.cpp speexproperties.cpp ; do \
- echo "#include \"$$file\"" >> libspeex_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libspeex_la.all_cpp.final; \
- done; \
- cat libspeex_la.all_cpp.final libspeex_la.all_cpp.files > libspeex_la.all_cpp.cpp; \
- rm -f libspeex_la.all_cpp.final libspeex_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libspeex_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libspeex_la_OBJECTS="$(libspeex_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libspeex_la_OBJECTS="$(libspeex_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libspeex_la_OBJECTS="$(libspeex_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libspeex_la_OBJECTS="$(libspeex_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ogg/speex/speexfile.cpp b/libs/taglib/taglib/ogg/speex/speexfile.cpp
deleted file mode 100644
index a1391b8367..0000000000
--- a/libs/taglib/taglib/ogg/speex/speexfile.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- (original Vorbis implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <bitset>
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "speexfile.h"
-
-using namespace TagLib;
-using namespace TagLib::Ogg;
-
-class Speex::File::FilePrivate
-{
-public:
- FilePrivate() :
- comment(0),
- properties(0) {}
-
- ~FilePrivate()
- {
- delete comment;
- delete properties;
- }
-
- Ogg::XiphComment *comment;
- Properties *properties;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Speex::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : Ogg::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-Speex::File::~File()
-{
- delete d;
-}
-
-Ogg::XiphComment *Speex::File::tag() const
-{
- return d->comment;
-}
-
-Speex::Properties *Speex::File::audioProperties() const
-{
- return d->properties;
-}
-
-bool Speex::File::save()
-{
- if(!d->comment)
- d->comment = new Ogg::XiphComment;
-
- setPacket(1, d->comment->render());
-
- return Ogg::File::save();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Speex::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- ByteVector speexHeaderData = packet(0);
-
- if(!speexHeaderData.startsWith("Speex ")) {
- debug("Speex::File::read() -- invalid Speex identification header");
- return;
- }
-
- ByteVector commentHeaderData = packet(1);
-
- d->comment = new Ogg::XiphComment(commentHeaderData);
-
- if(readProperties)
- d->properties = new Properties(this, propertiesStyle);
-}
diff --git a/libs/taglib/taglib/ogg/speex/speexfile.h b/libs/taglib/taglib/ogg/speex/speexfile.h
deleted file mode 100644
index 6b585452ba..0000000000
--- a/libs/taglib/taglib/ogg/speex/speexfile.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- (original Vorbis implementation)
-***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_SPEEXFILE_H
-#define TAGLIB_SPEEXFILE_H
-
-#include <oggfile.h>
-#include <xiphcomment.h>
-
-#include "speexproperties.h"
-
-namespace TagLib {
-
- namespace Ogg {
-
- //! A namespace containing classes for Speex metadata
-
- namespace Speex {
-
- //! An implementation of Ogg::File with Speex specific methods
-
- /*!
- * This is the central class in the Ogg Speex metadata processing collection
- * of classes. It's built upon Ogg::File which handles processing of the Ogg
- * logical bitstream and breaking it down into pages which are handled by
- * the codec implementations, in this case Speex specifically.
- */
-
- class TAGLIB_EXPORT File : public Ogg::File
- {
- public:
- /*!
- * Contructs a Speex file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the XiphComment for this file. XiphComment implements the tag
- * interface, so this serves as the reimplementation of
- * TagLib::File::tag().
- */
- virtual Ogg::XiphComment *tag() const;
-
- /*!
- * Returns the Speex::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- virtual bool save();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/speex/speexproperties.cpp b/libs/taglib/taglib/ogg/speex/speexproperties.cpp
deleted file mode 100644
index 9790325175..0000000000
--- a/libs/taglib/taglib/ogg/speex/speexproperties.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- (original Vorbis implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include <oggpageheader.h>
-
-#include "speexproperties.h"
-#include "speexfile.h"
-
-using namespace TagLib;
-using namespace TagLib::Ogg;
-
-class Speex::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(File *f, ReadStyle s) :
- file(f),
- style(s),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0),
- speexVersion(0),
- vbr(false),
- mode(0) {}
-
- File *file;
- ReadStyle style;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
- int speexVersion;
- bool vbr;
- int mode;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Speex::Properties::Properties(File *file, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(file, style);
- read();
-}
-
-Speex::Properties::~Properties()
-{
- delete d;
-}
-
-int Speex::Properties::length() const
-{
- return d->length;
-}
-
-int Speex::Properties::bitrate() const
-{
- return int(float(d->bitrate) / float(1000) + 0.5);
-}
-
-int Speex::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int Speex::Properties::channels() const
-{
- return d->channels;
-}
-
-int Speex::Properties::speexVersion() const
-{
- return d->speexVersion;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Speex::Properties::read()
-{
- // Get the identification header from the Ogg implementation.
-
- ByteVector data = d->file->packet(0);
-
- int pos = 28;
-
- // speex_version_id; /**< Version for Speex (for checking compatibility) */
- d->speexVersion = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // header_size; /**< Total size of the header ( sizeof(SpeexHeader) ) */
- pos += 4;
-
- // rate; /**< Sampling rate used */
- d->sampleRate = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // mode; /**< Mode used (0 for narrowband, 1 for wideband) */
- d->mode = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // mode_bitstream_version; /**< Version ID of the bit-stream */
- pos += 4;
-
- // nb_channels; /**< Number of channels encoded */
- d->channels = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // bitrate; /**< Bit-rate used */
- d->bitrate = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // frame_size; /**< Size of frames */
- // unsigned int frameSize = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- // vbr; /**< 1 for a VBR encoding, 0 otherwise */
- d->vbr = data.mid(pos, 4).toUInt(false) == 1;
- pos += 4;
-
- // frames_per_packet; /**< Number of frames stored per Ogg packet */
- // unsigned int framesPerPacket = data.mid(pos, 4).toUInt(false);
-
- const Ogg::PageHeader *first = d->file->firstPageHeader();
- const Ogg::PageHeader *last = d->file->lastPageHeader();
-
- if(first && last) {
- long long start = first->absoluteGranularPosition();
- long long end = last->absoluteGranularPosition();
-
- if(start >= 0 && end >= 0 && d->sampleRate > 0)
- d->length = (int) ((end - start) / (long long) d->sampleRate);
- else {
- debug("Speex::Properties::read() -- Either the PCM values for the start or "
- "end of this file was incorrect or the sample rate is zero.");
- }
- }
- else {
- debug("Speex::Properties::read() -- Could not find valid first and last Ogg pages.");
- }
-}
diff --git a/libs/taglib/taglib/ogg/speex/speexproperties.h b/libs/taglib/taglib/ogg/speex/speexproperties.h
deleted file mode 100644
index 3bab7974e7..0000000000
--- a/libs/taglib/taglib/ogg/speex/speexproperties.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- (original Vorbis implementation)
-***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_SPEEXPROPERTIES_H
-#define TAGLIB_SPEEXPROPERTIES_H
-
-#include <audioproperties.h>
-
-namespace TagLib {
-
- namespace Ogg {
-
- namespace Speex {
-
- class File;
-
- //! An implementation of audio property reading for Ogg Speex
-
- /*!
- * This reads the data from an Ogg Speex stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of Speex::Properties with the data read from the
- * Speex::File \a file.
- */
- Properties(File *file, ReadStyle style = Average);
-
- /*!
- * Destroys this Speex::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns the Speex version, currently "0" (as specified by the spec).
- */
- int speexVersion() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/vorbis/CMakeLists.txt b/libs/taglib/taglib/ogg/vorbis/CMakeLists.txt
deleted file mode 100644
index 7033e132e4..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES vorbisfile.h vorbisproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/ogg/vorbis/Makefile.am b/libs/taglib/taglib/ogg/vorbis/Makefile.am
deleted file mode 100644
index c7880fb133..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libvorbis.la
-
-libvorbis_la_SOURCES = vorbisfile.cpp vorbisproperties.cpp
-
-taglib_include_HEADERS = vorbisfile.h vorbisproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/ogg/vorbis/Makefile.in b/libs/taglib/taglib/ogg/vorbis/Makefile.in
deleted file mode 100644
index 39dd61fdc8..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/Makefile.in
+++ /dev/null
@@ -1,623 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/ogg/vorbis
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libvorbis_la_LIBADD =
-am_libvorbis_la_OBJECTS = vorbisfile.lo vorbisproperties.lo
-#>- libvorbis_la_OBJECTS = $(am_libvorbis_la_OBJECTS)
-#>+ 4
-libvorbis_la_final_OBJECTS = libvorbis_la.all_cpp.lo
-libvorbis_la_nofinal_OBJECTS = vorbisfile.lo vorbisproperties.lo
-@KDE_USE_FINAL_FALSE@libvorbis_la_OBJECTS = $(libvorbis_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libvorbis_la_OBJECTS = $(libvorbis_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libvorbis_la_SOURCES)
-DIST_SOURCES = $(libvorbis_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ogg \
- $(all_includes)
-
-noinst_LTLIBRARIES = libvorbis.la
-libvorbis_la_SOURCES = vorbisfile.cpp vorbisproperties.cpp
-taglib_include_HEADERS = vorbisfile.h vorbisproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/ogg/vorbis/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/ogg/vorbis/Makefile
-#>+ 12
- @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 taglib/ogg/vorbis/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/vorbis/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/vorbis/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libvorbis.la: $(libvorbis_la_OBJECTS) $(libvorbis_la_DEPENDENCIES)
- $(CXXLINK) $(libvorbis_la_OBJECTS) $(libvorbis_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vorbisfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vorbisproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/ogg/vorbis/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/ogg/vorbis/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/ogg/vorbis/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libvorbis_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/vorbisfile.cpp $(srcdir)/vorbisproperties.cpp
- @echo 'creating libvorbis_la.all_cpp.cpp ...'; \
- rm -f libvorbis_la.all_cpp.files libvorbis_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libvorbis_la.all_cpp.final; \
- for file in vorbisfile.cpp vorbisproperties.cpp ; do \
- echo "#include \"$$file\"" >> libvorbis_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libvorbis_la.all_cpp.final; \
- done; \
- cat libvorbis_la.all_cpp.final libvorbis_la.all_cpp.files > libvorbis_la.all_cpp.cpp; \
- rm -f libvorbis_la.all_cpp.final libvorbis_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libvorbis_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libvorbis_la_OBJECTS="$(libvorbis_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libvorbis_la_OBJECTS="$(libvorbis_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libvorbis_la_OBJECTS="$(libvorbis_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libvorbis_la_OBJECTS="$(libvorbis_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/ogg/vorbis/vorbisfile.cpp b/libs/taglib/taglib/ogg/vorbis/vorbisfile.cpp
deleted file mode 100644
index 114166a2c7..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/vorbisfile.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <bitset>
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include "vorbisfile.h"
-
-using namespace TagLib;
-
-class Vorbis::File::FilePrivate
-{
-public:
- FilePrivate() :
- comment(0),
- properties(0) {}
-
- ~FilePrivate()
- {
- delete comment;
- delete properties;
- }
-
- Ogg::XiphComment *comment;
- Properties *properties;
-};
-
-namespace TagLib {
- /*!
- * Vorbis headers can be found with one type ID byte and the string "vorbis" in
- * an Ogg stream. 0x03 indicates the comment header.
- */
- static const char vorbisCommentHeaderID[] = { 0x03, 'v', 'o', 'r', 'b', 'i', 's', 0 };
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Vorbis::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : Ogg::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-Vorbis::File::~File()
-{
- delete d;
-}
-
-Ogg::XiphComment *Vorbis::File::tag() const
-{
- return d->comment;
-}
-
-Vorbis::Properties *Vorbis::File::audioProperties() const
-{
- return d->properties;
-}
-
-bool Vorbis::File::save()
-{
- ByteVector v(vorbisCommentHeaderID);
-
- if(!d->comment)
- d->comment = new Ogg::XiphComment;
- v.append(d->comment->render());
-
- setPacket(1, v);
-
- return Ogg::File::save();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Vorbis::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- ByteVector commentHeaderData = packet(1);
-
- if(commentHeaderData.mid(0, 7) != vorbisCommentHeaderID) {
- debug("Vorbis::File::read() - Could not find the Vorbis comment header.");
- setValid(false);
- return;
- }
-
- d->comment = new Ogg::XiphComment(commentHeaderData.mid(7));
-
- if(readProperties)
- d->properties = new Properties(this, propertiesStyle);
-}
diff --git a/libs/taglib/taglib/ogg/vorbis/vorbisfile.h b/libs/taglib/taglib/ogg/vorbis/vorbisfile.h
deleted file mode 100644
index 9eb5ac6968..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/vorbisfile.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_VORBISFILE_H
-#define TAGLIB_VORBISFILE_H
-
-#include "taglib_export.h"
-#include "oggfile.h"
-#include "xiphcomment.h"
-
-#include "vorbisproperties.h"
-
-namespace TagLib {
-
-/*
- * This is just to make this appear to be in the Ogg namespace in the
- * documentation. The typedef below will make this work with the current code.
- * In the next BIC version of TagLib this will be really moved into the Ogg
- * namespace.
- */
-
-#ifdef DOXYGEN
- namespace Ogg {
-#endif
-
- //! A namespace containing classes for Vorbis metadata
-
- namespace Vorbis {
-
-
- //! An implementation of Ogg::File with Vorbis specific methods
-
- /*!
- * This is the central class in the Ogg Vorbis metadata processing collection
- * of classes. It's built upon Ogg::File which handles processing of the Ogg
- * logical bitstream and breaking it down into pages which are handled by
- * the codec implementations, in this case Vorbis specifically.
- */
-
- class TAGLIB_EXPORT File : public Ogg::File
- {
- public:
- /*!
- * Contructs a Vorbis file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the XiphComment for this file. XiphComment implements the tag
- * interface, so this serves as the reimplementation of
- * TagLib::File::tag().
- */
- virtual Ogg::XiphComment *tag() const;
-
- /*!
- * Returns the Vorbis::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- virtual bool save();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-
-/*
- * To keep compatibility with the current version put Vorbis in the Ogg namespace
- * only in the docs and provide a typedef to make it work. In the next BIC
- * version this will be removed and it will only exist in the Ogg namespace.
- */
-
-#ifdef DOXYGEN
- }
-#else
- namespace Ogg { namespace Vorbis { typedef TagLib::Vorbis::File File; } }
-#endif
-
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/vorbis/vorbisproperties.cpp b/libs/taglib/taglib/ogg/vorbis/vorbisproperties.cpp
deleted file mode 100644
index 492a0fdccb..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/vorbisproperties.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include <oggpageheader.h>
-
-#include "vorbisproperties.h"
-#include "vorbisfile.h"
-
-using namespace TagLib;
-
-class Vorbis::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(File *f, ReadStyle s) :
- file(f),
- style(s),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0),
- vorbisVersion(0),
- bitrateMaximum(0),
- bitrateNominal(0),
- bitrateMinimum(0) {}
-
- File *file;
- ReadStyle style;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
- int vorbisVersion;
- int bitrateMaximum;
- int bitrateNominal;
- int bitrateMinimum;
-};
-
-namespace TagLib {
- /*!
- * Vorbis headers can be found with one type ID byte and the string "vorbis" in
- * an Ogg stream. 0x01 indicates the setup header.
- */
- static const char vorbisSetupHeaderID[] = { 0x01, 'v', 'o', 'r', 'b', 'i', 's', 0 };
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Vorbis::Properties::Properties(File *file, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(file, style);
- read();
-}
-
-Vorbis::Properties::~Properties()
-{
- delete d;
-}
-
-int Vorbis::Properties::length() const
-{
- return d->length;
-}
-
-int Vorbis::Properties::bitrate() const
-{
- return int(float(d->bitrate) / float(1000) + 0.5);
-}
-
-int Vorbis::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int Vorbis::Properties::channels() const
-{
- return d->channels;
-}
-
-int Vorbis::Properties::vorbisVersion() const
-{
- return d->vorbisVersion;
-}
-
-int Vorbis::Properties::bitrateMaximum() const
-{
- return d->bitrateMaximum;
-}
-
-int Vorbis::Properties::bitrateNominal() const
-{
- return d->bitrateNominal;
-}
-
-int Vorbis::Properties::bitrateMinimum() const
-{
- return d->bitrateMinimum;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void Vorbis::Properties::read()
-{
- // Get the identification header from the Ogg implementation.
-
- ByteVector data = d->file->packet(0);
-
- int pos = 0;
-
- if(data.mid(pos, 7) != vorbisSetupHeaderID) {
- debug("Vorbis::Properties::read() -- invalid Vorbis identification header");
- return;
- }
-
- pos += 7;
-
- d->vorbisVersion = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- d->channels = uchar(data[pos]);
- pos += 1;
-
- d->sampleRate = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- d->bitrateMaximum = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- d->bitrateNominal = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- d->bitrateMinimum = data.mid(pos, 4).toUInt(false);
-
- // TODO: Later this should be only the "fast" mode.
- d->bitrate = d->bitrateNominal;
-
- // Find the length of the file. See http://wiki.xiph.org/VorbisStreamLength/
- // for my notes on the topic.
-
- const Ogg::PageHeader *first = d->file->firstPageHeader();
- const Ogg::PageHeader *last = d->file->lastPageHeader();
-
- if(first && last) {
- long long start = first->absoluteGranularPosition();
- long long end = last->absoluteGranularPosition();
-
- if(start >= 0 && end >= 0 && d->sampleRate > 0)
- d->length = (end - start) / (long long) d->sampleRate;
- else {
- debug("Vorbis::Properties::read() -- Either the PCM values for the start or "
- "end of this file was incorrect or the sample rate is zero.");
- }
- }
- else {
- debug("Vorbis::Properties::read() -- Could not find valid first and last Ogg pages.");
- }
-}
diff --git a/libs/taglib/taglib/ogg/vorbis/vorbisproperties.h b/libs/taglib/taglib/ogg/vorbis/vorbisproperties.h
deleted file mode 100644
index 80804a2dd1..0000000000
--- a/libs/taglib/taglib/ogg/vorbis/vorbisproperties.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_VORBISPROPERTIES_H
-#define TAGLIB_VORBISPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
-/*
- * This is just to make this appear to be in the Ogg namespace in the
- * documentation. The typedef below will make this work with the current code.
- * In the next BIC version of TagLib this will be really moved into the Ogg
- * namespace.
- */
-
-#ifdef DOXYGEN
- namespace Ogg {
-#endif
-
- namespace Vorbis {
-
- class File;
-
- //! An implementation of audio property reading for Ogg Vorbis
-
- /*!
- * This reads the data from an Ogg Vorbis stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of Vorbis::Properties with the data read from the
- * Vorbis::File \a file.
- */
- Properties(File *file, ReadStyle style = Average);
-
- /*!
- * Destroys this VorbisProperties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns the Vorbis version, currently "0" (as specified by the spec).
- */
- int vorbisVersion() const;
-
- /*!
- * Returns the maximum bitrate as read from the Vorbis identification
- * header.
- */
- int bitrateMaximum() const;
-
- /*!
- * Returns the nominal bitrate as read from the Vorbis identification
- * header.
- */
- int bitrateNominal() const;
-
- /*!
- * Returns the minimum bitrate as read from the Vorbis identification
- * header.
- */
- int bitrateMinimum() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-
-/*
- * To keep compatibility with the current version put Vorbis in the Ogg namespace
- * only in the docs and provide a typedef to make it work. In the next BIC
- * version this will be removed and it will only exist in the Ogg namespace.
- */
-
-#ifdef DOXYGEN
- }
-#else
- namespace Ogg { namespace Vorbis { typedef TagLib::AudioProperties AudioProperties; } }
-#endif
-
-}
-
-#endif
diff --git a/libs/taglib/taglib/ogg/xiphcomment.cpp b/libs/taglib/taglib/ogg/xiphcomment.cpp
deleted file mode 100644
index d7c5c5c4dd..0000000000
--- a/libs/taglib/taglib/ogg/xiphcomment.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tdebug.h>
-
-#include <xiphcomment.h>
-
-using namespace TagLib;
-
-class Ogg::XiphComment::XiphCommentPrivate
-{
-public:
- FieldListMap fieldListMap;
- String vendorID;
- String commentField;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-Ogg::XiphComment::XiphComment() : TagLib::Tag()
-{
- d = new XiphCommentPrivate;
-}
-
-Ogg::XiphComment::XiphComment(const ByteVector &data) : TagLib::Tag()
-{
- d = new XiphCommentPrivate;
- parse(data);
-}
-
-Ogg::XiphComment::~XiphComment()
-{
- delete d;
-}
-
-String Ogg::XiphComment::title() const
-{
- if(d->fieldListMap["TITLE"].isEmpty())
- return String::null;
- return d->fieldListMap["TITLE"].front();
-}
-
-String Ogg::XiphComment::artist() const
-{
- if(d->fieldListMap["ARTIST"].isEmpty())
- return String::null;
- return d->fieldListMap["ARTIST"].front();
-}
-
-String Ogg::XiphComment::album() const
-{
- if(d->fieldListMap["ALBUM"].isEmpty())
- return String::null;
- return d->fieldListMap["ALBUM"].front();
-}
-
-String Ogg::XiphComment::comment() const
-{
- if(!d->fieldListMap["DESCRIPTION"].isEmpty()) {
- d->commentField = "DESCRIPTION";
- return d->fieldListMap["DESCRIPTION"].front();
- }
-
- if(!d->fieldListMap["COMMENT"].isEmpty()) {
- d->commentField = "COMMENT";
- return d->fieldListMap["COMMENT"].front();
- }
-
- return String::null;
-}
-
-String Ogg::XiphComment::genre() const
-{
- if(d->fieldListMap["GENRE"].isEmpty())
- return String::null;
- return d->fieldListMap["GENRE"].front();
-}
-
-TagLib::uint Ogg::XiphComment::year() const
-{
- if(d->fieldListMap["DATE"].isEmpty())
- return 0;
- return d->fieldListMap["DATE"].front().toInt();
-}
-
-TagLib::uint Ogg::XiphComment::track() const
-{
- if(d->fieldListMap["TRACKNUMBER"].isEmpty())
- return 0;
- return d->fieldListMap["TRACKNUMBER"].front().toInt();
-}
-
-void Ogg::XiphComment::setTitle(const String &s)
-{
- addField("TITLE", s);
-}
-
-void Ogg::XiphComment::setArtist(const String &s)
-{
- addField("ARTIST", s);
-}
-
-void Ogg::XiphComment::setAlbum(const String &s)
-{
- addField("ALBUM", s);
-}
-
-void Ogg::XiphComment::setComment(const String &s)
-{
- addField(d->commentField.isEmpty() ? "DESCRIPTION" : d->commentField, s);
-}
-
-void Ogg::XiphComment::setGenre(const String &s)
-{
- addField("GENRE", s);
-}
-
-void Ogg::XiphComment::setYear(uint i)
-{
- if(i == 0)
- removeField("DATE");
- else
- addField("DATE", String::number(i));
-}
-
-void Ogg::XiphComment::setTrack(uint i)
-{
- if(i == 0)
- removeField("TRACKNUMBER");
- else
- addField("TRACKNUMBER", String::number(i));
-}
-
-bool Ogg::XiphComment::isEmpty() const
-{
- FieldListMap::ConstIterator it = d->fieldListMap.begin();
- for(; it != d->fieldListMap.end(); ++it)
- if(!(*it).second.isEmpty())
- return false;
-
- return true;
-}
-
-TagLib::uint Ogg::XiphComment::fieldCount() const
-{
- uint count = 0;
-
- FieldListMap::ConstIterator it = d->fieldListMap.begin();
- for(; it != d->fieldListMap.end(); ++it)
- count += (*it).second.size();
-
- return count;
-}
-
-const Ogg::FieldListMap &Ogg::XiphComment::fieldListMap() const
-{
- return d->fieldListMap;
-}
-
-String Ogg::XiphComment::vendorID() const
-{
- return d->vendorID;
-}
-
-void Ogg::XiphComment::addField(const String &key, const String &value, bool replace)
-{
- if(replace)
- removeField(key.upper());
-
- if(!key.isEmpty() && !value.isEmpty())
- d->fieldListMap[key.upper()].append(value);
-}
-
-void Ogg::XiphComment::removeField(const String &key, const String &value)
-{
- if(!value.isNull()) {
- StringList::Iterator it = d->fieldListMap[key].begin();
- while(it != d->fieldListMap[key].end()) {
- if(value == *it)
- it = d->fieldListMap[key].erase(it);
- else
- it++;
- }
- }
- else
- d->fieldListMap.erase(key);
-}
-
-bool Ogg::XiphComment::contains(const String &key) const
-{
- return d->fieldListMap.contains(key) && !d->fieldListMap[key].isEmpty();
-}
-
-ByteVector Ogg::XiphComment::render() const
-{
- return render(true);
-}
-
-ByteVector Ogg::XiphComment::render(bool addFramingBit) const
-{
- ByteVector data;
-
- // Add the vendor ID length and the vendor ID. It's important to use the
- // length of the data(String::UTF8) rather than the length of the the string
- // since this is UTF8 text and there may be more characters in the data than
- // in the UTF16 string.
-
- ByteVector vendorData = d->vendorID.data(String::UTF8);
-
- data.append(ByteVector::fromUInt(vendorData.size(), false));
- data.append(vendorData);
-
- // Add the number of fields.
-
- data.append(ByteVector::fromUInt(fieldCount(), false));
-
- // Iterate over the the field lists. Our iterator returns a
- // std::pair<String, StringList> where the first String is the field name and
- // the StringList is the values associated with that field.
-
- FieldListMap::ConstIterator it = d->fieldListMap.begin();
- for(; it != d->fieldListMap.end(); ++it) {
-
- // And now iterate over the values of the current list.
-
- String fieldName = (*it).first;
- StringList values = (*it).second;
-
- StringList::ConstIterator valuesIt = values.begin();
- for(; valuesIt != values.end(); ++valuesIt) {
- ByteVector fieldData = fieldName.data(String::UTF8);
- fieldData.append('=');
- fieldData.append((*valuesIt).data(String::UTF8));
-
- data.append(ByteVector::fromUInt(fieldData.size(), false));
- data.append(fieldData);
- }
- }
-
- // Append the "framing bit".
-
- if(addFramingBit)
- data.append(char(1));
-
- return data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void Ogg::XiphComment::parse(const ByteVector &data)
-{
- // The first thing in the comment data is the vendor ID length, followed by a
- // UTF8 string with the vendor ID.
-
- int pos = 0;
-
- int vendorLength = data.mid(0, 4).toUInt(false);
- pos += 4;
-
- d->vendorID = String(data.mid(pos, vendorLength), String::UTF8);
- pos += vendorLength;
-
- // Next the number of fields in the comment vector.
-
- int commentFields = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- for(int i = 0; i < commentFields; i++) {
-
- // Each comment field is in the format "KEY=value" in a UTF8 string and has
- // 4 bytes before the text starts that gives the length.
-
- int commentLength = data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- String comment = String(data.mid(pos, commentLength), String::UTF8);
- pos += commentLength;
-
- int commentSeparatorPosition = comment.find("=");
-
- String key = comment.substr(0, commentSeparatorPosition);
- String value = comment.substr(commentSeparatorPosition + 1);
-
- addField(key, value, false);
- }
-}
diff --git a/libs/taglib/taglib/ogg/xiphcomment.h b/libs/taglib/taglib/ogg/xiphcomment.h
deleted file mode 100644
index 818b3f41bc..0000000000
--- a/libs/taglib/taglib/ogg/xiphcomment.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_VORBISCOMMENT_H
-#define TAGLIB_VORBISCOMMENT_H
-
-#include "tag.h"
-#include "tlist.h"
-#include "tmap.h"
-#include "tstring.h"
-#include "tstringlist.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace Ogg {
-
- /*!
- * A mapping between a list of field names, or keys, and a list of values
- * associated with that field.
- *
- * \see XiphComment::fieldListMap()
- */
- typedef Map<String, StringList> FieldListMap;
-
- //! Ogg Vorbis comment implementation
-
- /*!
- * This class is an implementation of the Ogg Vorbis comment specification,
- * to be found in section 5 of the Ogg Vorbis specification. Because this
- * format is also used in other (currently unsupported) Xiph.org formats, it
- * has been made part of a generic implementation rather than being limited
- * to strictly Vorbis.
- *
- * Vorbis comments are a simple vector of keys and values, called fields.
- * Multiple values for a given key are supported.
- *
- * \see fieldListMap()
- */
-
- class TAGLIB_EXPORT XiphComment : public TagLib::Tag
- {
- public:
- /*!
- * Constructs an empty Vorbis comment.
- */
- XiphComment();
-
- /*!
- * Constructs a Vorbis comment from \a data.
- */
- XiphComment(const ByteVector &data);
-
- /*!
- * Destroys this instance of the XiphComment.
- */
- virtual ~XiphComment();
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(uint i);
- virtual void setTrack(uint i);
-
- virtual bool isEmpty() const;
-
- /*!
- * Returns the number of fields present in the comment.
- */
- uint fieldCount() const;
-
- /*!
- * Returns a reference to the map of field lists. Because Xiph comments
- * support multiple fields with the same key, a pure Map would not work.
- * As such this is a Map of string lists, keyed on the comment field name.
- *
- * The standard set of Xiph/Vorbis fields (which may or may not be
- * contained in any specific comment) is:
- *
- * <ul>
- * <li>TITLE</li>
- * <li>VERSION</li>
- * <li>ALBUM</li>
- * <li>ARTIST</li>
- * <li>PERFORMER</li>
- * <li>COPYRIGHT</li>
- * <li>ORGANIZATION</li>
- * <li>DESCRIPTION</li>
- * <li>GENRE</li>
- * <li>DATE</li>
- * <li>LOCATION</li>
- * <li>CONTACT</li>
- * <li>ISRC</li>
- * </ul>
- *
- * For a more detailed description of these fields, please see the Ogg
- * Vorbis specification, section 5.2.2.1.
- *
- * \note The Ogg Vorbis comment specification does allow these key values
- * to be either upper or lower case. However, it is conventional for them
- * to be upper case. As such, TagLib, when parsing a Xiph/Vorbis comment,
- * converts all fields to uppercase. When you are using this data
- * structure, you will need to specify the field name in upper case.
- *
- * \warning You should not modify this data structure directly, instead
- * use addField() and removeField().
- */
- const FieldListMap &fieldListMap() const;
-
- /*!
- * Returns the vendor ID of the Ogg Vorbis encoder. libvorbis 1.0 as the
- * most common case always returns "Xiph.Org libVorbis I 20020717".
- */
- String vendorID() const;
-
- /*!
- * Add the field specified by \a key with the data \a value. If \a replace
- * is true, then all of the other fields with the same key will be removed
- * first.
- *
- * If the field value is empty, the field will be removed.
- */
- void addField(const String &key, const String &value, bool replace = true);
-
- /*!
- * Remove the field specified by \a key with the data \a value. If
- * \a value is null, all of the fields with the given key will be removed.
- */
- void removeField(const String &key, const String &value = String::null);
-
- /*!
- * Returns true if the field is contained within the comment.
- *
- * \note This is safer than checking for membership in the FieldListMap.
- */
- bool contains(const String &key) const;
-
- /*!
- * Renders the comment to a ByteVector suitable for inserting into a file.
- */
- ByteVector render() const; // BIC: remove and merge with below
-
- /*!
- * Renders the comment to a ByteVector suitable for inserting into a file.
- *
- * If \a addFramingBit is true the standard Vorbis comment framing bit will
- * be appended. However some formats (notably FLAC) do not work with this
- * in place.
- */
- ByteVector render(bool addFramingBit) const;
-
- protected:
- /*!
- * Reads the tag from the file specified in the constructor and fills the
- * FieldListMap.
- */
- void parse(const ByteVector &data);
-
- private:
- XiphComment(const XiphComment &);
- XiphComment &operator=(const XiphComment &);
-
- class XiphCommentPrivate;
- XiphCommentPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/tag.cpp b/libs/taglib/taglib/tag.cpp
deleted file mode 100644
index 2917540a3e..0000000000
--- a/libs/taglib/taglib/tag.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tag.h"
-
-using namespace TagLib;
-
-class Tag::TagPrivate
-{
-
-};
-
-Tag::Tag()
-{
-
-}
-
-Tag::~Tag()
-{
-
-}
-
-bool Tag::isEmpty() const
-{
- return (title().isEmpty() &&
- artist().isEmpty() &&
- album().isEmpty() &&
- comment().isEmpty() &&
- genre().isEmpty() &&
- year() == 0 &&
- track() == 0);
-}
-
-void Tag::duplicate(const Tag *source, Tag *target, bool overwrite) // static
-{
- if(overwrite) {
- target->setTitle(source->title());
- target->setArtist(source->artist());
- target->setAlbum(source->album());
- target->setComment(source->comment());
- target->setGenre(source->genre());
- target->setYear(source->year());
- target->setTrack(source->track());
- }
- else {
- if(target->title().isEmpty())
- target->setTitle(source->title());
- if(target->artist().isEmpty())
- target->setArtist(source->artist());
- if(target->album().isEmpty())
- target->setAlbum(source->album());
- if(target->comment().isEmpty())
- target->setComment(source->comment());
- if(target->genre().isEmpty())
- target->setGenre(source->genre());
- if(target->year() <= 0)
- target->setYear(source->year());
- if(target->track() <= 0)
- target->setTrack(source->track());
- }
-}
diff --git a/libs/taglib/taglib/tag.h b/libs/taglib/taglib/tag.h
deleted file mode 100644
index 6404a709cf..0000000000
--- a/libs/taglib/taglib/tag.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_TAG_H
-#define TAGLIB_TAG_H
-
-#include "taglib_export.h"
-#include "tstring.h"
-
-namespace TagLib {
-
- //! A simple, generic interface to common audio meta data fields
-
- /*!
- * This is an attempt to abstract away the difference in the meta data formats
- * of various audio codecs and tagging schemes. As such it is generally a
- * subset of what is available in the specific formats but should be suitable
- * for most applications. This is meant to compliment the generic APIs found
- * in TagLib::AudioProperties, TagLib::File and TagLib::FileRef.
- */
-
- class TAGLIB_EXPORT Tag
- {
- public:
-
- /*!
- * Detroys this Tag instance.
- */
- virtual ~Tag();
-
- /*!
- * Returns the track name; if no track name is present in the tag
- * String::null will be returned.
- */
- virtual String title() const = 0;
-
- /*!
- * Returns the artist name; if no artist name is present in the tag
- * String::null will be returned.
- */
- virtual String artist() const = 0;
-
- /*!
- * Returns the album name; if no album name is present in the tag
- * String::null will be returned.
- */
- virtual String album() const = 0;
-
- /*!
- * Returns the track comment; if no comment is present in the tag
- * String::null will be returned.
- */
- virtual String comment() const = 0;
-
- /*!
- * Returns the genre name; if no genre is present in the tag String::null
- * will be returned.
- */
- virtual String genre() const = 0;
-
- /*!
- * Returns the year; if there is no year set, this will return 0.
- */
- virtual uint year() const = 0;
-
- /*!
- * Returns the track number; if there is no track number set, this will
- * return 0.
- */
- virtual uint track() const = 0;
-
- /*!
- * Sets the title to \a s. If \a s is String::null then this value will be
- * cleared.
- */
- virtual void setTitle(const String &s) = 0;
-
- /*!
- * Sets the artist to \a s. If \a s is String::null then this value will be
- * cleared.
- */
- virtual void setArtist(const String &s) = 0;
-
- /*!
- * Sets the album to \a s. If \a s is String::null then this value will be
- * cleared.
- */
- virtual void setAlbum(const String &s) = 0;
-
- /*!
- * Sets the comment to \a s. If \a s is String::null then this value will be
- * cleared.
- */
- virtual void setComment(const String &s) = 0;
-
- /*!
- * Sets the genre to \a s. If \a s is String::null then this value will be
- * cleared. For tag formats that use a fixed set of genres, the appropriate
- * value will be selected based on a string comparison. A list of available
- * genres for those formats should be available in that type's
- * implementation.
- */
- virtual void setGenre(const String &s) = 0;
-
- /*!
- * Sets the year to \a i. If \a s is 0 then this value will be cleared.
- */
- virtual void setYear(uint i) = 0;
-
- /*!
- * Sets the track to \a i. If \a s is 0 then this value will be cleared.
- */
- virtual void setTrack(uint i) = 0;
-
- /*!
- * Returns true if the tag does not contain any data. This should be
- * reimplemented in subclasses that provide more than the basic tagging
- * abilities in this class.
- */
- virtual bool isEmpty() const;
-
- /*!
- * Copies the generic data from one tag to another.
- *
- * \note This will no affect any of the lower level details of the tag. For
- * instance if any of the tag type specific data (maybe a URL for a band) is
- * set, this will not modify or copy that. This just copies using the API
- * in this class.
- *
- * If \a overwrite is true then the values will be unconditionally copied.
- * If false only empty values will be overwritten.
- */
- static void duplicate(const Tag *source, Tag *target, bool overwrite = true);
-
- protected:
- /*!
- * Construct a Tag. This is protected since tags should only be instantiated
- * through subclasses.
- */
- Tag();
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
-}
-
-#endif
diff --git a/libs/taglib/taglib/taglib.pro b/libs/taglib/taglib/taglib.pro
deleted file mode 100644
index 66bf4d6cde..0000000000
--- a/libs/taglib/taglib/taglib.pro
+++ /dev/null
@@ -1,218 +0,0 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Fri Feb 1 15:35:13 2008
-######################################################################
-
-TEMPLATE = lib
-CONFIG += lib_bundle
-CONFIG += x86 ppc
-CONFIG -= qt
-DEFINES += HAVE_ZLIB=1
-LIBS += -lz
-TARGET = TagLib
-VERSION = 1.5
-DEPENDPATH += . \
- ape \
- flac \
- mpc \
- mpeg \
- ogg \
- ogg/speex \
- toolkit \
- trueaudio \
- wavpack \
- mpeg/id3v1 \
- mpeg/id3v2 \
- ogg/flac \
- ogg/vorbis \
- mpeg/id3v2/frames
-INCLUDEPATH += . \
- toolkit \
- mpeg \
- ogg/vorbis \
- ogg \
- flac \
- ogg/flac \
- mpc \
- wavpack \
- ogg/speex \
- trueaudio \
- ape \
- mpeg/id3v2 \
- mpeg/id3v1 \
- mpeg/id3v2/frames
-
-# Input
-HEADERS += audioproperties.h \
- fileref.h \
- tag.h \
- taglib_export.h \
- tagunion.h \
- ape/apefooter.h \
- ape/apeitem.h \
- ape/apetag.h \
- flac/flacfile.h \
- flac/flacproperties.h \
- mpc/mpcfile.h \
- mpc/mpcproperties.h \
- mpeg/mpegfile.h \
- mpeg/mpegheader.h \
- mpeg/mpegproperties.h \
- mpeg/xingheader.h \
- ogg/oggfile.h \
- ogg/oggpage.h \
- ogg/oggpageheader.h \
- ogg/xiphcomment.h \
- ogg/speex/speexfile.h \
- ogg/speex/speexproperties.h \
- toolkit/taglib.h \
- toolkit/tbytevector.h \
- toolkit/tbytevectorlist.h \
- toolkit/tdebug.h \
- toolkit/tfile.h \
- toolkit/tlist.h \
- toolkit/tmap.h \
- toolkit/tstring.h \
- toolkit/tstringlist.h \
- toolkit/unicode.h \
- trueaudio/trueaudiofile.h \
- trueaudio/trueaudioproperties.h \
- wavpack/wavpackfile.h \
- wavpack/wavpackproperties.h \
- mpeg/id3v1/id3v1genres.h \
- mpeg/id3v1/id3v1tag.h \
- mpeg/id3v2/id3v2extendedheader.h \
- mpeg/id3v2/id3v2footer.h \
- mpeg/id3v2/id3v2frame.h \
- mpeg/id3v2/id3v2framefactory.h \
- mpeg/id3v2/id3v2header.h \
- mpeg/id3v2/id3v2synchdata.h \
- mpeg/id3v2/id3v2tag.h \
- ogg/flac/oggflacfile.h \
- ogg/vorbis/vorbisfile.h \
- ogg/vorbis/vorbisproperties.h \
- mpeg/id3v2/frames/attachedpictureframe.h \
- mpeg/id3v2/frames/commentsframe.h \
- mpeg/id3v2/frames/generalencapsulatedobjectframe.h \
- mpeg/id3v2/frames/relativevolumeframe.h \
- mpeg/id3v2/frames/textidentificationframe.h \
- mpeg/id3v2/frames/uniquefileidentifierframe.h \
- mpeg/id3v2/frames/unknownframe.h \
- mpeg/id3v2/frames/unsynchronizedlyricsframe.h \
- mpeg/id3v2/frames/urllinkframe.h \
- toolkit/tlist.tcc \
- toolkit/tmap.tcc
-SOURCES += audioproperties.cpp \
- fileref.cpp \
- tag.cpp \
- tagunion.cpp \
- ape/apefooter.cpp \
- ape/apeitem.cpp \
- ape/apetag.cpp \
- flac/flacfile.cpp \
- flac/flacproperties.cpp \
- mpc/mpcfile.cpp \
- mpc/mpcproperties.cpp \
- mpeg/mpegfile.cpp \
- mpeg/mpegheader.cpp \
- mpeg/mpegproperties.cpp \
- mpeg/xingheader.cpp \
- ogg/oggfile.cpp \
- ogg/oggpage.cpp \
- ogg/oggpageheader.cpp \
- ogg/xiphcomment.cpp \
- ogg/speex/speexfile.cpp \
- ogg/speex/speexproperties.cpp \
- toolkit/tbytevector.cpp \
- toolkit/tbytevectorlist.cpp \
- toolkit/tdebug.cpp \
- toolkit/tfile.cpp \
- toolkit/tstring.cpp \
- toolkit/tstringlist.cpp \
- toolkit/unicode.cpp \
- trueaudio/trueaudiofile.cpp \
- trueaudio/trueaudioproperties.cpp \
- wavpack/wavpackfile.cpp \
- wavpack/wavpackproperties.cpp \
- mpeg/id3v1/id3v1genres.cpp \
- mpeg/id3v1/id3v1tag.cpp \
- mpeg/id3v2/id3v2extendedheader.cpp \
- mpeg/id3v2/id3v2footer.cpp \
- mpeg/id3v2/id3v2frame.cpp \
- mpeg/id3v2/id3v2framefactory.cpp \
- mpeg/id3v2/id3v2header.cpp \
- mpeg/id3v2/id3v2synchdata.cpp \
- mpeg/id3v2/id3v2tag.cpp \
- ogg/flac/oggflacfile.cpp \
- ogg/vorbis/vorbisfile.cpp \
- ogg/vorbis/vorbisproperties.cpp \
- mpeg/id3v2/frames/attachedpictureframe.cpp \
- mpeg/id3v2/frames/commentsframe.cpp \
- mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp \
- mpeg/id3v2/frames/relativevolumeframe.cpp \
- mpeg/id3v2/frames/textidentificationframe.cpp \
- mpeg/id3v2/frames/uniquefileidentifierframe.cpp \
- mpeg/id3v2/frames/unknownframe.cpp \
- mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp \
- mpeg/id3v2/frames/urllinkframe.cpp
-
- FRAMEWORK_HEADERS.version = Versions
- FRAMEWORK_HEADERS.files = \
- audioproperties.h \
- fileref.h \
- tag.h \
- taglib_export.h \
- ape/apefooter.h \
- ape/apeitem.h \
- ape/apetag.h \
- flac/flacfile.h \
- flac/flacproperties.h \
- mpc/mpcfile.h \
- mpc/mpcproperties.h \
- mpeg/mpegfile.h \
- mpeg/mpegheader.h \
- mpeg/mpegproperties.h \
- mpeg/xingheader.h \
- ogg/oggfile.h \
- ogg/oggpage.h \
- ogg/oggpageheader.h \
- ogg/xiphcomment.h \
- ogg/speex/speexfile.h \
- ogg/speex/speexproperties.h \
- toolkit/taglib.h \
- toolkit/tbytevector.h \
- toolkit/tbytevectorlist.h \
- toolkit/tfile.h \
- toolkit/tlist.h \
- toolkit/tmap.h \
- toolkit/tstring.h \
- toolkit/tstringlist.h \
- toolkit/unicode.h \
- trueaudio/trueaudiofile.h \
- trueaudio/trueaudioproperties.h \
- wavpack/wavpackfile.h \
- wavpack/wavpackproperties.h \
- mpeg/id3v1/id3v1genres.h \
- mpeg/id3v1/id3v1tag.h \
- mpeg/id3v2/id3v2extendedheader.h \
- mpeg/id3v2/id3v2footer.h \
- mpeg/id3v2/id3v2frame.h \
- mpeg/id3v2/id3v2framefactory.h \
- mpeg/id3v2/id3v2header.h \
- mpeg/id3v2/id3v2synchdata.h \
- mpeg/id3v2/id3v2tag.h \
- ogg/flac/oggflacfile.h \
- ogg/vorbis/vorbisfile.h \
- ogg/vorbis/vorbisproperties.h \
- mpeg/id3v2/frames/attachedpictureframe.h \
- mpeg/id3v2/frames/commentsframe.h \
- mpeg/id3v2/frames/generalencapsulatedobjectframe.h \
- mpeg/id3v2/frames/relativevolumeframe.h \
- mpeg/id3v2/frames/textidentificationframe.h \
- mpeg/id3v2/frames/uniquefileidentifierframe.h \
- mpeg/id3v2/frames/unknownframe.h \
- mpeg/id3v2/frames/unsynchronizedlyricsframe.h \
- mpeg/id3v2/frames/urllinkframe.h \
- toolkit/tlist.tcc \
- toolkit/tmap.tcc
- FRAMEWORK_HEADERS.path = Headers
- QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
diff --git a/libs/taglib/taglib/taglib_export.h b/libs/taglib/taglib/taglib_export.h
deleted file mode 100644
index d14d69f0f1..0000000000
--- a/libs/taglib/taglib/taglib_export.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_EXPORT_H
-#define TAGLIB_EXPORT_H
-
-#if defined(_WIN32) || defined(_WIN64)
-#ifdef MAKE_TAGLIB_LIB
-#define TAGLIB_EXPORT __declspec(dllexport)
-#else
-#define TAGLIB_EXPORT __declspec(dllimport)
-#endif
-#else
-#define TAGLIB_EXPORT
-#endif
-
-#endif
diff --git a/libs/taglib/taglib/tagunion.cpp b/libs/taglib/taglib/tagunion.cpp
deleted file mode 100644
index 08cc140833..0000000000
--- a/libs/taglib/taglib/tagunion.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tagunion.h"
-
-using namespace TagLib;
-
-#define stringUnion(method) \
- if(tag(0) && !tag(0)->method().isEmpty()) \
- return tag(0)->method(); \
- if(tag(1) && !tag(1)->method().isEmpty()) \
- return tag(1)->method(); \
- if(tag(2) && !tag(2)->method().isEmpty()) \
- return tag(2)->method(); \
- return String::null \
-
-#define numberUnion(method) \
- if(tag(0) && tag(0)->method() > 0) \
- return tag(0)->method(); \
- if(tag(1) && tag(1)->method() > 0) \
- return tag(1)->method(); \
- if(tag(2) && tag(2)->method() > 0) \
- return tag(2)->method(); \
- return 0
-
-#define setUnion(method, value) \
- if(tag(0)) \
- tag(0)->set##method(value); \
- if(tag(1)) \
- tag(1)->set##method(value); \
- if(tag(2)) \
- tag(2)->set##method(value); \
-
-class TagUnion::TagUnionPrivate
-{
-public:
- TagUnionPrivate() : tags(3, static_cast<Tag *>(0))
- {
-
- }
-
- ~TagUnionPrivate()
- {
- delete tags[0];
- delete tags[1];
- delete tags[2];
- }
-
- std::vector<Tag *> tags;
-};
-
-TagUnion::TagUnion(Tag *first, Tag *second, Tag *third)
-{
- d = new TagUnionPrivate;
-
- d->tags[0] = first;
- d->tags[1] = second;
- d->tags[2] = third;
-}
-
-TagUnion::~TagUnion()
-{
- delete d;
-}
-
-Tag *TagUnion::operator[](int index) const
-{
- return tag(index);
-}
-
-Tag *TagUnion::tag(int index) const
-{
- return d->tags[index];
-}
-
-void TagUnion::set(int index, Tag *tag)
-{
- delete d->tags[index];
- d->tags[index] = tag;
-}
-
-String TagUnion::title() const
-{
- stringUnion(title);
-}
-
-String TagUnion::artist() const
-{
- stringUnion(artist);
-}
-
-String TagUnion::album() const
-{
- stringUnion(album);
-}
-
-String TagUnion::comment() const
-{
- stringUnion(comment);
-}
-
-String TagUnion::genre() const
-{
- stringUnion(genre);
-}
-
-TagLib::uint TagUnion::year() const
-{
- numberUnion(year);
-}
-
-TagLib::uint TagUnion::track() const
-{
- numberUnion(track);
-}
-
-void TagUnion::setTitle(const String &s)
-{
- setUnion(Title, s);
-}
-
-void TagUnion::setArtist(const String &s)
-{
- setUnion(Artist, s);
-}
-
-void TagUnion::setAlbum(const String &s)
-{
- setUnion(Album, s);
-}
-
-void TagUnion::setComment(const String &s)
-{
- setUnion(Comment, s);
-}
-
-void TagUnion::setGenre(const String &s)
-{
- setUnion(Genre, s);
-}
-
-void TagUnion::setYear(uint i)
-{
- setUnion(Year, i);
-}
-
-void TagUnion::setTrack(uint i)
-{
- setUnion(Track, i);
-}
-
-bool TagUnion::isEmpty() const
-{
- if(d->tags[0] && !d->tags[0]->isEmpty())
- return false;
- if(d->tags[1] && !d->tags[1]->isEmpty())
- return false;
- if(d->tags[2] && !d->tags[2]->isEmpty())
- return false;
-
- return true;
-}
-
diff --git a/libs/taglib/taglib/tagunion.h b/libs/taglib/taglib/tagunion.h
deleted file mode 100644
index 76d407ce32..0000000000
--- a/libs/taglib/taglib/tagunion.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_TAGUNION_H
-#define TAGLIB_TAGUNION_H
-
-#include "tag.h"
-
-#ifndef DO_NOT_DOCUMENT
-
-namespace TagLib {
-
- /*!
- * \internal
- */
-
- class TagUnion : public Tag
- {
- public:
-
- enum AccessType { Read, Write };
-
- /*!
- * Creates a TagLib::Tag that is the union of \a first, \a second, and
- * \a third. The TagUnion takes ownership of these tags and will handle
- * their deletion.
- */
- TagUnion(Tag *first = 0, Tag *second = 0, Tag *third = 0);
-
- virtual ~TagUnion();
-
- Tag *operator[](int index) const;
- Tag *tag(int index) const;
-
- void set(int index, Tag *tag);
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(uint i);
- virtual void setTrack(uint i);
- virtual bool isEmpty() const;
-
- template <class T> T *access(int index, bool create)
- {
- if(!create || tag(index))
- return static_cast<T *>(tag(index));
-
- set(index, new T);
- return static_cast<T *>(tag(index));
- }
-
- private:
- TagUnion(const Tag &);
- TagUnion &operator=(const Tag &);
-
- class TagUnionPrivate;
- TagUnionPrivate *d;
- };
-}
-
-#endif
-#endif
diff --git a/libs/taglib/taglib/toolkit/CMakeLists.txt b/libs/taglib/taglib/toolkit/CMakeLists.txt
deleted file mode 100644
index 2e39d31ff6..0000000000
--- a/libs/taglib/taglib/toolkit/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES taglib.h tstring.h tlist.h tlist.tcc tstringlist.h tbytevector.h tbytevectorlist.h tfile.h tmap.h tmap.tcc DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/toolkit/Makefile.am b/libs/taglib/taglib/toolkit/Makefile.am
deleted file mode 100644
index cabe1a2c04..0000000000
--- a/libs/taglib/taglib/toolkit/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- $(all_includes)
-
-noinst_LTLIBRARIES = libtoolkit.la
-
-libtoolkit_la_SOURCES = \
- tstring.cpp tstringlist.cpp tbytevector.cpp \
- tbytevectorlist.cpp tfile.cpp tdebug.cpp unicode.cpp
-
-taglib_include_HEADERS = \
- taglib.h tstring.h tlist.h tlist.tcc tstringlist.h \
- tbytevector.h tbytevectorlist.h tfile.h \
- tmap.h tmap.tcc
-
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/toolkit/Makefile.in b/libs/taglib/taglib/toolkit/Makefile.in
deleted file mode 100644
index 3175cbc3b7..0000000000
--- a/libs/taglib/taglib/toolkit/Makefile.in
+++ /dev/null
@@ -1,635 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/toolkit
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libtoolkit_la_LIBADD =
-am_libtoolkit_la_OBJECTS = tstring.lo tstringlist.lo tbytevector.lo \
- tbytevectorlist.lo tfile.lo tdebug.lo unicode.lo
-#>- libtoolkit_la_OBJECTS = $(am_libtoolkit_la_OBJECTS)
-#>+ 5
-libtoolkit_la_final_OBJECTS = libtoolkit_la.all_cpp.lo
-libtoolkit_la_nofinal_OBJECTS = tstring.lo tstringlist.lo tbytevector.lo \
- tbytevectorlist.lo tfile.lo tdebug.lo unicode.lo
-@KDE_USE_FINAL_FALSE@libtoolkit_la_OBJECTS = $(libtoolkit_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libtoolkit_la_OBJECTS = $(libtoolkit_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libtoolkit_la_SOURCES)
-DIST_SOURCES = $(libtoolkit_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- $(all_includes)
-
-noinst_LTLIBRARIES = libtoolkit.la
-libtoolkit_la_SOURCES = \
- tstring.cpp tstringlist.cpp tbytevector.cpp \
- tbytevectorlist.cpp tfile.cpp tdebug.cpp unicode.cpp
-
-taglib_include_HEADERS = \
- taglib.h tstring.h tlist.h tlist.tcc tstringlist.h \
- tbytevector.h tbytevectorlist.h tfile.h \
- tmap.h tmap.tcc
-
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/toolkit/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/toolkit/Makefile
-#>+ 12
- @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 taglib/toolkit/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/toolkit/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/toolkit/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libtoolkit.la: $(libtoolkit_la_OBJECTS) $(libtoolkit_la_DEPENDENCIES)
- $(CXXLINK) $(libtoolkit_la_OBJECTS) $(libtoolkit_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tbytevector.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tbytevectorlist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tdebug.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstring.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstringlist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicode.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in unicode.h tdebug.h CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/toolkit/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/toolkit/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/toolkit/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libtoolkit_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/tstring.cpp $(srcdir)/tstringlist.cpp $(srcdir)/tbytevector.cpp $(srcdir)/tbytevectorlist.cpp $(srcdir)/tfile.cpp $(srcdir)/tdebug.cpp $(srcdir)/unicode.cpp
- @echo 'creating libtoolkit_la.all_cpp.cpp ...'; \
- rm -f libtoolkit_la.all_cpp.files libtoolkit_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libtoolkit_la.all_cpp.final; \
- for file in tstring.cpp tstringlist.cpp tbytevector.cpp tbytevectorlist.cpp tfile.cpp tdebug.cpp unicode.cpp ; do \
- echo "#include \"$$file\"" >> libtoolkit_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libtoolkit_la.all_cpp.final; \
- done; \
- cat libtoolkit_la.all_cpp.final libtoolkit_la.all_cpp.files > libtoolkit_la.all_cpp.cpp; \
- rm -f libtoolkit_la.all_cpp.final libtoolkit_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libtoolkit_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libtoolkit_la_OBJECTS="$(libtoolkit_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libtoolkit_la_OBJECTS="$(libtoolkit_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libtoolkit_la_OBJECTS="$(libtoolkit_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libtoolkit_la_OBJECTS="$(libtoolkit_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/toolkit/taglib.h b/libs/taglib/taglib/toolkit/taglib.h
deleted file mode 100644
index 3a63cdb933..0000000000
--- a/libs/taglib/taglib/toolkit/taglib.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_H
-#define TAGLIB_H
-
-#define TAGLIB_MAJOR_VERSION 1
-#define TAGLIB_MINOR_VERSION 5
-#define TAGLIB_PATCH_VERSION 0
-
-#include <string>
-
-//! A namespace for all TagLib related classes and functions
-
-/*!
- * This namespace contains everything in TagLib. For projects working with
- * TagLib extensively it may be conveniten to add a
- * \code
- * using namespace TagLib;
- * \endcode
- */
-
-namespace TagLib {
-
- class String;
-
- typedef wchar_t wchar;
- typedef unsigned char uchar;
- typedef unsigned int uint;
- typedef unsigned long ulong;
-
- /*!
- * Unfortunately std::wstring isn't defined on some systems, (i.e. GCC < 3)
- * so I'm providing something here that should be constant.
- */
- typedef std::basic_string<wchar> wstring;
-
-#ifndef DO_NOT_DOCUMENT // Tell Doxygen to skip this class.
- /*!
- * \internal
- * This is just used as a base class for shared classes in TagLib.
- *
- * \warning This <b>is not</b> part of the TagLib public API!
- */
-
- class RefCounter
- {
- public:
- RefCounter() : refCount(1) {}
- void ref() { refCount++; }
- bool deref() { return ! --refCount ; }
- int count() { return refCount; }
- private:
- uint refCount;
- };
-
-#endif // DO_NOT_DOCUMENT
-
-}
-
-/*!
- * \mainpage TagLib
- *
- * \section intro Introduction
- *
- * TagLib is a library for reading and editing audio meta data, commonly know as \e tags.
- *
- * Features:
- * - A clean, high level, C++ API to handling audio meta data.
- * - Format specific APIs for advanced API users.
- * - ID3v1, ID3v2, APE, FLAC and Xiph tag formats.
- * - MP3, MPC, FLAC, Ogg FLAC, Ogg Vorbis and Speex file formats.
- * - Basic audio file properties such as length, sample rate, etc.
- * - Long term binary and source compatibility.
- * - Extensible design, notably the ability to add other formats or extend current formats as a library user.
- * - Full support for unicode and internationalized tags.
- * - Dual <a href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL</a> and
- * <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPL</a> licenses.
- * - No external toolkit dependancies.
- *
- * \section why Why TagLib?
- *
- * TagLib originally was written to provide an updated and improved ID3v2 implementation in C++ for use
- * in a variety of Open Source projects. Since development began in 2002 and the 1.0 release in 2004
- * it has expanded to cover a wide variety of tag and file formats and is used in a wide variety of
- * Open Source and proprietary applications. It now supports a variety of UNIXes, including Apple's OS
- * X, as well as Microsoft Windows.
- *
- * \section commercial Usage in Commercial Applications
- *
- * TagLib's licenses \e do allow usage within propriety (\e closed) applications, however TagLib is \e not
- * public domain. Please note the requirements of the LGPL or MPL, and adhere to at least one of them.
- * In simple terms, you must at a minimum note your usage of TagLib, note the licensing terms of TagLib and
- * if you make changes to TagLib publish them. Please review the licenses above before using TagLib in your
- * software. Note that you may choose either the MPL or the LGPL, you do not have to fulfill the
- * requirements of both.
- *
- * \section installing Installing TagLib
- *
- * Please see the <a href="http://developer.kde.org/~wheeler/taglib.html">TagLib website</a> for the latest
- * downloads.
- *
- * Instructions for installing TagLib vary per platform, but generally speaking on UNIX standard configure and
- * make commands are provided. TagLib installs a taglib-config and package-config file to make it easier to
- * integrate into various build systems. Note that TagLib's include install directory \e must be included in
- * the header include path. Simply adding <taglib/tag.h> will \e not work.
- *
- * On Windows, TagLib can be built using the CMake build systems.
- *
- * \section start Getting Started
- *
- * TagLib provides both simple, abstract APIs which make it possible to ignore the differences between tagging
- * formats and format specific APIs which allow programmers to work with the features of specific tagging
- * schemes. There is a similar abstraction mechanism for AudioProperties.
- *
- * The best place to start is with the <b>Class Hierarchy</b> linked at the top of the page. The File and
- * AudioProperties classes and their subclasses are the core of TagLib. The FileRef class is also a convenient
- * way for using a value-based handle.
- *
- * \note When working with FileRef please consider that it has only the most basic (extension-based) file
- * type resolution. Please see its documentation on how to plug in more advanced file type resolution. (Such
- * resolution may be part of later TagLib releases by default.)
- *
- * Here's a very simple example with TagLib:
- *
- * \code
- *
- * TagLib::FileRef f("Latex Solar Beef.mp3");
- * TagLib::String artist = f.tag()->artist(); // artist == "Frank Zappa"
- *
- * f.tag()->setAlbum("Fillmore East");
- * f.save();
- *
- * TagLib::FileRef g("Free City Rhymes.ogg");
- * TagLib::String album = g.tag()->album(); // album == "NYC Ghosts & Flowers"
- *
- * g.tag()->setTrack(1);
- * g.save();
- *
- * \endcode
- *
- * More examples can be found in the \e examples directory of the source distribution.
- *
- * \section Contact
- *
- * Questions about TagLib should be directed to the TagLib mailing list, not directly to the author.
- *
- * - <a href="http://developer.kde.org/~wheeler/taglib/">TagLib Homepage</a>
- * - <a href="https://mail.kde.org/mailman/listinfo/taglib-devel">TagLib Mailing List (taglib-devel@kde.org)</a>
- *
- * \author Scott Wheeler <wheeler@kde.org> et al.
- *
- */
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tbytevector.cpp b/libs/taglib/taglib/toolkit/tbytevector.cpp
deleted file mode 100644
index 766797764a..0000000000
--- a/libs/taglib/taglib/toolkit/tbytevector.cpp
+++ /dev/null
@@ -1,677 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <iostream>
-
-#include <tstring.h>
-#include <tdebug.h>
-
-#include <string.h>
-
-#include "tbytevector.h"
-
-// This is a bit ugly to keep writing over and over again.
-
-// A rather obscure feature of the C++ spec that I hadn't thought of that makes
-// working with C libs much more effecient. There's more here:
-//
-// http://www.informit.com/isapi/product_id~{9C84DAB4-FE6E-49C5-BB0A-FB50331233EA}/content/index.asp
-
-#define DATA(x) (&(x->data[0]))
-
-namespace TagLib {
- static const uint crcTable[256] = {
- 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
- 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
- 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7,
- 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
- 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3,
- 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
- 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef,
- 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
- 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb,
- 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
- 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
- 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
- 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4,
- 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
- 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08,
- 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
- 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc,
- 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
- 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050,
- 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
- 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
- 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
- 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1,
- 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
- 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5,
- 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
- 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9,
- 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
- 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd,
- 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
- 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
- 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
- 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2,
- 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
- 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e,
- 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
- 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a,
- 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
- 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676,
- 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
- 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
- 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
- 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
- };
-
- /*!
- * A templatized KMP find that works both with a ByteVector and a ByteVectorMirror.
- */
-
- template <class Vector>
- int vectorFind(const Vector &v, const Vector &pattern, uint offset, int byteAlign)
- {
- if(pattern.size() > v.size() || offset > v.size() - 1)
- return -1;
-
- // Let's go ahead and special case a pattern of size one since that's common
- // and easy to make fast.
-
- if(pattern.size() == 1) {
- char p = pattern[0];
- for(uint i = offset; i < v.size(); i++) {
- if(v[i] == p && (i - offset) % byteAlign == 0)
- return i;
- }
- return -1;
- }
-
- uchar lastOccurrence[256];
-
- for(uint i = 0; i < 256; ++i)
- lastOccurrence[i] = uchar(pattern.size());
-
- for(uint i = 0; i < pattern.size() - 1; ++i)
- lastOccurrence[uchar(pattern[i])] = uchar(pattern.size() - i - 1);
-
- for(uint i = pattern.size() - 1 + offset; i < v.size(); i += lastOccurrence[uchar(v.at(i))]) {
- int iBuffer = i;
- int iPattern = pattern.size() - 1;
-
- while(iPattern >= 0 && v.at(iBuffer) == pattern[iPattern]) {
- --iBuffer;
- --iPattern;
- }
-
- if(-1 == iPattern && (iBuffer + 1 - offset) % byteAlign == 0)
- return iBuffer + 1;
- }
-
- return -1;
- }
-
- /*!
- * Wraps the accessors to a ByteVector to make the search algorithm access the
- * elements in reverse.
- *
- * \see vectorFind()
- * \see ByteVector::rfind()
- */
-
- class ByteVectorMirror
- {
- public:
- ByteVectorMirror(const ByteVector &source) : v(source) {}
-
- char operator[](int index) const
- {
- return v[v.size() - index - 1];
- }
-
- char at(int index) const
- {
- return v.at(v.size() - index - 1);
- }
-
- ByteVectorMirror mid(uint index, uint length = 0xffffffff) const
- {
- return length == 0xffffffff ? v.mid(0, index) : v.mid(index - length, length);
- }
-
- uint size() const
- {
- return v.size();
- }
-
- int find(const ByteVectorMirror &pattern, uint offset = 0, int byteAlign = 1) const
- {
- ByteVectorMirror v(*this);
-
- if(offset > 0) {
- offset = size() - offset - pattern.size();
- if(offset >= size())
- offset = 0;
- }
-
- const int pos = vectorFind<ByteVectorMirror>(v, pattern, offset, byteAlign);
-
- // If the offset is zero then we need to adjust the location in the search
- // to be appropriately reversed. If not we need to account for the fact
- // that the recursive call (called from the above line) has already ajusted
- // for this but that the normal templatized find above will add the offset
- // to the returned value.
- //
- // This is a little confusing at first if you don't first stop to think
- // through the logic involved in the forward search.
-
- if(pos == -1)
- return -1;
-
- return size() - pos - pattern.size();
- }
-
- private:
- const ByteVector &v;
- };
-
- template <class T>
- T toNumber(const std::vector<char> &data, bool mostSignificantByteFirst)
- {
- T sum = 0;
-
- if(data.size() <= 0) {
- debug("ByteVectorMirror::toNumber<T>() -- data is empty, returning 0");
- return sum;
- }
-
- uint size = sizeof(T);
- uint last = data.size() > size ? size - 1 : data.size() - 1;
-
- for(uint i = 0; i <= last; i++)
- sum |= (T) uchar(data[i]) << ((mostSignificantByteFirst ? last - i : i) * 8);
-
- return sum;
- }
-
- template <class T>
- ByteVector fromNumber(T value, bool mostSignificantByteFirst)
- {
- int size = sizeof(T);
-
- ByteVector v(size, 0);
-
- for(int i = 0; i < size; i++)
- v[i] = uchar(value >> ((mostSignificantByteFirst ? size - 1 - i : i) * 8) & 0xff);
-
- return v;
- }
-}
-
-using namespace TagLib;
-
-class ByteVector::ByteVectorPrivate : public RefCounter
-{
-public:
- ByteVectorPrivate() : RefCounter(), size(0) {}
- ByteVectorPrivate(const std::vector<char> &v) : RefCounter(), data(v), size(v.size()) {}
- ByteVectorPrivate(TagLib::uint len, char value) : RefCounter(), data(len, value), size(len) {}
-
- std::vector<char> data;
-
- // std::vector<T>::size() is very slow, so we'll cache the value
-
- uint size;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members
-////////////////////////////////////////////////////////////////////////////////
-
-ByteVector ByteVector::null;
-
-ByteVector ByteVector::fromCString(const char *s, uint length)
-{
- ByteVector v;
-
- if(length == 0xffffffff)
- v.setData(s);
- else
- v.setData(s, length);
-
- return v;
-}
-
-ByteVector ByteVector::fromUInt(uint value, bool mostSignificantByteFirst)
-{
- return fromNumber<uint>(value, mostSignificantByteFirst);
-}
-
-ByteVector ByteVector::fromShort(short value, bool mostSignificantByteFirst)
-{
- return fromNumber<short>(value, mostSignificantByteFirst);
-}
-
-ByteVector ByteVector::fromLongLong(long long value, bool mostSignificantByteFirst)
-{
- return fromNumber<long long>(value, mostSignificantByteFirst);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-ByteVector::ByteVector()
-{
- d = new ByteVectorPrivate;
-}
-
-ByteVector::ByteVector(uint size, char value)
-{
- d = new ByteVectorPrivate(size, value);
-}
-
-ByteVector::ByteVector(const ByteVector &v) : d(v.d)
-{
- d->ref();
-}
-
-ByteVector::ByteVector(char c)
-{
- d = new ByteVectorPrivate;
- d->data.push_back(c);
- d->size = 1;
-}
-
-ByteVector::ByteVector(const char *data, uint length)
-{
- d = new ByteVectorPrivate;
- setData(data, length);
-}
-
-ByteVector::ByteVector(const char *data)
-{
- d = new ByteVectorPrivate;
- setData(data);
-}
-
-ByteVector::~ByteVector()
-{
- if(d->deref())
- delete d;
-}
-
-ByteVector &ByteVector::setData(const char *data, uint length)
-{
- detach();
-
- resize(length);
-
- if(length > 0)
- ::memcpy(DATA(d), data, length);
-
- return *this;
-}
-
-ByteVector &ByteVector::setData(const char *data)
-{
- return setData(data, ::strlen(data));
-}
-
-char *ByteVector::data()
-{
- detach();
- return size() > 0 ? DATA(d) : 0;
-}
-
-const char *ByteVector::data() const
-{
- return size() > 0 ? DATA(d) : 0;
-}
-
-ByteVector ByteVector::mid(uint index, uint length) const
-{
- ByteVector v;
-
- if(index > size())
- return v;
-
- ConstIterator endIt;
-
- if(length < 0xffffffff && length + index < size())
- endIt = d->data.begin() + index + length;
- else
- endIt = d->data.end();
-
- v.d->data.insert(v.d->data.begin(), ConstIterator(d->data.begin() + index), endIt);
- v.d->size = v.d->data.size();
-
- return v;
-}
-
-char ByteVector::at(uint index) const
-{
- return index < size() ? d->data[index] : 0;
-}
-
-int ByteVector::find(const ByteVector &pattern, uint offset, int byteAlign) const
-{
- return vectorFind<ByteVector>(*this, pattern, offset, byteAlign);
-}
-
-int ByteVector::rfind(const ByteVector &pattern, uint offset, int byteAlign) const
-{
- // Ok, this is a little goofy, but pretty cool after it sinks in. Instead of
- // reversing the find method's Boyer-Moore search algorithm I created a "mirror"
- // for a ByteVector to reverse the behavior of the accessors.
-
- ByteVectorMirror v(*this);
- ByteVectorMirror p(pattern);
-
- return v.find(p, offset, byteAlign);
-}
-
-bool ByteVector::containsAt(const ByteVector &pattern, uint offset, uint patternOffset, uint patternLength) const
-{
- if(pattern.size() < patternLength)
- patternLength = pattern.size();
-
- // do some sanity checking -- all of these things are needed for the search to be valid
-
- if(patternLength > size() || offset >= size() || patternOffset >= pattern.size() || patternLength == 0)
- return false;
-
- // loop through looking for a mismatch
-
- for(uint i = 0; i < patternLength - patternOffset; i++) {
- if(at(i + offset) != pattern[i + patternOffset])
- return false;
- }
-
- return true;
-}
-
-bool ByteVector::startsWith(const ByteVector &pattern) const
-{
- return containsAt(pattern, 0);
-}
-
-bool ByteVector::endsWith(const ByteVector &pattern) const
-{
- return containsAt(pattern, size() - pattern.size());
-}
-
-ByteVector &ByteVector::replace(const ByteVector &pattern, const ByteVector &with)
-{
- if(pattern.size() == 0 || pattern.size() > size())
- return *this;
-
- const int patternSize = pattern.size();
- const int withSize = with.size();
-
- int offset = find(pattern);
-
- while(offset >= 0) {
-
- const int originalSize = size();
-
- if(withSize > patternSize)
- resize(originalSize + withSize - patternSize);
-
- if(patternSize != withSize)
- ::memcpy(data() + offset + withSize, mid(offset + patternSize).data(), originalSize - offset - patternSize);
-
- if(withSize < patternSize)
- resize(originalSize + withSize - patternSize);
-
- ::memcpy(data() + offset, with.data(), withSize);
-
- offset = find(pattern, offset + withSize);
- }
-
- return *this;
-}
-
-int ByteVector::endsWithPartialMatch(const ByteVector &pattern) const
-{
- if(pattern.size() > size())
- return -1;
-
- const int startIndex = size() - pattern.size();
-
- // try to match the last n-1 bytes from the vector (where n is the pattern
- // size) -- continue trying to match n-2, n-3...1 bytes
-
- for(uint i = 1; i < pattern.size(); i++) {
- if(containsAt(pattern, startIndex + i, 0, pattern.size() - i))
- return startIndex + i;
- }
-
- return -1;
-}
-
-ByteVector &ByteVector::append(const ByteVector &v)
-{
- if(v.d->size == 0)
- return *this; // Simply return if appending nothing.
-
- detach();
-
- uint originalSize = d->size;
- resize(d->size + v.d->size);
- ::memcpy(DATA(d) + originalSize, DATA(v.d), v.size());
-
- return *this;
-}
-
-ByteVector &ByteVector::clear()
-{
- detach();
- d->data.clear();
- d->size = 0;
-
- return *this;
-}
-
-TagLib::uint ByteVector::size() const
-{
- return d->size;
-}
-
-ByteVector &ByteVector::resize(uint size, char padding)
-{
- if(d->size < size) {
- d->data.reserve(size);
- d->data.insert(d->data.end(), size - d->size, padding);
- }
- else
- d->data.erase(d->data.begin() + size, d->data.end());
-
- d->size = size;
-
- return *this;
-}
-
-ByteVector::Iterator ByteVector::begin()
-{
- return d->data.begin();
-}
-
-ByteVector::ConstIterator ByteVector::begin() const
-{
- return d->data.begin();
-}
-
-ByteVector::Iterator ByteVector::end()
-{
- return d->data.end();
-}
-
-ByteVector::ConstIterator ByteVector::end() const
-{
- return d->data.end();
-}
-
-bool ByteVector::isNull() const
-{
- return d == null.d;
-}
-
-bool ByteVector::isEmpty() const
-{
- return d->data.size() == 0;
-}
-
-TagLib::uint ByteVector::checksum() const
-{
- uint sum = 0;
- for(ByteVector::ConstIterator it = begin(); it != end(); ++it)
- sum = (sum << 8) ^ crcTable[((sum >> 24) & 0xff) ^ uchar(*it)];
- return sum;
-}
-
-TagLib::uint ByteVector::toUInt(bool mostSignificantByteFirst) const
-{
- return toNumber<uint>(d->data, mostSignificantByteFirst);
-}
-
-short ByteVector::toShort(bool mostSignificantByteFirst) const
-{
- return toNumber<unsigned short>(d->data, mostSignificantByteFirst);
-}
-
-long long ByteVector::toLongLong(bool mostSignificantByteFirst) const
-{
- return toNumber<unsigned long long>(d->data, mostSignificantByteFirst);
-}
-
-const char &ByteVector::operator[](int index) const
-{
- return d->data[index];
-}
-
-char &ByteVector::operator[](int index)
-{
- detach();
-
- return d->data[index];
-}
-
-bool ByteVector::operator==(const ByteVector &v) const
-{
- if(d->size != v.d->size)
- return false;
-
- return ::memcmp(data(), v.data(), size()) == 0;
-}
-
-bool ByteVector::operator!=(const ByteVector &v) const
-{
- return !operator==(v);
-}
-
-bool ByteVector::operator==(const char *s) const
-{
- if(d->size != ::strlen(s))
- return false;
-
- return ::memcmp(data(), s, d->size) == 0;
-}
-
-bool ByteVector::operator!=(const char *s) const
-{
- return !operator==(s);
-}
-
-bool ByteVector::operator<(const ByteVector &v) const
-{
- int result = ::memcmp(data(), v.data(), d->size < v.d->size ? d->size : v.d->size);
-
- if(result != 0)
- return result < 0;
- else
- return size() < v.size();
-}
-
-bool ByteVector::operator>(const ByteVector &v) const
-{
- return v < *this;
-}
-
-ByteVector ByteVector::operator+(const ByteVector &v) const
-{
- ByteVector sum(*this);
- sum.append(v);
- return sum;
-}
-
-ByteVector &ByteVector::operator=(const ByteVector &v)
-{
- if(&v == this)
- return *this;
-
- if(d->deref())
- delete d;
-
- d = v.d;
- d->ref();
- return *this;
-}
-
-ByteVector &ByteVector::operator=(char c)
-{
- *this = ByteVector(c);
- return *this;
-}
-
-ByteVector &ByteVector::operator=(const char *data)
-{
- *this = ByteVector(data);
- return *this;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void ByteVector::detach()
-{
- if(d->count() > 1) {
- d->deref();
- d = new ByteVectorPrivate(d->data);
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// related functions
-////////////////////////////////////////////////////////////////////////////////
-
-std::ostream &operator<<(std::ostream &s, const ByteVector &v)
-{
- for(TagLib::uint i = 0; i < v.size(); i++)
- s << v[i];
- return s;
-}
diff --git a/libs/taglib/taglib/toolkit/tbytevector.h b/libs/taglib/taglib/toolkit/tbytevector.h
deleted file mode 100644
index 66a424eac7..0000000000
--- a/libs/taglib/taglib/toolkit/tbytevector.h
+++ /dev/null
@@ -1,409 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_BYTEVECTOR_H
-#define TAGLIB_BYTEVECTOR_H
-
-#include "taglib.h"
-#include "taglib_export.h"
-
-#include <vector>
-#include <ostream>
-
-namespace TagLib {
-
- //! A byte vector
-
- /*!
- * This class provides a byte vector with some methods that are useful for
- * tagging purposes. Many of the search functions are tailored to what is
- * useful for finding tag related paterns in a data array.
- */
-
- class TAGLIB_EXPORT ByteVector
- {
- public:
-#ifndef DO_NOT_DOCUMENT
- typedef std::vector<char>::iterator Iterator;
- typedef std::vector<char>::const_iterator ConstIterator;
-#endif
-
- /*!
- * Constructs an empty byte vector.
- */
- ByteVector();
-
- /*!
- * Construct a vector of size \a size with all values set to \a value by
- * default.
- */
- ByteVector(uint size, char value = 0);
-
- /*!
- * Contructs a byte vector that is a copy of \a v.
- */
- ByteVector(const ByteVector &v);
-
- /*!
- * Contructs a byte vector that contains \a c.
- */
- ByteVector(char c);
-
- /*!
- * Constructs a byte vector that copies \a data for up to \a length bytes.
- */
- ByteVector(const char *data, uint length);
-
- /*!
- * Constructs a byte vector that copies \a data up to the first null
- * byte. The behavior is undefined if \a data is not null terminated.
- * This is particularly useful for constructing byte arrays from string
- * constants.
- */
- ByteVector(const char *data);
-
- /*!
- * Destroys this ByteVector instance.
- */
- virtual ~ByteVector();
-
- /*!
- * Sets the data for the byte array using the first \a length bytes of \a data
- */
- ByteVector &setData(const char *data, uint length);
-
- /*!
- * Sets the data for the byte array copies \a data up to the first null
- * byte. The behavior is undefined if \a data is not null terminated.
- */
- ByteVector &setData(const char *data);
-
- /*!
- * Returns a pointer to the internal data structure.
- *
- * \warning Care should be taken when modifying this data structure as it is
- * easy to corrupt the ByteVector when doing so. Specifically, while the
- * data may be changed, its length may not be.
- */
- char *data();
-
- /*!
- * Returns a pointer to the internal data structure which may not be modified.
- */
- const char *data() const;
-
- /*!
- * Returns a byte vector made up of the bytes starting at \a index and
- * for \a length bytes. If \a length is not specified it will return the bytes
- * from \a index to the end of the vector.
- */
- ByteVector mid(uint index, uint length = 0xffffffff) const;
-
- /*!
- * This essentially performs the same as operator[](), but instead of causing
- * a runtime error if the index is out of bounds, it will return a null byte.
- */
- char at(uint index) const;
-
- /*!
- * Searches the ByteVector for \a pattern starting at \a offset and returns
- * the offset. Returns -1 if the pattern was not found. If \a byteAlign is
- * specified the pattern will only be matched if it starts on a byte divisible
- * by \a byteAlign (starting from \a offset).
- */
- int find(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const;
-
- /*!
- * Searches the ByteVector for \a pattern starting from either the end of the
- * vector or \a offset and returns the offset. Returns -1 if the pattern was
- * not found. If \a byteAlign is specified the pattern will only be matched
- * if it starts on a byte divisible by \a byteAlign (starting from \a offset).
- */
- int rfind(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const;
-
- /*!
- * Checks to see if the vector contains the \a pattern starting at position
- * \a offset. Optionally, if you only want to search for part of the pattern
- * you can specify an offset within the pattern to start from. Also, you can
- * specify to only check for the first \a patternLength bytes of \a pattern with
- * the \a patternLength argument.
- */
- bool containsAt(const ByteVector &pattern, uint offset, uint patternOffset = 0, uint patternLength = 0xffffffff) const;
-
- /*!
- * Returns true if the vector starts with \a pattern.
- */
- bool startsWith(const ByteVector &pattern) const;
-
- /*!
- * Returns true if the vector ends with \a pattern.
- */
- bool endsWith(const ByteVector &pattern) const;
-
- /*!
- * Replaces \a pattern with \a with and returns a reference to the ByteVector
- * after the operation. This \e does modify the vector.
- */
- ByteVector &replace(const ByteVector &pattern, const ByteVector &with);
-
- /*!
- * Checks for a partial match of \a pattern at the end of the vector. It
- * returns the offset of the partial match within the vector, or -1 if the
- * pattern is not found. This method is particularly useful when searching for
- * patterns that start in one vector and end in another. When combined with
- * startsWith() it can be used to find a pattern that overlaps two buffers.
- *
- * \note This will not match the complete pattern at the end of the string; use
- * endsWith() for that.
- */
- int endsWithPartialMatch(const ByteVector &pattern) const;
-
- /*!
- * Appends \a v to the end of the ByteVector.
- */
- ByteVector &append(const ByteVector &v);
-
- /*!
- * Clears the data.
- */
- ByteVector &clear();
-
- /*!
- * Returns the size of the array.
- */
- uint size() const;
-
- /*!
- * Resize the vector to \a size. If the vector is currently less than
- * \a size, pad the remaining spaces with \a padding. Returns a reference
- * to the resized vector.
- */
- ByteVector &resize(uint size, char padding = 0);
-
- /*!
- * Returns an Iterator that points to the front of the vector.
- */
- Iterator begin();
-
- /*!
- * Returns a ConstIterator that points to the front of the vector.
- */
- ConstIterator begin() const;
-
- /*!
- * Returns an Iterator that points to the back of the vector.
- */
- Iterator end();
-
- /*!
- * Returns a ConstIterator that points to the back of the vector.
- */
- ConstIterator end() const;
-
- /*!
- * Returns true if the vector is null.
- *
- * \note A vector may be empty without being null.
- * \see isEmpty()
- */
- bool isNull() const;
-
- /*!
- * Returns true if the ByteVector is empty.
- *
- * \see size()
- * \see isNull()
- */
- bool isEmpty() const;
-
- /*!
- * Returns a CRC checksum of the byte vector's data.
- */
- uint checksum() const;
-
- /*!
- * Converts the first 4 bytes of the vector to an unsigned integer.
- *
- * If \a mostSignificantByteFirst is true this will operate left to right
- * evaluating the integer. For example if \a mostSignificantByteFirst is
- * true then $00 $00 $00 $01 == 0x00000001 == 1, if false, $01 00 00 00 ==
- * 0x01000000 == 1.
- *
- * \see fromUInt()
- */
- uint toUInt(bool mostSignificantByteFirst = true) const;
-
- /*!
- * Converts the first 2 bytes of the vector to a short.
- *
- * If \a mostSignificantByteFirst is true this will operate left to right
- * evaluating the integer. For example if \a mostSignificantByteFirst is
- * true then $00 $01 == 0x0001 == 1, if false, $01 00 == 0x01000000 == 1.
- *
- * \see fromShort()
- */
- short toShort(bool mostSignificantByteFirst = true) const;
-
- /*!
- * Converts the first 8 bytes of the vector to a (signed) long long.
- *
- * If \a mostSignificantByteFirst is true this will operate left to right
- * evaluating the integer. For example if \a mostSignificantByteFirst is
- * true then $00 00 00 00 00 00 00 01 == 0x0000000000000001 == 1,
- * if false, $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1.
- *
- * \see fromUInt()
- */
- long long toLongLong(bool mostSignificantByteFirst = true) const;
-
- /*!
- * Creates a 4 byte ByteVector based on \a value. If
- * \a mostSignificantByteFirst is true, then this will operate left to right
- * in building the ByteVector. For example if \a mostSignificantByteFirst is
- * true then $00 00 00 01 == 0x00000001 == 1, if false, $01 00 00 00 ==
- * 0x01000000 == 1.
- *
- * \see toUInt()
- */
- static ByteVector fromUInt(uint value, bool mostSignificantByteFirst = true);
-
- /*!
- * Creates a 2 byte ByteVector based on \a value. If
- * \a mostSignificantByteFirst is true, then this will operate left to right
- * in building the ByteVector. For example if \a mostSignificantByteFirst is
- * true then $00 01 == 0x0001 == 1, if false, $01 00 == 0x0100 == 1.
- *
- * \see toShort()
- */
- static ByteVector fromShort(short value, bool mostSignificantByteFirst = true);
-
- /*!
- * Creates a 8 byte ByteVector based on \a value. If
- * \a mostSignificantByteFirst is true, then this will operate left to right
- * in building the ByteVector. For example if \a mostSignificantByteFirst is
- * true then $00 00 00 01 == 0x0000000000000001 == 1, if false,
- * $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1.
- *
- * \see toLongLong()
- */
- static ByteVector fromLongLong(long long value, bool mostSignificantByteFirst = true);
-
- /*!
- * Returns a ByteVector based on the CString \a s.
- */
- static ByteVector fromCString(const char *s, uint length = 0xffffffff);
-
- /*!
- * Returns a const refernence to the byte at \a index.
- */
- const char &operator[](int index) const;
-
- /*!
- * Returns a reference to the byte at \a index.
- */
- char &operator[](int index);
-
- /*!
- * Returns true if this ByteVector and \a v are equal.
- */
- bool operator==(const ByteVector &v) const;
-
- /*!
- * Returns true if this ByteVector and \a v are not equal.
- */
- bool operator!=(const ByteVector &v) const;
-
- /*!
- * Returns true if this ByteVector and the null terminated C string \a s
- * contain the same data.
- */
- bool operator==(const char *s) const;
-
- /*!
- * Returns true if this ByteVector and the null terminated C string \a s
- * do not contain the same data.
- */
- bool operator!=(const char *s) const;
-
- /*!
- * Returns true if this ByteVector is less than \a v. The value of the
- * vectors is determined by evaluating the character from left to right, and
- * in the event one vector is a superset of the other, the size is used.
- */
- bool operator<(const ByteVector &v) const;
-
- /*!
- * Returns true if this ByteVector is greater than \a v.
- */
- bool operator>(const ByteVector &v) const;
-
- /*!
- * Returns a vector that is \a v appended to this vector.
- */
- ByteVector operator+(const ByteVector &v) const;
-
- /*!
- * Copies ByteVector \a v.
- */
- ByteVector &operator=(const ByteVector &v);
-
- /*!
- * Copies ByteVector \a v.
- */
- ByteVector &operator=(char c);
-
- /*!
- * Copies ByteVector \a v.
- */
- ByteVector &operator=(const char *data);
-
- /*!
- * A static, empty ByteVector which is convenient and fast (since returning
- * an empty or "null" value does not require instantiating a new ByteVector).
- */
- static ByteVector null;
-
- protected:
- /*
- * If this ByteVector is being shared via implicit sharing, do a deep copy
- * of the data and separate from the shared members. This should be called
- * by all non-const subclass members.
- */
- void detach();
-
- private:
- class ByteVectorPrivate;
- ByteVectorPrivate *d;
- };
-
-}
-
-/*!
- * \relates TagLib::ByteVector
- * Streams the ByteVector \a v to the output stream \a s.
- */
-TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::ByteVector &v);
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tbytevectorlist.cpp b/libs/taglib/taglib/toolkit/tbytevectorlist.cpp
deleted file mode 100644
index 71d6f69d14..0000000000
--- a/libs/taglib/taglib/toolkit/tbytevectorlist.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tbytevectorlist.h"
-
-using namespace TagLib;
-
-class ByteVectorListPrivate
-{
-
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members
-////////////////////////////////////////////////////////////////////////////////
-
-ByteVectorList ByteVectorList::split(const ByteVector &v, const ByteVector &pattern,
- int byteAlign)
-{
- return split(v, pattern, byteAlign, 0);
-}
-
-ByteVectorList ByteVectorList::split(const ByteVector &v, const ByteVector &pattern,
- int byteAlign, int max)
-{
- ByteVectorList l;
-
- uint previousOffset = 0;
- for(int offset = v.find(pattern, 0, byteAlign);
- offset != -1 && (max == 0 || max > int(l.size()) + 1);
- offset = v.find(pattern, offset + pattern.size(), byteAlign))
- {
- if(offset - previousOffset > 1)
- l.append(v.mid(previousOffset, offset - previousOffset));
- else
- l.append(ByteVector::null);
-
- previousOffset = offset + pattern.size();
- }
-
- if(previousOffset < v.size())
- l.append(v.mid(previousOffset, v.size() - previousOffset));
-
- return l;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-ByteVectorList::ByteVectorList() : List<ByteVector>()
-{
-
-}
-
-ByteVectorList::ByteVectorList(const ByteVectorList &l) : List<ByteVector>(l)
-{
-
-}
-
-ByteVectorList::~ByteVectorList()
-{
-
-}
-
-ByteVector ByteVectorList::toByteVector(const ByteVector &separator) const
-{
- ByteVector v;
-
- ConstIterator it = begin();
-
- while(it != end()) {
- v.append(*it);
- it++;
- if(it != end())
- v.append(separator);
- }
-
- return v;
-}
diff --git a/libs/taglib/taglib/toolkit/tbytevectorlist.h b/libs/taglib/taglib/toolkit/tbytevectorlist.h
deleted file mode 100644
index 8d8471023d..0000000000
--- a/libs/taglib/taglib/toolkit/tbytevectorlist.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_BYTEVECTORLIST_H
-#define TAGLIB_BYTEVECTORLIST_H
-
-#include "taglib_export.h"
-#include "tbytevector.h"
-#include "tlist.h"
-
-namespace TagLib {
-
- //! A list of ByteVectors
-
- /*!
- * A List specialization with some handy features useful for ByteVectors.
- */
-
- class TAGLIB_EXPORT ByteVectorList : public List<ByteVector>
- {
- public:
-
- /*!
- * Construct an empty ByteVectorList.
- */
- ByteVectorList();
-
- /*!
- * Destroys this ByteVectorList instance.
- */
- virtual ~ByteVectorList();
-
- /*!
- * Make a shallow, implicitly shared, copy of \a l. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- ByteVectorList(const ByteVectorList &l);
-
- /*!
- * Convert the ByteVectorList to a ByteVector separated by \a separator. By
- * default a space is used.
- */
- ByteVector toByteVector(const ByteVector &separator = " ") const;
-
- /*!
- * Splits the ByteVector \a v into several strings at \a pattern. This will
- * not include the pattern in the returned ByteVectors.
- */
- static ByteVectorList split(const ByteVector &v, const ByteVector &pattern,
- int byteAlign = 1);
- /*!
- * Splits the ByteVector \a v into several strings at \a pattern. This will
- * not include the pattern in the returned ByteVectors. \a max is the
- * maximum number of entries that will be separated. If \a max for instance
- * is 2 then a maximum of 1 match will be found and the vector will be split
- * on that match.
- */
- // BIC: merge with the function above
- static ByteVectorList split(const ByteVector &v, const ByteVector &pattern,
- int byteAlign, int max);
- private:
- class ByteVectorListPrivate;
- ByteVectorListPrivate *d;
- };
-
-}
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tdebug.cpp b/libs/taglib/taglib/toolkit/tdebug.cpp
deleted file mode 100644
index 341bb37566..0000000000
--- a/libs/taglib/taglib/toolkit/tdebug.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <iostream>
-#include <bitset>
-
-#include "tdebug.h"
-#include "tstring.h"
-
-using namespace TagLib;
-
-#ifndef NDEBUG
-void TagLib::debug(const String &s)
-{
- std::cerr << "TagLib: " << s << std::endl;
-}
-
-void TagLib::debugData(const ByteVector &v)
-{
- for(uint i = 0; i < v.size(); i++) {
-
- std::cout << "*** [" << i << "] - '" << char(v[i]) << "' - int " << int(v[i])
- << std::endl;
-
- std::bitset<8> b(v[i]);
-
- for(int j = 0; j < 8; j++)
- std::cout << i << ":" << j << " " << b.test(j) << std::endl;
-
- std::cout << std::endl;
- }
-}
-#endif
diff --git a/libs/taglib/taglib/toolkit/tdebug.h b/libs/taglib/taglib/toolkit/tdebug.h
deleted file mode 100644
index a932b26654..0000000000
--- a/libs/taglib/taglib/toolkit/tdebug.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_DEBUG_H
-#define TAGLIB_DEBUG_H
-
-namespace TagLib {
-
- class String;
- class ByteVector;
-
-#ifndef DO_NOT_DOCUMENT
-#ifndef NDEBUG
-
- /*!
- * A simple function that prints debugging output to cerr if debugging is
- * not disabled.
- *
- * \warning Do not use this outside of TagLib, it could lead to undefined
- * symbols in your build if TagLib is built with NDEBUG defined and your
- * application is not.
- *
- * \internal
- */
- void debug(const String &s);
-
- /*!
- * For debugging binary data.
- *
- * \warning Do not use this outside of TagLib, it could lead to undefined
- * symbols in your build if TagLib is built with NDEBUG defined and your
- * application is not.
- *
- * \internal
- */
- void debugData(const ByteVector &v);
-
-#else
-
- // Define these to an empty statement if debugging is disabled.
-
-#define debug(x)
-#define debugData(x)
-
-#endif
-#endif
-}
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tfile.cpp b/libs/taglib/taglib/toolkit/tfile.cpp
deleted file mode 100644
index f63a06612a..0000000000
--- a/libs/taglib/taglib/toolkit/tfile.cpp
+++ /dev/null
@@ -1,565 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tfile.h"
-#include "tstring.h"
-#include "tdebug.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#ifdef _WIN32
-# include <wchar.h>
-# include <windows.h>
-# include <io.h>
-# define ftruncate _chsize
-#else
-# include <unistd.h>
-#endif
-
-#include <stdlib.h>
-
-#ifndef R_OK
-# define R_OK 4
-#endif
-#ifndef W_OK
-# define W_OK 2
-#endif
-
-using namespace TagLib;
-
-#ifdef _WIN32
-
-typedef FileName FileNameHandle;
-
-#else
-
-struct FileNameHandle : public std::string
-{
- FileNameHandle(FileName name) : std::string(name) {}
- operator FileName () const { return c_str(); }
-};
-
-#endif
-
-class File::FilePrivate
-{
-public:
- FilePrivate(FileName fileName);
-
- FILE *file;
-
- FileNameHandle name;
-
- bool readOnly;
- bool valid;
- ulong size;
- static const uint bufferSize = 1024;
-};
-
-File::FilePrivate::FilePrivate(FileName fileName) :
- file(0),
- name(fileName),
- readOnly(true),
- valid(true),
- size(0)
-{
- // First try with read / write mode, if that fails, fall back to read only.
-
-#ifdef _WIN32
-
- if(wcslen((const wchar_t *) fileName) > 0) {
-
- file = _wfopen(name, L"rb+");
-
- if(file)
- readOnly = false;
- else
- file = _wfopen(name, L"rb");
-
- if(file)
- return;
-
- }
-
-#endif
-
- file = fopen(name, "rb+");
-
- if(file)
- readOnly = false;
- else
- file = fopen(name, "rb");
-
- if(!file) {
- debug("Could not open file " + String((const char *) name));
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-File::File(FileName file)
-{
- d = new FilePrivate(file);
-}
-
-File::~File()
-{
- if(d->file)
- fclose(d->file);
- delete d;
-}
-
-FileName File::name() const
-{
- return d->name;
-}
-
-ByteVector File::readBlock(ulong length)
-{
- if(!d->file) {
- debug("File::readBlock() -- Invalid File");
- return ByteVector::null;
- }
-
- if(length == 0)
- return ByteVector::null;
-
- if(length > FilePrivate::bufferSize &&
- length > ulong(File::length()))
- {
- length = File::length();
- }
-
- ByteVector v(static_cast<uint>(length));
- const int count = fread(v.data(), sizeof(char), length, d->file);
- v.resize(count);
- return v;
-}
-
-void File::writeBlock(const ByteVector &data)
-{
- if(!d->file)
- return;
-
- if(d->readOnly) {
- debug("File::writeBlock() -- attempted to write to a file that is not writable");
- return;
- }
-
- fwrite(data.data(), sizeof(char), data.size(), d->file);
-}
-
-long File::find(const ByteVector &pattern, long fromOffset, const ByteVector &before)
-{
- if(!d->file || pattern.size() > d->bufferSize)
- return -1;
-
- // The position in the file that the current buffer starts at.
-
- long bufferOffset = fromOffset;
- ByteVector buffer;
-
- // These variables are used to keep track of a partial match that happens at
- // the end of a buffer.
-
- int previousPartialMatch = -1;
- int beforePreviousPartialMatch = -1;
-
- // Save the location of the current read pointer. We will restore the
- // position using seek() before all returns.
-
- long originalPosition = tell();
-
- // Start the search at the offset.
-
- seek(fromOffset);
-
- // This loop is the crux of the find method. There are three cases that we
- // want to account for:
- //
- // (1) The previously searched buffer contained a partial match of the search
- // pattern and we want to see if the next one starts with the remainder of
- // that pattern.
- //
- // (2) The search pattern is wholly contained within the current buffer.
- //
- // (3) The current buffer ends with a partial match of the pattern. We will
- // note this for use in the next itteration, where we will check for the rest
- // of the pattern.
- //
- // All three of these are done in two steps. First we check for the pattern
- // and do things appropriately if a match (or partial match) is found. We
- // then check for "before". The order is important because it gives priority
- // to "real" matches.
-
- for(buffer = readBlock(d->bufferSize); buffer.size() > 0; buffer = readBlock(d->bufferSize)) {
-
- // (1) previous partial match
-
- if(previousPartialMatch >= 0 && int(d->bufferSize) > previousPartialMatch) {
- const int patternOffset = (d->bufferSize - previousPartialMatch);
- if(buffer.containsAt(pattern, 0, patternOffset)) {
- seek(originalPosition);
- return bufferOffset - d->bufferSize + previousPartialMatch;
- }
- }
-
- if(!before.isNull() && beforePreviousPartialMatch >= 0 && int(d->bufferSize) > beforePreviousPartialMatch) {
- const int beforeOffset = (d->bufferSize - beforePreviousPartialMatch);
- if(buffer.containsAt(before, 0, beforeOffset)) {
- seek(originalPosition);
- return -1;
- }
- }
-
- // (2) pattern contained in current buffer
-
- long location = buffer.find(pattern);
- if(location >= 0) {
- seek(originalPosition);
- return bufferOffset + location;
- }
-
- if(!before.isNull() && buffer.find(before) >= 0) {
- seek(originalPosition);
- return -1;
- }
-
- // (3) partial match
-
- previousPartialMatch = buffer.endsWithPartialMatch(pattern);
-
- if(!before.isNull())
- beforePreviousPartialMatch = buffer.endsWithPartialMatch(before);
-
- bufferOffset += d->bufferSize;
- }
-
- // Since we hit the end of the file, reset the status before continuing.
-
- clear();
-
- seek(originalPosition);
-
- return -1;
-}
-
-
-long File::rfind(const ByteVector &pattern, long fromOffset, const ByteVector &before)
-{
- if(!d->file || pattern.size() > d->bufferSize)
- return -1;
-
- // The position in the file that the current buffer starts at.
-
- ByteVector buffer;
-
- // These variables are used to keep track of a partial match that happens at
- // the end of a buffer.
-
- /*
- int previousPartialMatch = -1;
- int beforePreviousPartialMatch = -1;
- */
-
- // Save the location of the current read pointer. We will restore the
- // position using seek() before all returns.
-
- long originalPosition = tell();
-
- // Start the search at the offset.
-
- long bufferOffset;
- if(fromOffset == 0) {
- seek(-1 * int(d->bufferSize), End);
- bufferOffset = tell();
- }
- else {
- seek(fromOffset + -1 * int(d->bufferSize), Beginning);
- bufferOffset = tell();
- }
-
- // See the notes in find() for an explanation of this algorithm.
-
- for(buffer = readBlock(d->bufferSize); buffer.size() > 0; buffer = readBlock(d->bufferSize)) {
-
- // TODO: (1) previous partial match
-
- // (2) pattern contained in current buffer
-
- long location = buffer.rfind(pattern);
- if(location >= 0) {
- seek(originalPosition);
- return bufferOffset + location;
- }
-
- if(!before.isNull() && buffer.find(before) >= 0) {
- seek(originalPosition);
- return -1;
- }
-
- // TODO: (3) partial match
-
- bufferOffset -= d->bufferSize;
- seek(bufferOffset);
- }
-
- // Since we hit the end of the file, reset the status before continuing.
-
- clear();
-
- seek(originalPosition);
-
- return -1;
-}
-
-void File::insert(const ByteVector &data, ulong start, ulong replace)
-{
- if(!d->file)
- return;
-
- if(data.size() == replace) {
- seek(start);
- writeBlock(data);
- return;
- }
- else if(data.size() < replace) {
- seek(start);
- writeBlock(data);
- removeBlock(start + data.size(), replace - data.size());
- return;
- }
-
- // Woohoo! Faster (about 20%) than id3lib at last. I had to get hardcore
- // and avoid TagLib's high level API for rendering just copying parts of
- // the file that don't contain tag data.
- //
- // Now I'll explain the steps in this ugliness:
-
- // First, make sure that we're working with a buffer that is longer than
- // the *differnce* in the tag sizes. We want to avoid overwriting parts
- // that aren't yet in memory, so this is necessary.
-
- ulong bufferLength = bufferSize();
-
- while(data.size() - replace > bufferLength)
- bufferLength += bufferSize();
-
- // Set where to start the reading and writing.
-
- long readPosition = start + replace;
- long writePosition = start;
-
- ByteVector buffer;
- ByteVector aboutToOverwrite(static_cast<uint>(bufferLength));
-
- // This is basically a special case of the loop below. Here we're just
- // doing the same steps as below, but since we aren't using the same buffer
- // size -- instead we're using the tag size -- this has to be handled as a
- // special case. We're also using File::writeBlock() just for the tag.
- // That's a bit slower than using char *'s so, we're only doing it here.
-
- seek(readPosition);
- int bytesRead = fread(aboutToOverwrite.data(), sizeof(char), bufferLength, d->file);
- readPosition += bufferLength;
-
- seek(writePosition);
- writeBlock(data);
- writePosition += data.size();
-
- buffer = aboutToOverwrite;
-
- // In case we've already reached the end of file...
-
- buffer.resize(bytesRead);
-
- // Ok, here's the main loop. We want to loop until the read fails, which
- // means that we hit the end of the file.
-
- while(!buffer.isEmpty()) {
-
- // Seek to the current read position and read the data that we're about
- // to overwrite. Appropriately increment the readPosition.
-
- seek(readPosition);
- bytesRead = fread(aboutToOverwrite.data(), sizeof(char), bufferLength, d->file);
- aboutToOverwrite.resize(bytesRead);
- readPosition += bufferLength;
-
- // Check to see if we just read the last block. We need to call clear()
- // if we did so that the last write succeeds.
-
- if(ulong(bytesRead) < bufferLength)
- clear();
-
- // Seek to the write position and write our buffer. Increment the
- // writePosition.
-
- seek(writePosition);
- fwrite(buffer.data(), sizeof(char), buffer.size(), d->file);
- writePosition += buffer.size();
-
- // Make the current buffer the data that we read in the beginning.
-
- buffer = aboutToOverwrite;
-
- // Again, we need this for the last write. We don't want to write garbage
- // at the end of our file, so we need to set the buffer size to the amount
- // that we actually read.
-
- bufferLength = bytesRead;
- }
-}
-
-void File::removeBlock(ulong start, ulong length)
-{
- if(!d->file)
- return;
-
- ulong bufferLength = bufferSize();
-
- long readPosition = start + length;
- long writePosition = start;
-
- ByteVector buffer(static_cast<uint>(bufferLength));
-
- ulong bytesRead = 1;
-
- while(bytesRead != 0) {
- seek(readPosition);
- bytesRead = fread(buffer.data(), sizeof(char), bufferLength, d->file);
- readPosition += bytesRead;
-
- // Check to see if we just read the last block. We need to call clear()
- // if we did so that the last write succeeds.
-
- if(bytesRead < bufferLength)
- clear();
-
- seek(writePosition);
- fwrite(buffer.data(), sizeof(char), bytesRead, d->file);
- writePosition += bytesRead;
- }
- truncate(writePosition);
-}
-
-bool File::readOnly() const
-{
- return d->readOnly;
-}
-
-bool File::isReadable(const char *file)
-{
- return access(file, R_OK) == 0;
-}
-
-bool File::isOpen() const
-{
- return (d->file != NULL);
-}
-
-bool File::isValid() const
-{
- return isOpen() && d->valid;
-}
-
-void File::seek(long offset, Position p)
-{
- if(!d->file) {
- debug("File::seek() -- trying to seek in a file that isn't opened.");
- return;
- }
-
- switch(p) {
- case Beginning:
- fseek(d->file, offset, SEEK_SET);
- break;
- case Current:
- fseek(d->file, offset, SEEK_CUR);
- break;
- case End:
- fseek(d->file, offset, SEEK_END);
- break;
- }
-}
-
-void File::clear()
-{
- clearerr(d->file);
-}
-
-long File::tell() const
-{
- return ftell(d->file);
-}
-
-long File::length()
-{
- // Do some caching in case we do multiple calls.
-
- if(d->size > 0)
- return d->size;
-
- if(!d->file)
- return 0;
-
- long curpos = tell();
-
- seek(0, End);
- long endpos = tell();
-
- seek(curpos, Beginning);
-
- d->size = endpos;
- return endpos;
-}
-
-bool File::isWritable(const char *file)
-{
- return access(file, W_OK) == 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void File::setValid(bool valid)
-{
- d->valid = valid;
-}
-
-void File::truncate(long length)
-{
- ftruncate(fileno(d->file), length);
-}
-
-TagLib::uint File::bufferSize()
-{
- return FilePrivate::bufferSize;
-}
diff --git a/libs/taglib/taglib/toolkit/tfile.h b/libs/taglib/taglib/toolkit/tfile.h
deleted file mode 100644
index 680125ac20..0000000000
--- a/libs/taglib/taglib/toolkit/tfile.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FILE_H
-#define TAGLIB_FILE_H
-
-#include "taglib_export.h"
-#include "taglib.h"
-#include "tbytevector.h"
-
-namespace TagLib {
-
- class String;
- class Tag;
- class AudioProperties;
-
-#ifdef _WIN32
- class TAGLIB_EXPORT FileName
- {
- public:
- FileName(const wchar_t *name) : m_wname(name) {}
- FileName(const char *name) : m_name(name) {}
- operator const wchar_t *() const { return m_wname.c_str(); }
- operator const char *() const { return m_name.c_str(); }
- private:
- std::string m_name;
- std::wstring m_wname;
- };
-#else
- typedef const char *FileName;
-#endif
-
- //! A file class with some useful methods for tag manipulation
-
- /*!
- * This class is a basic file class with some methods that are particularly
- * useful for tag editors. It has methods to take advantage of
- * ByteVector and a binary search method for finding patterns in a file.
- */
-
- class TAGLIB_EXPORT File
- {
- public:
- /*!
- * Position in the file used for seeking.
- */
- enum Position {
- //! Seek from the beginning of the file.
- Beginning,
- //! Seek from the current position in the file.
- Current,
- //! Seek from the end of the file.
- End
- };
-
- /*!
- * Destroys this File instance.
- */
- virtual ~File();
-
- /*!
- * Returns the file name in the local file system encoding.
- */
- FileName name() const;
-
- /*!
- * Returns a pointer to this file's tag. This should be reimplemented in
- * the concrete subclasses.
- */
- virtual Tag *tag() const = 0;
-
- /*!
- * Returns a pointer to this file's audio properties. This should be
- * reimplemented in the concrete subclasses. If no audio properties were
- * read then this will return a null pointer.
- */
- virtual AudioProperties *audioProperties() const = 0;
-
- /*!
- * Save the file and its associated tags. This should be reimplemented in
- * the concrete subclasses. Returns true if the save succeeds.
- *
- * \warning On UNIX multiple processes are able to write to the same file at
- * the same time. This can result in serious file corruption. If you are
- * developing a program that makes use of TagLib from multiple processes you
- * must insure that you are only doing writes to a particular file from one
- * of them.
- */
- virtual bool save() = 0;
-
- /*!
- * Reads a block of size \a length at the current get pointer.
- */
- ByteVector readBlock(ulong length);
-
- /*!
- * Attempts to write the block \a data at the current get pointer. If the
- * file is currently only opened read only -- i.e. readOnly() returns true --
- * this attempts to reopen the file in read/write mode.
- *
- * \note This should be used instead of using the streaming output operator
- * for a ByteVector. And even this function is significantly slower than
- * doing output with a char[].
- */
- void writeBlock(const ByteVector &data);
-
- /*!
- * Returns the offset in the file that \a pattern occurs at or -1 if it can
- * not be found. If \a before is set, the search will only continue until the
- * pattern \a before is found. This is useful for tagging purposes to search
- * for a tag before the synch frame.
- *
- * Searching starts at \a fromOffset, which defaults to the beginning of the
- * file.
- *
- * \note This has the practial limitation that \a pattern can not be longer
- * than the buffer size used by readBlock(). Currently this is 1024 bytes.
- */
- long find(const ByteVector &pattern,
- long fromOffset = 0,
- const ByteVector &before = ByteVector::null);
-
- /*!
- * Returns the offset in the file that \a pattern occurs at or -1 if it can
- * not be found. If \a before is set, the search will only continue until the
- * pattern \a before is found. This is useful for tagging purposes to search
- * for a tag before the synch frame.
- *
- * Searching starts at \a fromOffset and proceeds from the that point to the
- * beginning of the file and defaults to the end of the file.
- *
- * \note This has the practial limitation that \a pattern can not be longer
- * than the buffer size used by readBlock(). Currently this is 1024 bytes.
- */
- long rfind(const ByteVector &pattern,
- long fromOffset = 0,
- const ByteVector &before = ByteVector::null);
-
- /*!
- * Insert \a data at position \a start in the file overwriting \a replace
- * bytes of the original content.
- *
- * \note This method is slow since it requires rewriting all of the file
- * after the insertion point.
- */
- void insert(const ByteVector &data, ulong start = 0, ulong replace = 0);
-
- /*!
- * Removes a block of the file starting a \a start and continuing for
- * \a length bytes.
- *
- * \note This method is slow since it involves rewriting all of the file
- * after the removed portion.
- */
- void removeBlock(ulong start = 0, ulong length = 0);
-
- /*!
- * Returns true if the file is read only (or if the file can not be opened).
- */
- bool readOnly() const;
-
- /*!
- * Since the file can currently only be opened as an argument to the
- * constructor (sort-of by design), this returns if that open succeeded.
- */
- bool isOpen() const;
-
- /*!
- * Returns true if the file is open and readble and valid information for
- * the Tag and / or AudioProperties was found.
- */
- bool isValid() const;
-
- /*!
- * Move the I/O pointer to \a offset in the file from position \a p. This
- * defaults to seeking from the beginning of the file.
- *
- * \see Position
- */
- void seek(long offset, Position p = Beginning);
-
- /*!
- * Reset the end-of-file and error flags on the file.
- */
- void clear();
-
- /*!
- * Returns the current offset withing the file.
- */
- long tell() const;
-
- /*!
- * Returns the length of the file.
- */
- long length();
-
- /*!
- * Returns true if \a file can be opened for reading. If the file does not
- * exist, this will return false.
- *
- * \deprecated
- */
- static bool isReadable(const char *file);
-
- /*!
- * Returns true if \a file can be opened for writing.
- *
- * \deprecated
- */
- static bool isWritable(const char *name);
-
- protected:
- /*!
- * Construct a File object and opens the \a file. \a file should be a
- * be a C-string in the local file system encoding.
- *
- * \note Constructor is protected since this class should only be
- * instantiated through subclasses.
- */
- File(FileName file);
-
- /*!
- * Marks the file as valid or invalid.
- *
- * \see isValid()
- */
- void setValid(bool valid);
-
- /*!
- * Truncates the file to a \a length.
- */
- void truncate(long length);
-
- /*!
- * Returns the buffer size that is used for internal buffering.
- */
- static uint bufferSize();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- class FilePrivate;
- FilePrivate *d;
- };
-
-}
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tlist.h b/libs/taglib/taglib/toolkit/tlist.h
deleted file mode 100644
index 70be32458b..0000000000
--- a/libs/taglib/taglib/toolkit/tlist.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_LIST_H
-#define TAGLIB_LIST_H
-
-#include "taglib.h"
-
-#include <list>
-
-namespace TagLib {
-
- //! A generic, implicitly shared list.
-
- /*!
- * This is basic generic list that's somewhere between a std::list and a
- * QValueList. This class is implicitly shared. For example:
- *
- * \code
- *
- * TagLib::List<int> l = someOtherIntList;
- *
- * \endcode
- *
- * The above example is very cheap. This also makes lists suitable for the
- * return types of functions. The above example will just copy a pointer rather
- * than copying the data in the list. When your \e shared list's data changes,
- * only \e then will the data be copied.
- */
-
- template <class T> class List
- {
- public:
-#ifndef DO_NOT_DOCUMENT
- typedef typename std::list<T>::iterator Iterator;
- typedef typename std::list<T>::const_iterator ConstIterator;
-#endif
-
- /*!
- * Constructs an empty list.
- */
- List();
-
- /*!
- * Make a shallow, implicitly shared, copy of \a l. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- List(const List<T> &l);
-
- /*!
- * Destroys this List instance. If auto deletion is enabled and this list
- * contains a pointer type all of the memebers are also deleted.
- */
- virtual ~List();
-
- /*!
- * Returns an STL style iterator to the beginning of the list. See
- * std::list::const_iterator for the semantics.
- */
- Iterator begin();
-
- /*!
- * Returns an STL style constant iterator to the beginning of the list. See
- * std::list::iterator for the semantics.
- */
- ConstIterator begin() const;
-
- /*!
- * Returns an STL style iterator to the end of the list. See
- * std::list::iterator for the semantics.
- */
- Iterator end();
-
- /*!
- * Returns an STL style constant iterator to the end of the list. See
- * std::list::const_iterator for the semantics.
- */
- ConstIterator end() const;
-
- /*!
- * Inserts a copy of \a value before \a it.
- */
- Iterator insert(Iterator it, const T &value);
-
- /*!
- * Inserts the \a value into the list. This assumes that the list is
- * currently sorted. If \a unique is true then the value will not
- * be inserted if it is already in the list.
- */
- List<T> &sortedInsert(const T &value, bool unique = false);
-
- /*!
- * Appends \a item to the end of the list and returns a reference to the
- * list.
- */
- List<T> &append(const T &item);
-
- /*!
- * Appends all of the values in \a l to the end of the list and returns a
- * reference to the list.
- */
- List<T> &append(const List<T> &l);
-
- /*!
- * Prepends \a item to the beginning list and returns a reference to the
- * list.
- */
- List<T> &prepend(const T &item);
-
- /*!
- * Prepends all of the items in \a l to the beginning list and returns a
- * reference to the list.
- */
- List<T> &prepend(const List<T> &l);
-
- /*!
- * Clears the list. If auto deletion is enabled and this list contains a
- * pointer type the members are also deleted.
- *
- * \see setAutoDelete()
- */
- List<T> &clear();
-
- /*!
- * Returns the number of elements in the list.
- */
- uint size() const;
- bool isEmpty() const;
-
- /*!
- * Find the first occurrence of \a value.
- */
- Iterator find(const T &value);
-
- /*!
- * Find the first occurrence of \a value.
- */
- ConstIterator find(const T &value) const;
-
- /*!
- * Returns true if the list contains \a value.
- */
- bool contains(const T &value) const;
-
- /*!
- * Erase the item at \a it from the list.
- */
- Iterator erase(Iterator it);
-
- /*!
- * Returns a reference to the first item in the list.
- */
- const T &front() const;
-
- /*!
- * Returns a reference to the first item in the list.
- */
- T &front();
-
- /*!
- * Returns a reference to the last item in the list.
- */
- const T &back() const;
-
- /*!
- * Returns a reference to the last item in the list.
- */
- T &back();
-
- /*!
- * Auto delete the members of the list when the last reference to the list
- * passes out of scope. This will have no effect on lists which do not
- * contain a pointer type.
- *
- * \note This relies on partial template instantiation -- most modern C++
- * compilers should now support this.
- */
- void setAutoDelete(bool autoDelete);
-
- /*!
- * Returns a reference to item \a i in the list.
- *
- * \warning This method is slow. Use iterators to loop through the list.
- */
- T &operator[](uint i);
-
- /*!
- * Returns a const reference to item \a i in the list.
- *
- * \warning This method is slow. Use iterators to loop through the list.
- */
- const T &operator[](uint i) const;
-
- /*!
- * Make a shallow, implicitly shared, copy of \a l. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- List<T> &operator=(const List<T> &l);
-
- /*!
- * Compares this list with \a l and returns true if all of the elements are
- * the same.
- */
- bool operator==(const List<T> &l) const;
-
- protected:
- /*
- * If this List is being shared via implicit sharing, do a deep copy of the
- * data and separate from the shared members. This should be called by all
- * non-const subclass members.
- */
- void detach();
-
- private:
-#ifndef DO_NOT_DOCUMENT
- template <class TP> class ListPrivate;
- ListPrivate<T> *d;
-#endif
- };
-
-}
-
-// Since GCC doesn't support the "export" keyword, we have to include the
-// implementation.
-
-#include "tlist.tcc"
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tlist.tcc b/libs/taglib/taglib/toolkit/tlist.tcc
deleted file mode 100644
index cbc328b8ff..0000000000
--- a/libs/taglib/taglib/toolkit/tlist.tcc
+++ /dev/null
@@ -1,316 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <algorithm>
-
-namespace TagLib {
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-// The functionality of List<T>::setAutoDelete() is implemented here partial
-// template specialization. This is implemented in such a way that calling
-// setAutoDelete() on non-pointer types will simply have no effect.
-
-// A base for the generic and specialized private class types. New
-// non-templatized members should be added here.
-
-class ListPrivateBase : public RefCounter
-{
-public:
- ListPrivateBase() : autoDelete(false) {}
- bool autoDelete;
-};
-
-// A generic implementation
-
-template <class T>
-template <class TP> class List<T>::ListPrivate : public ListPrivateBase
-{
-public:
- ListPrivate() : ListPrivateBase() {}
- ListPrivate(const std::list<TP> &l) : ListPrivateBase(), list(l) {}
- void clear() {
- list.clear();
- }
- std::list<TP> list;
-};
-
-// A partial specialization for all pointer types that implements the
-// setAutoDelete() functionality.
-
-template <class T>
-template <class TP> class List<T>::ListPrivate<TP *> : public ListPrivateBase
-{
-public:
- ListPrivate() : ListPrivateBase() {}
- ListPrivate(const std::list<TP *> &l) : ListPrivateBase(), list(l) {}
- ~ListPrivate() {
- clear();
- }
- void clear() {
- if(autoDelete) {
- typename std::list<TP *>::const_iterator it = list.begin();
- for(; it != list.end(); ++it)
- delete *it;
- }
- list.clear();
- }
- std::list<TP *> list;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-template <class T>
-List<T>::List()
-{
- d = new ListPrivate<T>;
-}
-
-template <class T>
-List<T>::List(const List<T> &l) : d(l.d)
-{
- d->ref();
-}
-
-template <class T>
-List<T>::~List()
-{
- if(d->deref())
- delete d;
-}
-
-template <class T>
-typename List<T>::Iterator List<T>::begin()
-{
- detach();
- return d->list.begin();
-}
-
-template <class T>
-typename List<T>::ConstIterator List<T>::begin() const
-{
- return d->list.begin();
-}
-
-template <class T>
-typename List<T>::Iterator List<T>::end()
-{
- detach();
- return d->list.end();
-}
-
-template <class T>
-typename List<T>::ConstIterator List<T>::end() const
-{
- return d->list.end();
-}
-
-template <class T>
-typename List<T>::Iterator List<T>::insert(Iterator it, const T &item)
-{
- detach();
- return d->list.insert(it, item);
-}
-
-template <class T>
-List<T> &List<T>::sortedInsert(const T &value, bool unique)
-{
- detach();
- Iterator it = begin();
- while(it != end() && *it < value)
- ++it;
- if(unique && it != end() && *it == value)
- return *this;
- insert(it, value);
- return *this;
-}
-
-template <class T>
-List<T> &List<T>::append(const T &item)
-{
- detach();
- d->list.push_back(item);
- return *this;
-}
-
-template <class T>
-List<T> &List<T>::append(const List<T> &l)
-{
- detach();
- d->list.insert(d->list.end(), l.begin(), l.end());
- return *this;
-}
-
-template <class T>
-List<T> &List<T>::prepend(const T &item)
-{
- detach();
- d->list.push_front(item);
- return *this;
-}
-
-template <class T>
-List<T> &List<T>::prepend(const List<T> &l)
-{
- detach();
- d->list.insert(d->list.begin(), l.begin(), l.end());
- return *this;
-}
-
-template <class T>
-List<T> &List<T>::clear()
-{
- detach();
- d->clear();
- return *this;
-}
-
-template <class T>
-TagLib::uint List<T>::size() const
-{
- return d->list.size();
-}
-
-template <class T>
-bool List<T>::isEmpty() const
-{
- return d->list.empty();
-}
-
-template <class T>
-typename List<T>::Iterator List<T>::find(const T &value)
-{
- return std::find(d->list.begin(), d->list.end(), value);
-}
-
-template <class T>
-typename List<T>::ConstIterator List<T>::find(const T &value) const
-{
- return std::find(d->list.begin(), d->list.end(), value);
-}
-
-template <class T>
-bool List<T>::contains(const T &value) const
-{
- return std::find(d->list.begin(), d->list.end(), value) != d->list.end();
-}
-
-template <class T>
-typename List<T>::Iterator List<T>::erase(Iterator it)
-{
- return d->list.erase(it);
-}
-
-template <class T>
-const T &List<T>::front() const
-{
- return d->list.front();
-}
-
-template <class T>
-T &List<T>::front()
-{
- detach();
- return d->list.front();
-}
-
-template <class T>
-const T &List<T>::back() const
-{
- return d->list.back();
-}
-
-template <class T>
-void List<T>::setAutoDelete(bool autoDelete)
-{
- d->autoDelete = autoDelete;
-}
-
-template <class T>
-T &List<T>::back()
-{
- detach();
- return d->list.back();
-}
-
-template <class T>
-T &List<T>::operator[](uint i)
-{
- Iterator it = d->list.begin();
-
- for(uint j = 0; j < i; j++)
- ++it;
-
- return *it;
-}
-
-template <class T>
-const T &List<T>::operator[](uint i) const
-{
- ConstIterator it = d->list.begin();
-
- for(uint j = 0; j < i; j++)
- ++it;
-
- return *it;
-}
-
-template <class T>
-List<T> &List<T>::operator=(const List<T> &l)
-{
- if(&l == this)
- return *this;
-
- if(d->deref())
- delete d;
- d = l.d;
- d->ref();
- return *this;
-}
-
-template <class T>
-bool List<T>::operator==(const List<T> &l) const
-{
- return d->list == l.d->list;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-template <class T>
-void List<T>::detach()
-{
- if(d->count() > 1) {
- d->deref();
- d = new ListPrivate<T>(d->list);
- }
-}
-
-} // namespace TagLib
diff --git a/libs/taglib/taglib/toolkit/tmap.h b/libs/taglib/taglib/toolkit/tmap.h
deleted file mode 100644
index 3551b19d53..0000000000
--- a/libs/taglib/taglib/toolkit/tmap.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_MAP_H
-#define TAGLIB_MAP_H
-
-#include <map>
-using namespace std;
-
-#include "taglib.h"
-
-namespace TagLib {
-
- //! A generic, implicitly shared map.
-
- /*!
- * This implements a standard map container that associates a key with a value
- * and has fast key-based lookups. This map is also implicitly shared making
- * it suitable for pass-by-value usage.
- */
-
- template <class Key, class T> class Map
- {
- public:
-#ifndef DO_NOT_DOCUMENT
-#ifdef WANT_CLASS_INSTANTIATION_OF_MAP
- // Some STL implementations get snippy over the use of the
- // class keyword to distinguish different templates; Sun Studio
- // in particular finds multiple specializations in certain rare
- // cases and complains about that. GCC doesn't seem to mind,
- // and uses the typedefs further below without the class keyword.
- // Not all the specializations of Map can use the class keyword
- // (when T is not actually a class type), so don't apply this
- // generally.
- typedef typename std::map<class Key, class T>::iterator Iterator;
- typedef typename std::map<class Key, class T>::const_iterator ConstIterator;
-#else
- typedef typename std::map<Key, T>::iterator Iterator;
- typedef typename std::map<Key, T>::const_iterator ConstIterator;
-#endif
-#endif
-
- /*!
- * Constructs an empty Map.
- */
- Map();
-
- /*!
- * Make a shallow, implicitly shared, copy of \a m. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- Map(const Map<Key, T> &m);
-
- /*!
- * Destroys this instance of the Map.
- */
- virtual ~Map();
-
- /*!
- * Returns an STL style iterator to the beginning of the map. See
- * std::map::iterator for the semantics.
- */
- Iterator begin();
-
- /*!
- * Returns an STL style iterator to the beginning of the map. See
- * std::map::const_iterator for the semantics.
- */
- ConstIterator begin() const;
-
- /*!
- * Returns an STL style iterator to the end of the map. See
- * std::map::iterator for the semantics.
- */
- Iterator end();
-
- /*!
- * Returns an STL style iterator to the end of the map. See
- * std::map::const_iterator for the semantics.
- */
- ConstIterator end() const;
-
- /*!
- * Inserts \a value under \a key in the map. If a value for \a key already
- * exists it will be overwritten.
- */
- Map<Key, T> &insert(const Key &key, const T &value);
-
- /*!
- * Removes all of the elements from elements from the map. This however
- * will not delete pointers if the mapped type is a pointer type.
- */
- Map<Key, T> &clear();
-
- /*!
- * The number of elements in the map.
- *
- * \see isEmpty()
- */
- uint size() const;
-
- /*!
- * Returns true if the map is empty.
- *
- * \see size()
- */
- bool isEmpty() const;
-
- /*!
- * Find the first occurrence of \a key.
- */
- Iterator find(const Key &key);
-
- /*!
- * Find the first occurrence of \a key.
- */
- ConstIterator find(const Key &key) const;
-
- /*!
- * Returns true if the map contains an instance of \a key.
- */
- bool contains(const Key &key) const;
-
- /*!
- * Erase the item at \a it from the list.
- */
- Map<Key, T> &erase(Iterator it);
-
- /*!
- * Erase the item with \a key from the list.
- */
- Map<Key, T> &erase(const Key &key);
-
- /*!
- * Returns a reference to the value associated with \a key.
- *
- * \note This has undefined behavior if the key is not present in the map.
- */
- const T &operator[](const Key &key) const;
-
- /*!
- * Returns a reference to the value associated with \a key.
- *
- * \note This has undefined behavior if the key is not present in the map.
- */
- T &operator[](const Key &key);
-
- /*!
- * Make a shallow, implicitly shared, copy of \a m. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- Map<Key, T> &operator=(const Map<Key, T> &m);
-
- protected:
- /*
- * If this List is being shared via implicit sharing, do a deep copy of the
- * data and separate from the shared members. This should be called by all
- * non-const subclass members.
- */
- void detach();
-
- private:
-#ifndef DO_NOT_DOCUMENT
- template <class KeyP, class TP> class MapPrivate;
- MapPrivate<Key, T> *d;
-#endif
- };
-
-}
-
-// Since GCC doesn't support the "export" keyword, we have to include the
-// implementation.
-
-#include "tmap.tcc"
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tmap.tcc b/libs/taglib/taglib/toolkit/tmap.tcc
deleted file mode 100644
index 6e689d36ab..0000000000
--- a/libs/taglib/taglib/toolkit/tmap.tcc
+++ /dev/null
@@ -1,196 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-namespace TagLib {
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-template <class Key, class T>
-template <class KeyP, class TP>
-class Map<Key, T>::MapPrivate : public RefCounter
-{
-public:
- MapPrivate() : RefCounter() {}
-#ifdef WANT_CLASS_INSTANTIATION_OF_MAP
- MapPrivate(const std::map<class KeyP, class TP>& m) : RefCounter(), map(m) {}
- std::map<class KeyP, class TP> map;
-#else
- MapPrivate(const std::map<KeyP, TP>& m) : RefCounter(), map(m) {}
- std::map<KeyP, TP> map;
-#endif
-};
-
-template <class Key, class T>
-Map<Key, T>::Map()
-{
- d = new MapPrivate<Key, T>;
-}
-
-template <class Key, class T>
-Map<Key, T>::Map(const Map<Key, T> &m) : d(m.d)
-{
- d->ref();
-}
-
-template <class Key, class T>
-Map<Key, T>::~Map()
-{
- if(d->deref())
- delete(d);
-}
-
-template <class Key, class T>
-typename Map<Key, T>::Iterator Map<Key, T>::begin()
-{
- detach();
- return d->map.begin();
-}
-
-template <class Key, class T>
-typename Map<Key, T>::ConstIterator Map<Key, T>::begin() const
-{
- return d->map.begin();
-}
-
-template <class Key, class T>
-typename Map<Key, T>::Iterator Map<Key, T>::end()
-{
- detach();
- return d->map.end();
-}
-
-template <class Key, class T>
-typename Map<Key, T>::ConstIterator Map<Key, T>::end() const
-{
- return d->map.end();
-}
-
-template <class Key, class T>
-Map<Key, T> &Map<Key, T>::insert(const Key &key, const T &value)
-{
- detach();
- d->map[key] = value;
- return *this;
-}
-
-template <class Key, class T>
-Map<Key, T> &Map<Key, T>::clear()
-{
- detach();
- d->map.clear();
- return *this;
-}
-
-template <class Key, class T>
-bool Map<Key, T>::isEmpty() const
-{
- return d->map.empty();
-}
-
-template <class Key, class T>
-typename Map<Key, T>::Iterator Map<Key, T>::find(const Key &key)
-{
- detach();
- return d->map.find(key);
-}
-
-template <class Key, class T>
-typename Map<Key,T>::ConstIterator Map<Key, T>::find(const Key &key) const
-{
- return d->map.find(key);
-}
-
-template <class Key, class T>
-bool Map<Key, T>::contains(const Key &key) const
-{
- return d->map.find(key) != d->map.end();
-}
-
-template <class Key, class T>
-Map<Key, T> &Map<Key,T>::erase(Iterator it)
-{
- detach();
- d->map.erase(it);
- return *this;
-}
-
-template <class Key, class T>
-Map<Key, T> &Map<Key,T>::erase(const Key &key)
-{
- detach();
- Iterator it = d->map.find(key);
- if(it != d->map.end())
- d->map.erase(it);
- return *this;
-}
-
-template <class Key, class T>
-TagLib::uint Map<Key, T>::size() const
-{
- return d->map.size();
-}
-
-template <class Key, class T>
-const T &Map<Key, T>::operator[](const Key &key) const
-{
- return d->map[key];
-}
-
-template <class Key, class T>
-T &Map<Key, T>::operator[](const Key &key)
-{
- detach();
- return d->map[key];
-}
-
-template <class Key, class T>
-Map<Key, T> &Map<Key, T>::operator=(const Map<Key, T> &m)
-{
- if(&m == this)
- return *this;
-
- if(d->deref())
- delete(d);
- d = m.d;
- d->ref();
- return *this;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-template <class Key, class T>
-void Map<Key, T>::detach()
-{
- if(d->count() > 1) {
- d->deref();
- d = new MapPrivate<Key, T>(d->map);
- }
-}
-
-} // namespace TagLib
diff --git a/libs/taglib/taglib/toolkit/tstring.cpp b/libs/taglib/taglib/toolkit/tstring.cpp
deleted file mode 100644
index 6611e7cdca..0000000000
--- a/libs/taglib/taglib/toolkit/tstring.cpp
+++ /dev/null
@@ -1,788 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tstring.h"
-#include "unicode.h"
-#include "tdebug.h"
-
-#include <iostream>
-
-#include <string.h>
-
-namespace TagLib {
-
- inline unsigned short byteSwap(unsigned short x)
- {
- return (((x) >> 8) & 0xff) | (((x) & 0xff) << 8);
- }
-
- inline unsigned short combine(unsigned char c1, unsigned char c2)
- {
- return (c1 << 8) | c2;
- }
-}
-
-using namespace TagLib;
-
-class String::StringPrivate : public RefCounter
-{
-public:
- StringPrivate(const wstring &s) :
- RefCounter(),
- data(s),
- CString(0) {}
-
- StringPrivate() :
- RefCounter(),
- CString(0) {}
-
- ~StringPrivate() {
- delete [] CString;
- }
-
- wstring data;
-
- /*!
- * This is only used to hold the a pointer to the most recent value of
- * toCString.
- */
- char *CString;
-};
-
-String String::null;
-
-////////////////////////////////////////////////////////////////////////////////
-
-String::String()
-{
- d = new StringPrivate;
-}
-
-String::String(const String &s) : d(s.d)
-{
- d->ref();
-}
-
-String::String(const std::string &s, Type t)
-{
- d = new StringPrivate;
-
- if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
- debug("String::String() -- A std::string should not contain UTF16.");
- return;
- }
-
- int length = s.length();
- d->data.resize(length);
- wstring::iterator targetIt = d->data.begin();
-
- for(std::string::const_iterator it = s.begin(); it != s.end(); it++) {
- *targetIt = uchar(*it);
- ++targetIt;
- }
-
- prepare(t);
-}
-
-String::String(const wstring &s, Type t)
-{
- d = new StringPrivate(s);
- prepare(t);
-}
-
-String::String(const wchar_t *s, Type t)
-{
- d = new StringPrivate(s);
- prepare(t);
-}
-
-String::String(const char *s, Type t)
-{
- d = new StringPrivate;
-
- if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
- debug("String::String() -- A const char * should not contain UTF16.");
- return;
- }
-
- int length = ::strlen(s);
- d->data.resize(length);
-
- wstring::iterator targetIt = d->data.begin();
-
- for(int i = 0; i < length; i++) {
- *targetIt = uchar(s[i]);
- ++targetIt;
- }
-
- prepare(t);
-}
-
-String::String(wchar_t c, Type t)
-{
- d = new StringPrivate;
- d->data += c;
- prepare(t);
-}
-
-String::String(char c, Type t)
-{
- d = new StringPrivate;
-
- if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
- debug("String::String() -- A std::string should not contain UTF16.");
- return;
- }
-
- d->data += uchar(c);
- prepare(t);
-}
-
-String::String(const ByteVector &v, Type t)
-{
- d = new StringPrivate;
-
- if(v.isEmpty())
- return;
-
- if(t == Latin1 || t == UTF8) {
-
- int length = 0;
- d->data.resize(v.size());
- wstring::iterator targetIt = d->data.begin();
- for(ByteVector::ConstIterator it = v.begin(); it != v.end() && (*it); ++it) {
- *targetIt = uchar(*it);
- ++targetIt;
- ++length;
- }
- d->data.resize(length);
- }
- else {
- d->data.resize(v.size() / 2);
- wstring::iterator targetIt = d->data.begin();
-
- for(ByteVector::ConstIterator it = v.begin();
- it != v.end() && it + 1 != v.end() && combine(*it, *(it + 1));
- it += 2)
- {
- *targetIt = combine(*it, *(it + 1));
- ++targetIt;
- }
- }
- prepare(t);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-String::~String()
-{
- if(d->deref())
- delete d;
-}
-
-std::string String::to8Bit(bool unicode) const
-{
- std::string s;
- s.resize(d->data.size());
-
- if(!unicode) {
- std::string::iterator targetIt = s.begin();
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
- *targetIt = char(*it);
- ++targetIt;
- }
- return s;
- }
-
- const int outputBufferSize = d->data.size() * 3 + 1;
-
- Unicode::UTF16 *sourceBuffer = new Unicode::UTF16[d->data.size() + 1];
- Unicode::UTF8 *targetBuffer = new Unicode::UTF8[outputBufferSize];
-
- for(unsigned int i = 0; i < d->data.size(); i++)
- sourceBuffer[i] = Unicode::UTF16(d->data[i]);
-
- const Unicode::UTF16 *source = sourceBuffer;
- Unicode::UTF8 *target = targetBuffer;
-
- Unicode::ConversionResult result =
- Unicode::ConvertUTF16toUTF8(&source, sourceBuffer + d->data.size(),
- &target, targetBuffer + outputBufferSize,
- Unicode::lenientConversion);
-
- if(result != Unicode::conversionOK) {
- debug("String::to8Bit() - Unicode conversion error.");
- }
-
- int newSize = target - targetBuffer;
- s.resize(newSize);
- targetBuffer[newSize] = 0;
-
- s = (char *) targetBuffer;
-
- delete [] sourceBuffer;
- delete [] targetBuffer;
-
- return s;
-}
-
-TagLib::wstring String::toWString() const
-{
- return d->data;
-}
-
-const char *String::toCString(bool unicode) const
-{
- delete [] d->CString;
-
- std::string buffer = to8Bit(unicode);
- d->CString = new char[buffer.size() + 1];
- strcpy(d->CString, buffer.c_str());
-
- return d->CString;
-}
-
-String::Iterator String::begin()
-{
- return d->data.begin();
-}
-
-String::ConstIterator String::begin() const
-{
- return d->data.begin();
-}
-
-String::Iterator String::end()
-{
- return d->data.end();
-}
-
-String::ConstIterator String::end() const
-{
- return d->data.end();
-}
-
-int String::find(const String &s, int offset) const
-{
- wstring::size_type position = d->data.find(s.d->data, offset);
-
- if(position != wstring::npos)
- return position;
- else
- return -1;
-}
-
-bool String::startsWith(const String &s) const
-{
- if(s.length() > length())
- return false;
-
- return substr(0, s.length()) == s;
-}
-
-String String::substr(uint position, uint n) const
-{
- if(n > position + d->data.size())
- n = d->data.size() - position;
-
- String s;
- s.d->data = d->data.substr(position, n);
- return s;
-}
-
-String &String::append(const String &s)
-{
- detach();
- d->data += s.d->data;
- return *this;
-}
-
-String String::upper() const
-{
- String s;
-
- static int shift = 'A' - 'a';
-
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); ++it) {
- if(*it >= 'a' && *it <= 'z')
- s.d->data.push_back(*it + shift);
- else
- s.d->data.push_back(*it);
- }
-
- return s;
-}
-
-TagLib::uint String::size() const
-{
- return d->data.size();
-}
-
-TagLib::uint String::length() const
-{
- return size();
-}
-
-bool String::isEmpty() const
-{
- return d->data.size() == 0;
-}
-
-bool String::isNull() const
-{
- return d == null.d;
-}
-
-ByteVector String::data(Type t) const
-{
- ByteVector v;
-
- switch(t) {
-
- case Latin1:
- {
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++)
- v.append(char(*it));
- break;
- }
- case UTF8:
- {
- std::string s = to8Bit(true);
- v.setData(s.c_str(), s.length());
- break;
- }
- case UTF16:
- {
- // Assume that if we're doing UTF16 and not UTF16BE that we want little
- // endian encoding. (Byte Order Mark)
-
- v.append(char(0xff));
- v.append(char(0xfe));
-
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
-
- char c1 = *it & 0xff;
- char c2 = *it >> 8;
-
- v.append(c1);
- v.append(c2);
- }
- break;
- }
- case UTF16BE:
- {
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
-
- char c1 = *it >> 8;
- char c2 = *it & 0xff;
-
- v.append(c1);
- v.append(c2);
- }
- break;
- }
- case UTF16LE:
- {
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
-
- char c1 = *it & 0xff;
- char c2 = *it >> 8;
-
- v.append(c1);
- v.append(c2);
- }
- break;
- }
- }
-
- return v;
-}
-
-int String::toInt() const
-{
- int value = 0;
-
- bool negative = d->data[0] == '-';
- uint i = negative ? 1 : 0;
-
- for(; i < d->data.size() && d->data[i] >= '0' && d->data[i] <= '9'; i++)
- value = value * 10 + (d->data[i] - '0');
-
- if(negative)
- value = value * -1;
-
- return value;
-}
-
-String String::stripWhiteSpace() const
-{
- wstring::const_iterator begin = d->data.begin();
- wstring::const_iterator end = d->data.end();
-
- while(begin != end &&
- (*begin == '\t' || *begin == '\n' || *begin == '\f' ||
- *begin == '\r' || *begin == ' '))
- {
- ++begin;
- }
-
- if(begin == end)
- return null;
-
- // There must be at least one non-whitespace character here for us to have
- // gotten this far, so we should be safe not doing bounds checking.
-
- do {
- --end;
- } while(*end == '\t' || *end == '\n' ||
- *end == '\f' || *end == '\r' || *end == ' ');
-
- return String(wstring(begin, end + 1));
-}
-
-bool String::isLatin1() const
-{
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
- if(*it >= 256)
- return false;
- }
- return true;
-}
-
-bool String::isAscii() const
-{
- for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
- if(*it >= 128)
- return false;
- }
- return true;
-}
-
-String String::number(int n) // static
-{
- if(n == 0)
- return String("0");
-
- String charStack;
-
- bool negative = n < 0;
-
- if(negative)
- n = n * -1;
-
- while(n > 0) {
- int remainder = n % 10;
- charStack += char(remainder + '0');
- n = (n - remainder) / 10;
- }
-
- String s;
-
- if(negative)
- s += '-';
-
- for(int i = charStack.d->data.size() - 1; i >= 0; i--)
- s += charStack.d->data[i];
-
- return s;
-}
-
-TagLib::wchar &String::operator[](int i)
-{
- return d->data[i];
-}
-
-const TagLib::wchar &String::operator[](int i) const
-{
- return d->data[i];
-}
-
-bool String::operator==(const String &s) const
-{
- return d == s.d || d->data == s.d->data;
-}
-
-String &String::operator+=(const String &s)
-{
- detach();
-
- d->data += s.d->data;
- return *this;
-}
-
-String &String::operator+=(const wchar_t *s)
-{
- detach();
-
- d->data += s;
- return *this;
-}
-
-String &String::operator+=(const char *s)
-{
- detach();
-
- for(int i = 0; s[i] != 0; i++)
- d->data += uchar(s[i]);
- return *this;
-}
-
-String &String::operator+=(wchar_t c)
-{
- detach();
-
- d->data += c;
- return *this;
-}
-
-String &String::operator+=(char c)
-{
- d->data += uchar(c);
- return *this;
-}
-
-String &String::operator=(const String &s)
-{
- if(&s == this)
- return *this;
-
- if(d->deref())
- delete d;
- d = s.d;
- d->ref();
- return *this;
-}
-
-String &String::operator=(const std::string &s)
-{
- if(d->deref())
- delete d;
-
- d = new StringPrivate;
-
- d->data.resize(s.size());
-
- wstring::iterator targetIt = d->data.begin();
- for(std::string::const_iterator it = s.begin(); it != s.end(); it++) {
- *targetIt = uchar(*it);
- ++targetIt;
- }
-
- return *this;
-}
-
-String &String::operator=(const wstring &s)
-{
- if(d->deref())
- delete d;
- d = new StringPrivate(s);
- return *this;
-}
-
-String &String::operator=(const wchar_t *s)
-{
- if(d->deref())
- delete d;
- d = new StringPrivate(s);
- return *this;
-}
-
-String &String::operator=(char c)
-{
- if(d->deref())
- delete d;
- d = new StringPrivate;
- d->data += uchar(c);
- return *this;
-}
-
-String &String::operator=(wchar_t c)
-{
- if(d->deref())
- delete d;
- d = new StringPrivate;
- d->data += c;
- return *this;
-}
-
-String &String::operator=(const char *s)
-{
- if(d->deref())
- delete d;
-
- d = new StringPrivate;
-
- int length = ::strlen(s);
- d->data.resize(length);
-
- wstring::iterator targetIt = d->data.begin();
- for(int i = 0; i < length; i++) {
- *targetIt = uchar(s[i]);
- ++targetIt;
- }
-
- return *this;
-}
-
-String &String::operator=(const ByteVector &v)
-{
- if(d->deref())
- delete d;
-
- d = new StringPrivate;
- d->data.resize(v.size());
- wstring::iterator targetIt = d->data.begin();
-
- uint i = 0;
-
- for(ByteVector::ConstIterator it = v.begin(); it != v.end() && (*it); ++it) {
- *targetIt = uchar(*it);
- ++targetIt;
- ++i;
- }
-
- // If we hit a null in the ByteVector, shrink the string again.
-
- d->data.resize(i);
-
- return *this;
-}
-
-bool String::operator<(const String &s) const
-{
- return d->data < s.d->data;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// protected members
-////////////////////////////////////////////////////////////////////////////////
-
-void String::detach()
-{
- if(d->count() > 1) {
- d->deref();
- d = new StringPrivate(d->data);
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void String::prepare(Type t)
-{
- switch(t) {
- case UTF16:
- {
- if(d->data.size() >= 1 && (d->data[0] == 0xfeff || d->data[0] == 0xfffe)) {
- bool swap = d->data[0] != 0xfeff;
- d->data.erase(d->data.begin(), d->data.begin() + 1);
- if(swap) {
- for(uint i = 0; i < d->data.size(); i++)
- d->data[i] = byteSwap((unsigned short)d->data[i]);
- }
- }
- else {
- debug("String::prepare() - Invalid UTF16 string.");
- d->data.erase(d->data.begin(), d->data.end());
- }
- break;
- }
- case UTF8:
- {
- int bufferSize = d->data.size() + 1;
- Unicode::UTF8 *sourceBuffer = new Unicode::UTF8[bufferSize];
- Unicode::UTF16 *targetBuffer = new Unicode::UTF16[bufferSize];
-
- unsigned int i = 0;
- for(; i < d->data.size(); i++)
- sourceBuffer[i] = Unicode::UTF8(d->data[i]);
- sourceBuffer[i] = 0;
-
- const Unicode::UTF8 *source = sourceBuffer;
- Unicode::UTF16 *target = targetBuffer;
-
- Unicode::ConversionResult result =
- Unicode::ConvertUTF8toUTF16(&source, sourceBuffer + bufferSize,
- &target, targetBuffer + bufferSize,
- Unicode::lenientConversion);
-
- if(result != Unicode::conversionOK) {
- debug("String::prepare() - Unicode conversion error.");
- }
-
-
- int newSize = target != targetBuffer ? target - targetBuffer - 1 : 0;
- d->data.resize(newSize);
-
- for(int i = 0; i < newSize; i++)
- d->data[i] = targetBuffer[i];
-
- delete [] sourceBuffer;
- delete [] targetBuffer;
-
- break;
- }
- case UTF16LE:
- {
- for(uint i = 0; i < d->data.size(); i++)
- d->data[i] = byteSwap((unsigned short)d->data[i]);
- break;
- }
- default:
- break;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// related functions
-////////////////////////////////////////////////////////////////////////////////
-
-const TagLib::String operator+(const TagLib::String &s1, const TagLib::String &s2)
-{
- String s(s1);
- s.append(s2);
- return s;
-}
-
-const TagLib::String operator+(const char *s1, const TagLib::String &s2)
-{
- String s(s1);
- s.append(s2);
- return s;
-}
-
-const TagLib::String operator+(const TagLib::String &s1, const char *s2)
-{
- String s(s1);
- s.append(s2);
- return s;
-}
-
-std::ostream &operator<<(std::ostream &s, const String &str)
-{
- s << str.to8Bit();
- return s;
-}
diff --git a/libs/taglib/taglib/toolkit/tstring.h b/libs/taglib/taglib/toolkit/tstring.h
deleted file mode 100644
index 660023bada..0000000000
--- a/libs/taglib/taglib/toolkit/tstring.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_STRING_H
-#define TAGLIB_STRING_H
-
-#include "taglib_export.h"
-#include "taglib.h"
-#include "tbytevector.h"
-
-#include <string>
-#include <ostream>
-
-/*!
- * \relates TagLib::String
- *
- * Converts a TagLib::String to a QString without a requirement to link to Qt.
- */
-#define QStringToTString(s) TagLib::String(s.utf8().data(), TagLib::String::UTF8)
-
-/*!
- * \relates TagLib::String
- *
- * Converts a TagLib::String to a QString without a requirement to link to Qt.
- */
-#define TStringToQString(s) QString::fromUtf8(s.toCString(true))
-
-namespace TagLib {
-
- //! A \e wide string class suitable for unicode.
-
- /*!
- * This is an implicitly shared \e wide string. For storage it uses
- * TagLib::wstring, but as this is an <i>implementation detail</i> this of
- * course could change. Strings are stored internally as UTF-16BE. (Without
- * the BOM (Byte Order Mark)
- *
- * The use of implicit sharing means that copying a string is cheap, the only
- * \e cost comes into play when the copy is modified. Prior to that the string
- * just has a pointer to the data of the \e parent String. This also makes
- * this class suitable as a function return type.
- *
- * In addition to adding implicit sharing, this class keeps track of four
- * possible encodings, which are the four supported by the ID3v2 standard.
- */
-
- class TAGLIB_EXPORT String
- {
- public:
-
-#ifndef DO_NOT_DOCUMENT
- typedef std::basic_string<wchar>::iterator Iterator;
- typedef std::basic_string<wchar>::const_iterator ConstIterator;
-#endif
-
- /**
- * The four types of string encodings supported by the ID3v2 specification.
- * ID3v1 is assumed to be Latin1 and Ogg Vorbis comments use UTF8.
- */
- enum Type {
- /*!
- * IS08859-1, or <i>Latin1</i> encoding. 8 bit characters.
- */
- Latin1 = 0,
- /*!
- * UTF16 with a <i>byte order mark</i>. 16 bit characters.
- */
- UTF16 = 1,
- /*!
- * UTF16 <i>big endian</i>. 16 bit characters. This is the encoding used
- * internally by TagLib.
- */
- UTF16BE = 2,
- /*!
- * UTF8 encoding. Characters are usually 8 bits but can be up to 32.
- */
- UTF8 = 3,
- /*!
- * UTF16 <i>little endian</i>. 16 bit characters.
- */
- UTF16LE = 4
- };
-
- /*!
- * Constructs an empty String.
- */
- String();
-
- /*!
- * Make a shallow, implicitly shared, copy of \a s. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- String(const String &s);
-
- /*!
- * Makes a deep copy of the data in \a s.
- *
- * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
- * used with other codecs it will simply print a warning and exit.
- */
- String(const std::string &s, Type t = Latin1);
-
- /*!
- * Makes a deep copy of the data in \a s.
- */
- String(const wstring &s, Type t = UTF16BE);
-
- /*!
- * Makes a deep copy of the data in \a s.
- */
- String(const wchar_t *s, Type t = UTF16BE);
-
- /*!
- * Makes a deep copy of the data in \a c.
- *
- * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
- * used with other codecs it will simply print a warning and exit.
- */
- String(char c, Type t = Latin1);
-
- /*!
- * Makes a deep copy of the data in \a c.
- */
- String(wchar_t c, Type t = Latin1);
-
-
- /*!
- * Makes a deep copy of the data in \a s.
- *
- * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
- * used with other codecs it will simply print a warning and exit.
- */
- String(const char *s, Type t = Latin1);
-
- /*!
- * Makes a deep copy of the data in \a s.
- *
- * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
- * used with other codecs it will simply print a warning and exit.
- */
- String(const ByteVector &v, Type t = Latin1);
-
- /*!
- * Destroys this String instance.
- */
- virtual ~String();
-
- /*!
- * If \a unicode if false (the default) this will return a \e Latin1 encoded
- * std::string. If it is true the returned std::wstring will be UTF-8
- * encoded.
- */
- std::string to8Bit(bool unicode = false) const;
-
- /*!
- * Returns a wstring version of the TagLib string as a wide string.
- */
- wstring toWString() const;
-
- /*!
- * Creates and returns a C-String based on the data. This string is still
- * owned by the String (class) and as such should not be deleted by the user.
- *
- * If \a unicode if false (the default) this string will be encoded in
- * \e Latin1. If it is true the returned C-String will be UTF-8 encoded.
- *
- * This string remains valid until the String instance is destroyed or
- * another export method is called.
- *
- * \warning This however has the side effect that this C-String will remain
- * in memory <b>in addition to</b> other memory that is consumed by the
- * String instance. So, this method should not be used on large strings or
- * where memory is critical.
- */
- const char *toCString(bool unicode = false) const;
-
- /*!
- * Returns an iterator pointing to the beginning of the string.
- */
- Iterator begin();
-
- /*!
- * Returns a const iterator pointing to the beginning of the string.
- */
- ConstIterator begin() const;
-
- /*!
- * Returns an iterator pointing to the end of the string (the position
- * after the last character).
- */
- Iterator end();
-
- /*!
- * Returns a const iterator pointing to the end of the string (the position
- * after the last character).
- */
- ConstIterator end() const;
-
- /*!
- * Finds the first occurrence of pattern \a s in this string starting from
- * \a offset. If the pattern is not found, -1 is returned.
- */
- int find(const String &s, int offset = 0) const;
-
- /*!
- * Returns true if the strings starts with the substring \a s.
- */
- bool startsWith(const String &s) const;
-
- /*!
- * Extract a substring from this string starting at \a position and
- * continuing for \a n characters.
- */
- String substr(uint position, uint n = 0xffffffff) const;
-
- /*!
- * Append \a s to the current string and return a reference to the current
- * string.
- */
- String &append(const String &s);
-
- /*!
- * Returns an upper case version of the string.
- *
- * \warning This only works for the characters in US-ASCII, i.e. A-Z.
- */
- String upper() const;
-
- /*!
- * Returns the size of the string.
- */
- uint size() const;
-
- /*!
- * Returns the length of the string. Equivalent to size().
- */
- uint length() const;
-
- /*!
- * Returns true if the string is empty.
- *
- * \see isNull()
- */
- bool isEmpty() const;
-
- /*!
- * Returns true if this string is null -- i.e. it is a copy of the
- * String::null string.
- *
- * \note A string can be empty and not null.
- * \see isEmpty()
- */
- bool isNull() const;
-
- /*!
- * Returns a ByteVector containing the string's data. If \a t is Latin1 or
- * UTF8, this will return a vector of 8 bit characters, otherwise it will use
- * 16 bit characters.
- */
- ByteVector data(Type t) const;
-
- /*!
- * Convert the string to an integer.
- */
- int toInt() const;
-
- /*!
- * Returns a string with the leading and trailing whitespace stripped.
- */
- String stripWhiteSpace() const;
-
- /*!
- * Returns true if the file only uses characters required by Latin1.
- */
- bool isLatin1() const;
-
- /*!
- * Returns true if the file only uses characters required by (7-bit) ASCII.
- */
- bool isAscii() const;
-
- /*!
- * Converts the base-10 integer \a n to a string.
- */
- static String number(int n);
-
- /*!
- * Returns a reference to the character at position \a i.
- */
- wchar &operator[](int i);
-
- /*!
- * Returns a const reference to the character at position \a i.
- */
- const wchar &operator[](int i) const;
-
- /*!
- * Compares each character of the String with each character of \a s and
- * returns true if the strings match.
- */
- bool operator==(const String &s) const;
-
- /*!
- * Appends \a s to the end of the String.
- */
- String &operator+=(const String &s);
-
- /*!
- * Appends \a s to the end of the String.
- */
- String &operator+=(const wchar_t* s);
-
- /*!
- * Appends \a s to the end of the String.
- */
- String &operator+=(const char* s);
-
- /*!
- * Appends \a s to the end of the String.
- */
- String &operator+=(wchar_t c);
-
- /*!
- * Appends \a c to the end of the String.
- */
- String &operator+=(char c);
-
- /*!
- * Performs a shallow, implicitly shared, copy of \a s, overwriting the
- * String's current data.
- */
- String &operator=(const String &s);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(const std::string &s);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(const wstring &s);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(const wchar_t *s);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(char c);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(wchar_t c);
-
- /*!
- * Performs a deep copy of the data in \a s.
- */
- String &operator=(const char *s);
-
- /*!
- * Performs a deep copy of the data in \a v.
- */
- String &operator=(const ByteVector &v);
-
- /*!
- * To be able to use this class in a Map, this operator needed to be
- * implemented. Returns true if \a s is less than this string in a bytewise
- * comparison.
- */
- bool operator<(const String &s) const;
-
- /*!
- * A null string provided for convenience.
- */
- static String null;
-
- protected:
- /*!
- * If this String is being shared via implicit sharing, do a deep copy of the
- * data and separate from the shared members. This should be called by all
- * non-const subclass members.
- */
- void detach();
-
- private:
- /*!
- * This checks to see if the string is in \e UTF-16 (with BOM) or \e UTF-8
- * format and if so converts it to \e UTF-16BE for internal use. \e Latin1
- * does not require conversion since it is a subset of \e UTF-16BE and
- * \e UTF16-BE requires no conversion since it is used internally.
- */
- void prepare(Type t);
-
- class StringPrivate;
- StringPrivate *d;
- };
-
-}
-
-/*!
- * \relates TagLib::String
- *
- * Concatenates \a s1 and \a s2 and returns the result as a string.
- */
-TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const TagLib::String &s2);
-
-/*!
- * \relates TagLib::String
- *
- * Concatenates \a s1 and \a s2 and returns the result as a string.
- */
-TAGLIB_EXPORT const TagLib::String operator+(const char *s1, const TagLib::String &s2);
-
-/*!
- * \relates TagLib::String
- *
- * Concatenates \a s1 and \a s2 and returns the result as a string.
- */
-TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const char *s2);
-
-
-/*!
- * \relates TagLib::String
- *
- * Send the string to an output stream.
- */
-TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::String &str);
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/tstringlist.cpp b/libs/taglib/taglib/toolkit/tstringlist.cpp
deleted file mode 100644
index 1da3a2921d..0000000000
--- a/libs/taglib/taglib/toolkit/tstringlist.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include "tstringlist.h"
-
-using namespace TagLib;
-
-class StringListPrivate
-{
-
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// static members
-////////////////////////////////////////////////////////////////////////////////
-
-StringList StringList::split(const String &s, const String &pattern)
-{
- StringList l;
-
- int previousOffset = 0;
- for(int offset = s.find(pattern); offset != -1; offset = s.find(pattern, offset + 1)) {
- l.append(s.substr(previousOffset, offset - previousOffset));
- previousOffset = offset + 1;
- }
-
- l.append(s.substr(previousOffset, s.size() - previousOffset));
-
- return l;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-StringList::StringList() : List<String>()
-{
-
-}
-
-StringList::StringList(const StringList &l) : List<String>(l)
-{
-
-}
-
-StringList::StringList(const String &s) : List<String>()
-{
- append(s);
-}
-
-StringList::StringList(const ByteVectorList &bl, String::Type t) : List<String>()
-{
- ByteVectorList::ConstIterator i = bl.begin();
- for(;i != bl.end(); i++) {
- append(String(*i, t));
- }
-}
-
-StringList::~StringList()
-{
-
-}
-
-String StringList::toString(const String &separator) const
-{
- String s;
-
- ConstIterator it = begin();
- ConstIterator itEnd = end();
-
- while(it != itEnd) {
- s += *it;
- it++;
- if(it != itEnd)
- s += separator;
- }
-
- return s;
-}
-
-StringList &StringList::append(const String &s)
-{
- List<String>::append(s);
- return *this;
-}
-
-StringList &StringList::append(const StringList &l)
-{
- List<String>::append(l);
- return *this;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// related functions
-////////////////////////////////////////////////////////////////////////////////
-
-std::ostream &operator<<(std::ostream &s, const StringList &l)
-{
- s << l.toString();
- return s;
-}
diff --git a/libs/taglib/taglib/toolkit/tstringlist.h b/libs/taglib/taglib/toolkit/tstringlist.h
deleted file mode 100644
index 7bb86646f8..0000000000
--- a/libs/taglib/taglib/toolkit/tstringlist.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_STRINGLIST_H
-#define TAGLIB_STRINGLIST_H
-
-#include "tstring.h"
-#include "tlist.h"
-#include "tbytevectorlist.h"
-#include "taglib_export.h"
-
-#include <iostream>
-
-namespace TagLib {
-
- //! A list of strings
-
- /*!
- * This is a spcialization of the List class with some members convention for
- * string operations.
- */
-
- class TAGLIB_EXPORT StringList : public List<String>
- {
- public:
-
- /*!
- * Constructs an empty StringList.
- */
- StringList();
-
- /*!
- * Make a shallow, implicitly shared, copy of \a l. Because this is
- * implicitly shared, this method is lightweight and suitable for
- * pass-by-value usage.
- */
- StringList(const StringList &l);
-
- /*!
- * Constructs a StringList with \a s as a member.
- */
- StringList(const String &s);
-
- /*!
- * Makes a deep copy of the data in \a vl.
- *
- * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
- * used with other codecs it will simply print a warning and exit.
- */
- StringList(const ByteVectorList &vl, String::Type t = String::Latin1);
-
- /*!
- * Destroys this StringList instance.
- */
- virtual ~StringList();
-
- /*!
- * Concatenate the list of strings into one string separated by \a separator.
- */
- String toString(const String &separator = " ") const;
-
- /*!
- * Appends \a s to the end of the list and returns a reference to the
- * list.
- */
- StringList &append(const String &s);
-
- /*!
- * Appends all of the values in \a l to the end of the list and returns a
- * reference to the list.
- */
- StringList &append(const StringList &l);
-
- /*!
- * Splits the String \a s into several strings at \a pattern. This will not include
- * the pattern in the returned strings.
- */
- static StringList split(const String &s, const String &pattern);
-
- private:
- class StringListPrivate;
- StringListPrivate *d;
- };
-
-}
-
-/*!
- * \related TagLib::StringList
- * Send the StringList to an output stream.
- */
-std::ostream &operator<<(std::ostream &s, const TagLib::StringList &l);
-
-#endif
diff --git a/libs/taglib/taglib/toolkit/unicode.cpp b/libs/taglib/taglib/toolkit/unicode.cpp
deleted file mode 100644
index b60264d91b..0000000000
--- a/libs/taglib/taglib/toolkit/unicode.cpp
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * *
- * THIS FILE IS INCLUDED IN TAGLIB, BUT IS NOT COPYRIGHTED BY THE TAGLIB *
- * AUTHORS, NOT PART OF THE TAGLIB API AND COULD GO AWAY AT ANY POINT IN TIME. *
- * AS SUCH IT SHOULD BE CONSIERED FOR INTERNAL USE ONLY. *
- * *
- *******************************************************************************/
-
-/*
- * Copyright 2001 Unicode, Inc.
- *
- * Disclaimer
- *
- * This source code is provided as is by Unicode, Inc. No claims are
- * made as to fitness for any particular purpose. No warranties of any
- * kind are expressed or implied. The recipient agrees to determine
- * applicability of information provided. If this file has been
- * purchased on magnetic or optical media from Unicode, Inc., the
- * sole remedy for any claim will be exchange of defective media
- * within 90 days of receipt.
- *
- * Limitations on Rights to Redistribute This Code
- *
- * Unicode, Inc. hereby grants the right to freely use the information
- * supplied in this file in the creation of products supporting the
- * Unicode Standard, and to make copies of this file in any form
- * for internal or external distribution as long as this notice
- * remains attached.
- */
-
-/*
- * This file has been modified by Scott Wheeler <wheeler@kde.org> to remove
- * the UTF32 conversion functions and to place the appropriate functions
- * in their own C++ namespace.
- */
-
-/* ---------------------------------------------------------------------
-
- Conversions between UTF32, UTF-16, and UTF-8. Source code file.
- Author: Mark E. Davis, 1994.
- Rev History: Rick McGowan, fixes & updates May 2001.
- Sept 2001: fixed const & error conditions per
- mods suggested by S. Parent & A. Lillich.
-
- See the header file "ConvertUTF.h" for complete documentation.
-
------------------------------------------------------------------------- */
-
-
-#include "unicode.h"
-#include <stdio.h>
-
-#define UNI_SUR_HIGH_START (UTF32)0xD800
-#define UNI_SUR_HIGH_END (UTF32)0xDBFF
-#define UNI_SUR_LOW_START (UTF32)0xDC00
-#define UNI_SUR_LOW_END (UTF32)0xDFFF
-#define false 0
-#define true 1
-
-namespace Unicode {
-
-static const int halfShift = 10; /* used for shifting by 10 bits */
-
-static const UTF32 halfBase = 0x0010000UL;
-static const UTF32 halfMask = 0x3FFUL;
-
-/*
- * Index into the table below with the first byte of a UTF-8 sequence to
- * get the number of trailing bytes that are supposed to follow it.
- */
-static const char trailingBytesForUTF8[256] = {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
-};
-
-/*
- * Magic values subtracted from a buffer value during UTF8 conversion.
- * This table contains as many values as there might be trailing bytes
- * in a UTF-8 sequence.
- */
-static const UTF32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL,
- 0x03C82080UL, 0xFA082080UL, 0x82082080UL };
-
-/*
- * Once the bits are split out into bytes of UTF-8, this is a mask OR-ed
- * into the first byte, depending on how many bytes follow. There are
- * as many entries in this table as there are UTF-8 sequence types.
- * (I.e., one byte sequence, two byte... six byte sequence.)
- */
-static const UTF8 firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
-
-/* --------------------------------------------------------------------- */
-
-/* The interface converts a whole buffer to avoid function-call overhead.
- * Constants have been gathered. Loops & conditionals have been removed as
- * much as possible for efficiency, in favor of drop-through switches.
- * (See "Note A" at the bottom of the file for equivalent code.)
- * If your compiler supports it, the "isLegalUTF8" call can be turned
- * into an inline function.
- */
-
-/* --------------------------------------------------------------------- */
-
-ConversionResult ConvertUTF16toUTF8 (
- const UTF16** sourceStart, const UTF16* sourceEnd,
- UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags) {
- ConversionResult result = conversionOK;
- const UTF16* source = *sourceStart;
- UTF8* target = *targetStart;
- while (source < sourceEnd) {
- UTF32 ch;
- unsigned short bytesToWrite = 0;
- const UTF32 byteMask = 0xBF;
- const UTF32 byteMark = 0x80;
- const UTF16* oldSource = source; /* In case we have to back up because of target overflow. */
- ch = *source++;
- /* If we have a surrogate pair, convert to UTF32 first. */
- if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END && source < sourceEnd) {
- UTF32 ch2 = *source;
- if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) {
- ch = ((ch - UNI_SUR_HIGH_START) << halfShift)
- + (ch2 - UNI_SUR_LOW_START) + halfBase;
- ++source;
- } else if (flags == strictConversion) { /* it's an unpaired high surrogate */
- --source; /* return to the illegal value itself */
- result = sourceIllegal;
- break;
- }
- } else if ((flags == strictConversion) && (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END)) {
- --source; /* return to the illegal value itself */
- result = sourceIllegal;
- break;
- }
- /* Figure out how many bytes the result will require */
- if (ch < (UTF32)0x80) { bytesToWrite = 1;
- } else if (ch < (UTF32)0x800) { bytesToWrite = 2;
- } else if (ch < (UTF32)0x10000) { bytesToWrite = 3;
- } else if (ch < (UTF32)0x200000) { bytesToWrite = 4;
- } else { bytesToWrite = 2;
- ch = UNI_REPLACEMENT_CHAR;
- }
- // printf("bytes to write = %i\n", bytesToWrite);
- target += bytesToWrite;
- if (target > targetEnd) {
- source = oldSource; /* Back up source pointer! */
- target -= bytesToWrite; result = targetExhausted; break;
- }
- switch (bytesToWrite) { /* note: everything falls through. */
- case 4: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 3: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 2: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 1: *--target = ch | firstByteMark[bytesToWrite];
- }
- target += bytesToWrite;
- }
- *sourceStart = source;
- *targetStart = target;
- return result;
-}
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Utility routine to tell whether a sequence of bytes is legal UTF-8.
- * This must be called with the length pre-determined by the first byte.
- * If not calling this from ConvertUTF8to*, then the length can be set by:
- * length = trailingBytesForUTF8[*source]+1;
- * and the sequence is illegal right away if there aren't that many bytes
- * available.
- * If presented with a length > 4, this returns false. The Unicode
- * definition of UTF-8 goes up to 4-byte sequences.
- */
-
-static Boolean isLegalUTF8(const UTF8 *source, int length) {
- UTF8 a;
- const UTF8 *srcptr = source+length;
- switch (length) {
- default: return false;
- /* Everything else falls through when "true"... */
- case 4: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false;
- case 3: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false;
- case 2: if ((a = (*--srcptr)) > 0xBF) return false;
- switch (*source) {
- /* no fall-through in this inner switch */
- case 0xE0: if (a < 0xA0) return false; break;
- case 0xF0: if (a < 0x90) return false; break;
- case 0xF4: if (a > 0x8F) return false; break;
- default: if (a < 0x80) return false;
- }
- case 1: if (*source >= 0x80 && *source < 0xC2) return false;
- if (*source > 0xF4) return false;
- }
- return true;
-}
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Exported function to return whether a UTF-8 sequence is legal or not.
- * This is not used here; it's just exported.
- */
-Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd) {
- int length = trailingBytesForUTF8[*source]+1;
- if (source+length > sourceEnd) {
- return false;
- }
- return isLegalUTF8(source, length);
-}
-
-/* --------------------------------------------------------------------- */
-
-ConversionResult ConvertUTF8toUTF16 (
- const UTF8** sourceStart, const UTF8* sourceEnd,
- UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags) {
- ConversionResult result = conversionOK;
- const UTF8* source = *sourceStart;
- UTF16* target = *targetStart;
- while (source < sourceEnd) {
- UTF32 ch = 0;
- unsigned short extraBytesToRead = trailingBytesForUTF8[*source];
- if (source + extraBytesToRead >= sourceEnd) {
- result = sourceExhausted; break;
- }
- /* Do this check whether lenient or strict */
- if (! isLegalUTF8(source, extraBytesToRead+1)) {
- result = sourceIllegal;
- break;
- }
- /*
- * The cases all fall through. See "Note A" below.
- */
- switch (extraBytesToRead) {
- case 3: ch += *source++; ch <<= 6;
- case 2: ch += *source++; ch <<= 6;
- case 1: ch += *source++; ch <<= 6;
- case 0: ch += *source++;
- }
- ch -= offsetsFromUTF8[extraBytesToRead];
-
- if (target >= targetEnd) {
- source -= (extraBytesToRead+1); /* Back up source pointer! */
- result = targetExhausted; break;
- }
- if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */
- if ((flags == strictConversion) && (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END)) {
- source -= (extraBytesToRead+1); /* return to the illegal value itself */
- result = sourceIllegal;
- break;
- } else {
- *target++ = ch; /* normal case */
- }
- } else if (ch > UNI_MAX_UTF16) {
- if (flags == strictConversion) {
- result = sourceIllegal;
- source -= (extraBytesToRead+1); /* return to the start */
- break; /* Bail out; shouldn't continue */
- } else {
- *target++ = UNI_REPLACEMENT_CHAR;
- }
- } else {
- /* target is a character in range 0xFFFF - 0x10FFFF. */
- if (target + 1 >= targetEnd) {
- source -= (extraBytesToRead+1); /* Back up source pointer! */
- result = targetExhausted; break;
- }
- ch -= halfBase;
- *target++ = (ch >> halfShift) + UNI_SUR_HIGH_START;
- *target++ = (ch & halfMask) + UNI_SUR_LOW_START;
- }
- }
- *sourceStart = source;
- *targetStart = target;
- return result;
-}
-
-}
-
-/* ---------------------------------------------------------------------
-
- Note A.
- The fall-through switches in UTF-8 reading code save a
- temp variable, some decrements & conditionals. The switches
- are equivalent to the following loop:
- {
- int tmpBytesToRead = extraBytesToRead+1;
- do {
- ch += *source++;
- --tmpBytesToRead;
- if (tmpBytesToRead) ch <<= 6;
- } while (tmpBytesToRead > 0);
- }
- In UTF-8 writing code, the switches on "bytesToWrite" are
- similarly unrolled loops.
-
- --------------------------------------------------------------------- */
-
-
diff --git a/libs/taglib/taglib/toolkit/unicode.h b/libs/taglib/taglib/toolkit/unicode.h
deleted file mode 100644
index cf7eb3c569..0000000000
--- a/libs/taglib/taglib/toolkit/unicode.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef TAGLIB_UNICODE_H
-#define TAGLIB_UNICODE_H
-
-/*******************************************************************************
- * *
- * THIS FILE IS INCLUDED IN TAGLIB, BUT IS NOT COPYRIGHTED BY THE TAGLIB *
- * AUTHORS, NOT PART OF THE TAGLIB API AND COULD GO AWAY AT ANY POINT IN TIME. *
- * AS SUCH IT SHOULD BE CONSIERED FOR INTERNAL USE ONLY. *
- * *
- *******************************************************************************/
-
-#ifndef DO_NOT_DOCUMENT // tell Doxygen not to document this header
-
-/*
- * Copyright 2001 Unicode, Inc.
- *
- * Disclaimer
- *
- * This source code is provided as is by Unicode, Inc. No claims are
- * made as to fitness for any particular purpose. No warranties of any
- * kind are expressed or implied. The recipient agrees to determine
- * applicability of information provided. If this file has been
- * purchased on magnetic or optical media from Unicode, Inc., the
- * sole remedy for any claim will be exchange of defective media
- * within 90 days of receipt.
- *
- * Limitations on Rights to Redistribute This Code
- *
- * Unicode, Inc. hereby grants the right to freely use the information
- * supplied in this file in the creation of products supporting the
- * Unicode Standard, and to make copies of this file in any form
- * for internal or external distribution as long as this notice
- * remains attached.
- */
-
-/*
- * This file has been modified by Scott Wheeler <wheeler@kde.org> to remove
- * the UTF32 conversion functions and to place the appropriate functions
- * in their own C++ namespace.
- */
-
-/* ---------------------------------------------------------------------
-
- Conversions between UTF32, UTF-16, and UTF-8. Header file.
-
- Several functions are included here, forming a complete set of
- conversions between the three formats. UTF-7 is not included
- here, but is handled in a separate source file.
-
- Each of these routines takes pointers to input buffers and output
- buffers. The input buffers are const.
-
- Each routine converts the text between *sourceStart and sourceEnd,
- putting the result into the buffer between *targetStart and
- targetEnd. Note: the end pointers are *after* the last item: e.g.
- *(sourceEnd - 1) is the last item.
-
- The return result indicates whether the conversion was successful,
- and if not, whether the problem was in the source or target buffers.
- (Only the first encountered problem is indicated.)
-
- After the conversion, *sourceStart and *targetStart are both
- updated to point to the end of last text successfully converted in
- the respective buffers.
-
- Input parameters:
- sourceStart - pointer to a pointer to the source buffer.
- The contents of this are modified on return so that
- it points at the next thing to be converted.
- targetStart - similarly, pointer to pointer to the target buffer.
- sourceEnd, targetEnd - respectively pointers to the ends of the
- two buffers, for overflow checking only.
-
- These conversion functions take a ConversionFlags argument. When this
- flag is set to strict, both irregular sequences and isolated surrogates
- will cause an error. When the flag is set to lenient, both irregular
- sequences and isolated surrogates are converted.
-
- Whether the flag is strict or lenient, all illegal sequences will cause
- an error return. This includes sequences such as: <F4 90 80 80>, <C0 80>,
- or <A0> in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code
- must check for illegal sequences.
-
- When the flag is set to lenient, characters over 0x10FFFF are converted
- to the replacement character; otherwise (when the flag is set to strict)
- they constitute an error.
-
- Output parameters:
- The value "sourceIllegal" is returned from some routines if the input
- sequence is malformed. When "sourceIllegal" is returned, the source
- value will point to the illegal value that caused the problem. E.g.,
- in UTF-8 when a sequence is malformed, it points to the start of the
- malformed sequence.
-
- Author: Mark E. Davis, 1994.
- Rev History: Rick McGowan, fixes & updates May 2001.
- Fixes & updates, Sept 2001.
-
------------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------
- The following 4 definitions are compiler-specific.
- The C standard does not guarantee that wchar_t has at least
- 16 bits, so wchar_t is no less portable than unsigned short!
- All should be unsigned values to avoid sign extension during
- bit mask & shift operations.
------------------------------------------------------------------------- */
-
-/* Some fundamental constants */
-#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
-#define UNI_MAX_BMP (UTF32)0x0000FFFF
-#define UNI_MAX_UTF16 (UTF32)0x0010FFFF
-#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
-
-namespace Unicode {
-
-typedef unsigned long UTF32; /* at least 32 bits */
-typedef unsigned short UTF16; /* at least 16 bits */
-typedef unsigned char UTF8; /* typically 8 bits */
-typedef unsigned char Boolean; /* 0 or 1 */
-
-typedef enum {
- conversionOK = 0, /* conversion successful */
- sourceExhausted = 1, /* partial character in source, but hit end */
- targetExhausted = 2, /* insuff. room in target for conversion */
- sourceIllegal = 3 /* source sequence is illegal/malformed */
-} ConversionResult;
-
-typedef enum {
- strictConversion = 0,
- lenientConversion
-} ConversionFlags;
-
-ConversionResult ConvertUTF8toUTF16 (
- const UTF8** sourceStart, const UTF8* sourceEnd,
- UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF16toUTF8 (
- const UTF16** sourceStart, const UTF16* sourceEnd,
- UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
-
-Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd);
-
-} // namespace Unicode
-
-/* --------------------------------------------------------------------- */
-
-#endif
-#endif
diff --git a/libs/taglib/taglib/trueaudio/CMakeLists.txt b/libs/taglib/taglib/trueaudio/CMakeLists.txt
deleted file mode 100644
index 3a1c3e7b4e..0000000000
--- a/libs/taglib/taglib/trueaudio/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES trueaudiofile.h trueaudioproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/trueaudio/Makefile.am b/libs/taglib/taglib/trueaudio/Makefile.am
deleted file mode 100644
index 7c640304f8..0000000000
--- a/libs/taglib/taglib/trueaudio/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libtrueaudio.la
-
-libtrueaudio_la_SOURCES = trueaudiofile.cpp trueaudioproperties.cpp
-
-taglib_include_HEADERS = trueaudiofile.h trueaudioproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/trueaudio/Makefile.in b/libs/taglib/taglib/trueaudio/Makefile.in
deleted file mode 100644
index c4c7b33f1b..0000000000
--- a/libs/taglib/taglib/trueaudio/Makefile.in
+++ /dev/null
@@ -1,625 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/trueaudio
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libtrueaudio_la_LIBADD =
-am_libtrueaudio_la_OBJECTS = trueaudiofile.lo trueaudioproperties.lo
-#>- libtrueaudio_la_OBJECTS = $(am_libtrueaudio_la_OBJECTS)
-#>+ 4
-libtrueaudio_la_final_OBJECTS = libtrueaudio_la.all_cpp.lo
-libtrueaudio_la_nofinal_OBJECTS = trueaudiofile.lo trueaudioproperties.lo
-@KDE_USE_FINAL_FALSE@libtrueaudio_la_OBJECTS = $(libtrueaudio_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libtrueaudio_la_OBJECTS = $(libtrueaudio_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libtrueaudio_la_SOURCES)
-DIST_SOURCES = $(libtrueaudio_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libtrueaudio.la
-libtrueaudio_la_SOURCES = trueaudiofile.cpp trueaudioproperties.cpp
-taglib_include_HEADERS = trueaudiofile.h trueaudioproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/trueaudio/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/trueaudio/Makefile
-#>+ 12
- @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 taglib/trueaudio/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/trueaudio/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/trueaudio/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libtrueaudio.la: $(libtrueaudio_la_OBJECTS) $(libtrueaudio_la_DEPENDENCIES)
- $(CXXLINK) $(libtrueaudio_la_OBJECTS) $(libtrueaudio_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trueaudiofile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trueaudioproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/trueaudio/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/trueaudio/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/trueaudio/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libtrueaudio_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/trueaudiofile.cpp $(srcdir)/trueaudioproperties.cpp
- @echo 'creating libtrueaudio_la.all_cpp.cpp ...'; \
- rm -f libtrueaudio_la.all_cpp.files libtrueaudio_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libtrueaudio_la.all_cpp.final; \
- for file in trueaudiofile.cpp trueaudioproperties.cpp ; do \
- echo "#include \"$$file\"" >> libtrueaudio_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libtrueaudio_la.all_cpp.final; \
- done; \
- cat libtrueaudio_la.all_cpp.final libtrueaudio_la.all_cpp.files > libtrueaudio_la.all_cpp.cpp; \
- rm -f libtrueaudio_la.all_cpp.final libtrueaudio_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libtrueaudio_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libtrueaudio_la_OBJECTS="$(libtrueaudio_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libtrueaudio_la_OBJECTS="$(libtrueaudio_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libtrueaudio_la_OBJECTS="$(libtrueaudio_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libtrueaudio_la_OBJECTS="$(libtrueaudio_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/trueaudio/trueaudiofile.cpp b/libs/taglib/taglib/trueaudio/trueaudiofile.cpp
deleted file mode 100644
index 2a0ccaa705..0000000000
--- a/libs/taglib/taglib/trueaudio/trueaudiofile.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tdebug.h>
-#include <tagunion.h>
-
-#include "trueaudiofile.h"
-#include "id3v1tag.h"
-#include "id3v2tag.h"
-#include "id3v2header.h"
-
-using namespace TagLib;
-
-namespace
-{
- enum { ID3v2Index = 0, ID3v1Index = 1 };
-}
-
-class TrueAudio::File::FilePrivate
-{
-public:
- FilePrivate(const ID3v2::FrameFactory *frameFactory = ID3v2::FrameFactory::instance()) :
- ID3v2FrameFactory(frameFactory),
- ID3v2Location(-1),
- ID3v2OriginalSize(0),
- ID3v1Location(-1),
- properties(0),
- scanned(false),
- hasID3v1(false),
- hasID3v2(false) {}
-
- ~FilePrivate()
- {
- delete properties;
- }
-
- const ID3v2::FrameFactory *ID3v2FrameFactory;
- long ID3v2Location;
- uint ID3v2OriginalSize;
-
- long ID3v1Location;
-
- TagUnion tag;
-
- Properties *properties;
- bool scanned;
-
- // These indicate whether the file *on disk* has these tags, not if
- // this data structure does. This is used in computing offsets.
-
- bool hasID3v1;
- bool hasID3v2;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-TrueAudio::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : TagLib::File(file)
-{
- d = new FilePrivate;
- if(isOpen())
- read(readProperties, propertiesStyle);
-}
-
-TrueAudio::File::File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties, Properties::ReadStyle propertiesStyle) :
- TagLib::File(file)
-{
- d = new FilePrivate(frameFactory);
- if(isOpen())
- read(readProperties, propertiesStyle);
-}
-
-TrueAudio::File::~File()
-{
- delete d;
-}
-
-TagLib::Tag *TrueAudio::File::tag() const
-{
- return &d->tag;
-}
-
-TrueAudio::Properties *TrueAudio::File::audioProperties() const
-{
- return d->properties;
-}
-
-void TrueAudio::File::setID3v2FrameFactory(const ID3v2::FrameFactory *factory)
-{
- d->ID3v2FrameFactory = factory;
-}
-
-bool TrueAudio::File::save()
-{
- if(readOnly()) {
- debug("TrueAudio::File::save() -- File is read only.");
- return false;
- }
-
- // Update ID3v2 tag
-
- if(ID3v2Tag() && !ID3v2Tag()->isEmpty()) {
- if(!d->hasID3v2) {
- d->ID3v2Location = 0;
- d->ID3v2OriginalSize = 0;
- }
- ByteVector data = ID3v2Tag()->render();
- insert(data, d->ID3v2Location, d->ID3v2OriginalSize);
- d->ID3v1Location -= d->ID3v2OriginalSize - data.size();
- d->ID3v2OriginalSize = data.size();
- d->hasID3v2 = true;
- }
- else if(d->hasID3v2) {
- removeBlock(d->ID3v2Location, d->ID3v2OriginalSize);
- d->ID3v1Location -= d->ID3v2OriginalSize;
- d->ID3v2Location = -1;
- d->ID3v2OriginalSize = 0;
- d->hasID3v2 = false;
- }
-
- // Update ID3v1 tag
-
- if(ID3v1Tag() && !ID3v1Tag()->isEmpty()) {
- if(!d->hasID3v1) {
- seek(0, End);
- d->ID3v1Location = tell();
- }
- else
- seek(d->ID3v1Location);
- writeBlock(ID3v1Tag()->render());
- d->hasID3v1 = true;
- }
- else if(d->hasID3v1) {
- removeBlock(d->ID3v1Location, 128);
- d->ID3v1Location = -1;
- d->hasID3v1 = false;
- }
-
- return true;
-}
-
-ID3v1::Tag *TrueAudio::File::ID3v1Tag(bool create)
-{
- return d->tag.access<ID3v1::Tag>(ID3v1Index, create);
-}
-
-ID3v2::Tag *TrueAudio::File::ID3v2Tag(bool create)
-{
- return d->tag.access<ID3v2::Tag>(ID3v2Index, create);
-}
-
-void TrueAudio::File::strip(int tags)
-{
- if(tags & ID3v1) {
- d->tag.set(ID3v1Index, 0);
- ID3v2Tag(true);
- }
-
- if(tags & ID3v2) {
- d->tag.set(ID3v2Index, 0);
-
- if(!ID3v1Tag())
- ID3v2Tag(true);
- }
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void TrueAudio::File::read(bool readProperties, Properties::ReadStyle /* propertiesStyle */)
-{
- // Look for an ID3v2 tag
-
- d->ID3v2Location = findID3v2();
-
- if(d->ID3v2Location >= 0) {
-
- d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->ID3v2Location, d->ID3v2FrameFactory));
-
- d->ID3v2OriginalSize = ID3v2Tag()->header()->completeTagSize();
-
- if(ID3v2Tag()->header()->tagSize() <= 0)
- d->tag.set(ID3v2Index, 0);
- else
- d->hasID3v2 = true;
- }
-
- // Look for an ID3v1 tag
-
- d->ID3v1Location = findID3v1();
-
- if(d->ID3v1Location >= 0) {
- d->tag.set(ID3v1Index, new ID3v1::Tag(this, d->ID3v1Location));
- d->hasID3v1 = true;
- }
-
- if(!d->hasID3v1)
- ID3v2Tag(true);
-
- // Look for TrueAudio metadata
-
- if(readProperties) {
- if(d->ID3v2Location >= 0) {
- seek(d->ID3v2Location + d->ID3v2OriginalSize);
- d->properties = new Properties(readBlock(TrueAudio::HeaderSize),
- length() - d->ID3v2OriginalSize);
- }
- else {
- seek(0);
- d->properties = new Properties(readBlock(TrueAudio::HeaderSize),
- length());
- }
- }
-}
-
-long TrueAudio::File::findID3v1()
-{
- if(!isValid())
- return -1;
-
- seek(-128, End);
- long p = tell();
-
- if(readBlock(3) == ID3v1::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
-
-long TrueAudio::File::findID3v2()
-{
- if(!isValid())
- return -1;
-
- seek(0);
-
- if(readBlock(3) == ID3v2::Header::fileIdentifier())
- return 0;
-
- return -1;
-}
diff --git a/libs/taglib/taglib/trueaudio/trueaudiofile.h b/libs/taglib/taglib/trueaudio/trueaudiofile.h
deleted file mode 100644
index bd30baa85c..0000000000
--- a/libs/taglib/taglib/trueaudio/trueaudiofile.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_TRUEAUDIOFILE_H
-#define TAGLIB_TRUEAUDIOFILE_H
-
-#include <tfile.h>
-#include "trueaudioproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v2 { class Tag; class FrameFactory; }
- namespace ID3v1 { class Tag; }
-
- //! An implementation of TrueAudio metadata
-
- /*!
- * This is implementation of TrueAudio metadata.
- *
- * This supports ID3v1 and ID3v2 tags as well as reading stream
- * properties from the file.
- */
-
- namespace TrueAudio {
-
- //! An implementation of TagLib::File with TrueAudio specific methods
-
- /*!
- * This implements and provides an interface for TrueAudio files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to TrueAudio files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * This set of flags is used for various operations and is suitable for
- * being OR-ed together.
- */
- enum TagTypes {
- //! Empty set. Matches no tag types.
- NoTags = 0x0000,
- //! Matches ID3v1 tags.
- ID3v1 = 0x0001,
- //! Matches ID3v2 tags.
- ID3v2 = 0x0002,
- //! Matches all tag types.
- AllTags = 0xffff
- };
-
- /*!
- * Contructs an TrueAudio file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Contructs an TrueAudio file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored. The frames will be created using
- * \a frameFactory.
- */
- File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file.
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the TrueAudio::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Set the ID3v2::FrameFactory to something other than the default.
- *
- * \see ID3v2FrameFactory
- */
- void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
-
- /*!
- * Saves the file.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v2 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v2 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist. If there is already an APE tag, the
- * new ID3v1 tag will be placed after it.
- *
- * \note The Tag <b>is still</b> owned by the TrueAudio::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist. If there is already an APE tag, the
- * new ID3v1 tag will be placed after it.
- *
- * \note The Tag <b>is still</b> owned by the TrueAudio::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v2::Tag *ID3v2Tag(bool create = false);
-
- /*!
- * This will remove the tags that match the OR-ed together TagTypes from the
- * file. By default it removes all tags.
- *
- * \note This will also invalidate pointers to the tags
- * as their memory will be freed.
- * \note In order to make the removal permanent save() still needs to be called
- */
- void strip(int tags = AllTags);
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- long findID3v1();
- long findID3v2();
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/trueaudio/trueaudioproperties.cpp b/libs/taglib/taglib/trueaudio/trueaudioproperties.cpp
deleted file mode 100644
index ff65edf9f8..0000000000
--- a/libs/taglib/taglib/trueaudio/trueaudioproperties.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-#include <bitset>
-
-#include "trueaudioproperties.h"
-#include "trueaudiofile.h"
-
-using namespace TagLib;
-
-class TrueAudio::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(const ByteVector &d, long length, ReadStyle s) :
- data(d),
- streamLength(length),
- style(s),
- version(0),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0),
- bitsPerSample(0) {}
-
- ByteVector data;
- long streamLength;
- ReadStyle style;
- int version;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
- int bitsPerSample;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-TrueAudio::Properties::Properties(const ByteVector &data, long streamLength, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(data, streamLength, style);
- read();
-}
-
-TrueAudio::Properties::~Properties()
-{
- delete d;
-}
-
-int TrueAudio::Properties::length() const
-{
- return d->length;
-}
-
-int TrueAudio::Properties::bitrate() const
-{
- return d->bitrate;
-}
-
-int TrueAudio::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int TrueAudio::Properties::bitsPerSample() const
-{
- return d->bitsPerSample;
-}
-
-int TrueAudio::Properties::channels() const
-{
- return d->channels;
-}
-
-int TrueAudio::Properties::ttaVersion() const
-{
- return d->version;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void TrueAudio::Properties::read()
-{
- if(!d->data.startsWith("TTA"))
- return;
-
- int pos = 3;
-
- d->version = d->data[pos] - '0';
- pos += 1 + 2;
-
- d->channels = d->data.mid(pos, 2).toShort(false);
- pos += 2;
-
- d->bitsPerSample = d->data.mid(pos, 2).toShort(false);
- pos += 2;
-
- d->sampleRate = d->data.mid(pos, 4).toUInt(false);
- pos += 4;
-
- unsigned long samples = d->data.mid(pos, 4).toUInt(false);
- d->length = samples / d->sampleRate;
-
- d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0;
-}
diff --git a/libs/taglib/taglib/trueaudio/trueaudioproperties.h b/libs/taglib/taglib/trueaudio/trueaudioproperties.h
deleted file mode 100644
index b89fe9d1b1..0000000000
--- a/libs/taglib/taglib/trueaudio/trueaudioproperties.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_TRUEAUDIOPROPERTIES_H
-#define TAGLIB_TRUEAUDIOPROPERTIES_H
-
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace TrueAudio {
-
- class File;
-
- static const uint HeaderSize = 18;
-
- //! An implementation of audio property reading for TrueAudio
-
- /*!
- * This reads the data from an TrueAudio stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of TrueAudio::Properties with the data read from the
- * ByteVector \a data.
- */
- Properties(const ByteVector &data, long streamLength, ReadStyle style = Average);
-
- /*!
- * Destroys this TrueAudio::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns number of bits per sample.
- */
- int bitsPerSample() const;
-
- /*!
- * Returns the major version number.
- */
- int ttaVersion() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/wavpack/CMakeLists.txt b/libs/taglib/taglib/wavpack/CMakeLists.txt
deleted file mode 100644
index 8b9de0fdf9..0000000000
--- a/libs/taglib/taglib/wavpack/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL( FILES wavpackfile.h wavpackproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib)
diff --git a/libs/taglib/taglib/wavpack/Makefile.am b/libs/taglib/taglib/wavpack/Makefile.am
deleted file mode 100644
index 4455177ea0..0000000000
--- a/libs/taglib/taglib/wavpack/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libwavpack.la
-
-libwavpack_la_SOURCES = wavpackfile.cpp wavpackproperties.cpp
-
-taglib_include_HEADERS = wavpackfile.h wavpackproperties.h
-taglib_includedir = $(includedir)/taglib
diff --git a/libs/taglib/taglib/wavpack/Makefile.in b/libs/taglib/taglib/wavpack/Makefile.in
deleted file mode 100644
index 3193e7fd5d..0000000000
--- a/libs/taglib/taglib/wavpack/Makefile.in
+++ /dev/null
@@ -1,626 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = taglib/wavpack
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(taglib_include_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libwavpack_la_LIBADD =
-am_libwavpack_la_OBJECTS = wavpackfile.lo wavpackproperties.lo
-#>- libwavpack_la_OBJECTS = $(am_libwavpack_la_OBJECTS)
-#>+ 4
-libwavpack_la_final_OBJECTS = libwavpack_la.all_cpp.lo
-libwavpack_la_nofinal_OBJECTS = wavpackfile.lo wavpackproperties.lo
-@KDE_USE_FINAL_FALSE@libwavpack_la_OBJECTS = $(libwavpack_la_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@libwavpack_la_OBJECTS = $(libwavpack_la_final_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libwavpack_la_SOURCES)
-DIST_SOURCES = $(libwavpack_la_SOURCES)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(taglib_includedir)"
-taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(taglib_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib \
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/ape \
- -I$(top_srcdir)/taglib/mpc \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- $(all_includes)
-
-noinst_LTLIBRARIES = libwavpack.la
-libwavpack_la_SOURCES = wavpackfile.cpp wavpackproperties.cpp
-taglib_include_HEADERS = wavpackfile.h wavpackproperties.h
-taglib_includedir = $(includedir)/taglib
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/wavpack/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu taglib/wavpack/Makefile
-#>+ 12
- @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 taglib/wavpack/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/wavpack/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/wavpack/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libwavpack.la: $(libwavpack_la_OBJECTS) $(libwavpack_la_DEPENDENCIES)
- $(CXXLINK) $(libwavpack_la_OBJECTS) $(libwavpack_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackfile.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackproperties.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-taglib_includeHEADERS: $(taglib_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)"
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-uninstall-taglib_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(taglib_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(taglib_includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-taglib_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -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-taglib_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-taglib_includeHEADERS 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-taglib_includeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 taglib/wavpack/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu taglib/wavpack/Makefile
- cd $(top_srcdir) && perl admin/am_edit taglib/wavpack/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in $(taglib_include_HEADERS); do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-libwavpack_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/wavpackfile.cpp $(srcdir)/wavpackproperties.cpp
- @echo 'creating libwavpack_la.all_cpp.cpp ...'; \
- rm -f libwavpack_la.all_cpp.files libwavpack_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libwavpack_la.all_cpp.final; \
- for file in wavpackfile.cpp wavpackproperties.cpp ; do \
- echo "#include \"$$file\"" >> libwavpack_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libwavpack_la.all_cpp.final; \
- done; \
- cat libwavpack_la.all_cpp.final libwavpack_la.all_cpp.files > libwavpack_la.all_cpp.cpp; \
- rm -f libwavpack_la.all_cpp.final libwavpack_la.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f libwavpack_la.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) libwavpack_la_OBJECTS="$(libwavpack_la_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) libwavpack_la_OBJECTS="$(libwavpack_la_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) libwavpack_la_OBJECTS="$(libwavpack_la_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) libwavpack_la_OBJECTS="$(libwavpack_la_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/taglib/wavpack/wavpackfile.cpp b/libs/taglib/taglib/wavpack/wavpackfile.cpp
deleted file mode 100644
index 9a64b8c182..0000000000
--- a/libs/taglib/taglib/wavpack/wavpackfile.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include <tdebug.h>
-#include <tagunion.h>
-
-#include "wavpackfile.h"
-#include "id3v1tag.h"
-#include "id3v2header.h"
-#include "apetag.h"
-#include "apefooter.h"
-
-using namespace TagLib;
-
-namespace
-{
- enum { APEIndex, ID3v1Index };
-}
-
-class WavPack::File::FilePrivate
-{
-public:
- FilePrivate() :
- APELocation(-1),
- APESize(0),
- ID3v1Location(-1),
- properties(0),
- scanned(false),
- hasAPE(false),
- hasID3v1(false) {}
-
- ~FilePrivate()
- {
- delete properties;
- }
-
- long APELocation;
- uint APESize;
-
- long ID3v1Location;
-
- TagUnion tag;
-
- Properties *properties;
- bool scanned;
-
- // These indicate whether the file *on disk* has these tags, not if
- // this data structure does. This is used in computing offsets.
-
- bool hasAPE;
- bool hasID3v1;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-WavPack::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : TagLib::File(file)
-{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
-}
-
-WavPack::File::~File()
-{
- delete d;
-}
-
-TagLib::Tag *WavPack::File::tag() const
-{
- return &d->tag;
-}
-
-WavPack::Properties *WavPack::File::audioProperties() const
-{
- return d->properties;
-}
-
-bool WavPack::File::save()
-{
- if(readOnly()) {
- debug("WavPack::File::save() -- File is read only.");
- return false;
- }
-
- // Update ID3v1 tag
-
- if(ID3v1Tag()) {
- if(d->hasID3v1) {
- seek(d->ID3v1Location);
- writeBlock(ID3v1Tag()->render());
- }
- else {
- seek(0, End);
- d->ID3v1Location = tell();
- writeBlock(ID3v1Tag()->render());
- d->hasID3v1 = true;
- }
- }
- else {
- if(d->hasID3v1) {
- removeBlock(d->ID3v1Location, 128);
- d->hasID3v1 = false;
- if(d->hasAPE) {
- if(d->APELocation > d->ID3v1Location)
- d->APELocation -= 128;
- }
- }
- }
-
- // Update APE tag
-
- if(APETag()) {
- if(d->hasAPE)
- insert(APETag()->render(), d->APELocation, d->APESize);
- else {
- if(d->hasID3v1) {
- insert(APETag()->render(), d->ID3v1Location, 0);
- d->APESize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- d->APELocation = d->ID3v1Location;
- d->ID3v1Location += d->APESize;
- }
- else {
- seek(0, End);
- d->APELocation = tell();
- writeBlock(APETag()->render());
- d->APESize = APETag()->footer()->completeTagSize();
- d->hasAPE = true;
- }
- }
- }
- else {
- if(d->hasAPE) {
- removeBlock(d->APELocation, d->APESize);
- d->hasAPE = false;
- if(d->hasID3v1) {
- if(d->ID3v1Location > d->APELocation) {
- d->ID3v1Location -= d->APESize;
- }
- }
- }
- }
-
- return true;
-}
-
-ID3v1::Tag *WavPack::File::ID3v1Tag(bool create)
-{
- return d->tag.access<ID3v1::Tag>(ID3v1Index, create);
-}
-
-APE::Tag *WavPack::File::APETag(bool create)
-{
- return d->tag.access<APE::Tag>(APEIndex, create);
-}
-
-void WavPack::File::strip(int tags)
-{
- if(tags & ID3v1) {
- d->tag.set(ID3v1Index, 0);
- APETag(true);
- }
-
- if(tags & APE) {
- d->tag.set(APEIndex, 0);
-
- if(!ID3v1Tag())
- APETag(true);
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void WavPack::File::read(bool readProperties, Properties::ReadStyle /* propertiesStyle */)
-{
- // Look for an ID3v1 tag
-
- d->ID3v1Location = findID3v1();
-
- if(d->ID3v1Location >= 0) {
- d->tag.set(ID3v1Index, new ID3v1::Tag(this, d->ID3v1Location));
- d->hasID3v1 = true;
- }
-
- // Look for an APE tag
-
- d->APELocation = findAPE();
-
- if(d->APELocation >= 0) {
- d->tag.set(APEIndex, new APE::Tag(this, d->APELocation));
- d->APESize = APETag()->footer()->completeTagSize();
- d->APELocation = d->APELocation + APETag()->footer()->size() - d->APESize;
- d->hasAPE = true;
- }
-
- if(!d->hasID3v1)
- APETag(true);
-
- // Look for WavPack audio properties
-
- if(readProperties) {
- seek(0);
- d->properties = new Properties(readBlock(WavPack::HeaderSize),
- length() - d->APESize);
- }
-}
-
-long WavPack::File::findAPE()
-{
- if(!isValid())
- return -1;
-
- if(d->hasID3v1)
- seek(-160, End);
- else
- seek(-32, End);
-
- long p = tell();
-
- if(readBlock(8) == APE::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
-
-long WavPack::File::findID3v1()
-{
- if(!isValid())
- return -1;
-
- seek(-128, End);
- long p = tell();
-
- if(readBlock(3) == ID3v1::Tag::fileIdentifier())
- return p;
-
- return -1;
-}
diff --git a/libs/taglib/taglib/wavpack/wavpackfile.h b/libs/taglib/taglib/wavpack/wavpackfile.h
deleted file mode 100644
index e43a987887..0000000000
--- a/libs/taglib/taglib/wavpack/wavpackfile.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_WVFILE_H
-#define TAGLIB_WVFILE_H
-
-#include <tfile.h>
-#include "taglib_export.h"
-#include "wavpackproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v1 { class Tag; }
- namespace APE { class Tag; }
-
- //! An implementation of WavPack metadata
-
- /*!
- * This is implementation of WavPack metadata.
- *
- * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream
- * properties from the file.
- */
-
- namespace WavPack {
-
- //! An implementation of TagLib::File with WavPack specific methods
-
- /*!
- * This implements and provides an interface for WavPack files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to WavPack files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * This set of flags is used for various operations and is suitable for
- * being OR-ed together.
- */
- enum TagTypes {
- //! Empty set. Matches no tag types.
- NoTags = 0x0000,
- //! Matches ID3v1 tags.
- ID3v1 = 0x0001,
- //! Matches APE tags.
- APE = 0x0002,
- //! Matches all tag types.
- AllTags = 0xffff
- };
-
- /*!
- * Contructs an WavPack file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
- * or a combination of the two.
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the MPC::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Saves the file.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist. If there is already an APE tag, the
- * new ID3v1 tag will be placed after it.
- *
- * \note The Tag <b>is still</b> owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the APE tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid APE tag. If \a create is true it will create
- * a APE tag if one does not exist.
- *
- * \note The Tag <b>is still</b> owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- APE::Tag *APETag(bool create = false);
-
- /*!
- * This will remove the tags that match the OR-ed together TagTypes from the
- * file. By default it removes all tags.
- *
- * \note This will also invalidate pointers to the tags
- * as their memory will be freed.
- * \note In order to make the removal permanent save() still needs to be called
- */
- void strip(int tags = AllTags);
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- long findID3v1();
- long findAPE();
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/taglib/wavpack/wavpackproperties.cpp b/libs/taglib/taglib/wavpack/wavpackproperties.cpp
deleted file mode 100644
index ec7a9bf606..0000000000
--- a/libs/taglib/taglib/wavpack/wavpackproperties.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#include <tstring.h>
-#include <tdebug.h>
-#include <bitset>
-
-#include "wavpackproperties.h"
-#include "wavpackfile.h"
-
-using namespace TagLib;
-
-class WavPack::Properties::PropertiesPrivate
-{
-public:
- PropertiesPrivate(const ByteVector &d, long length, ReadStyle s) :
- data(d),
- streamLength(length),
- style(s),
- length(0),
- bitrate(0),
- sampleRate(0),
- channels(0),
- version(0),
- bitsPerSample(0) {}
-
- ByteVector data;
- long streamLength;
- ReadStyle style;
- int length;
- int bitrate;
- int sampleRate;
- int channels;
- int version;
- int bitsPerSample;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-WavPack::Properties::Properties(const ByteVector &data, long streamLength, ReadStyle style) : AudioProperties(style)
-{
- d = new PropertiesPrivate(data, streamLength, style);
- read();
-}
-
-WavPack::Properties::~Properties()
-{
- delete d;
-}
-
-int WavPack::Properties::length() const
-{
- return d->length;
-}
-
-int WavPack::Properties::bitrate() const
-{
- return d->bitrate;
-}
-
-int WavPack::Properties::sampleRate() const
-{
- return d->sampleRate;
-}
-
-int WavPack::Properties::channels() const
-{
- return d->channels;
-}
-
-int WavPack::Properties::version() const
-{
- return d->version;
-}
-
-int WavPack::Properties::bitsPerSample() const
-{
- return d->bitsPerSample;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-static const unsigned int sample_rates[] = { 6000, 8000, 9600, 11025, 12000,
- 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000, 192000 };
-
-#define BYTES_STORED 3
-#define MONO_FLAG 4
-
-#define SHIFT_LSB 13
-#define SHIFT_MASK (0x1fL << SHIFT_LSB)
-
-#define SRATE_LSB 23
-#define SRATE_MASK (0xfL << SRATE_LSB)
-
-void WavPack::Properties::read()
-{
- if(!d->data.startsWith("wvpk"))
- return;
-
- d->version = d->data.mid(8, 2).toShort(false);
-
- unsigned int flags = d->data.mid(24, 4).toUInt(false);
- d->bitsPerSample = ((flags & BYTES_STORED) + 1) * 8 -
- ((flags & SHIFT_MASK) >> SHIFT_LSB);
- d->sampleRate = sample_rates[(flags & SRATE_MASK) >> SRATE_LSB];
- d->channels = (flags & MONO_FLAG) ? 1 : 2;
-
- unsigned int samples = d->data.mid(12, 4).toUInt(false);
- d->length = d->sampleRate > 0 ? (samples + (d->sampleRate / 2)) / d->sampleRate : 0;
-
- d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0;
-}
-
diff --git a/libs/taglib/taglib/wavpack/wavpackproperties.h b/libs/taglib/taglib/wavpack/wavpackproperties.h
deleted file mode 100644
index a77e4de469..0000000000
--- a/libs/taglib/taglib/wavpack/wavpackproperties.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
- * USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_WVPROPERTIES_H
-#define TAGLIB_WVPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace WavPack {
-
- class File;
-
- static const uint HeaderSize = 32;
-
- //! An implementation of audio property reading for WavPack
-
- /*!
- * This reads the data from an WavPack stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of WavPack::Properties with the data read from the
- * ByteVector \a data.
- */
- Properties(const ByteVector &data, long streamLength, ReadStyle style = Average);
-
- /*!
- * Destroys this WavPack::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns number of bits per sample.
- */
- int bitsPerSample() const;
-
- /*!
- * Returns WavPack version.
- */
- int version() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/libs/taglib/tests/CMakeLists.txt b/libs/taglib/tests/CMakeLists.txt
deleted file mode 100644
index 88c08098e1..0000000000
--- a/libs/taglib/tests/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-if(BUILD_TESTS)
-
-INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/toolkit
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg/id3v1
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg/id3v2
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg/id3v2/frames
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/mpeg
- ${CMAKE_CURRENT_SOURCE_DIR}/../taglib/trueaudio
-)
-
-SET(test_runner_SRCS
- main.cpp
- test_list.cpp
- test_map.cpp
- test_mpeg.cpp
- test_synchdata.cpp
- test_trueaudio.cpp
- test_bytevector.cpp
- test_string.cpp
- test_fileref.cpp
- test_id3v1.cpp
- test_id3v2.cpp
-)
-
-ADD_EXECUTABLE(test_runner ${test_runner_SRCS})
-TARGET_LINK_LIBRARIES(test_runner tag ${CPPUNIT_LIBRARIES})
-
-ADD_CUSTOM_TARGET(check
- ./test_runner
- DEPENDS test_runner
-)
-
-endif(BUILD_TESTS)
diff --git a/libs/taglib/tests/Makefile.am b/libs/taglib/tests/Makefile.am
deleted file mode 100644
index 65191808b9..0000000000
--- a/libs/taglib/tests/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir)/taglib\
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/trueaudio \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v2/frames
-
-test_runner_SOURCES = \
- main.cpp \
- test_list.cpp \
- test_map.cpp \
- test_mpeg.cpp \
- test_synchdata.cpp \
- test_trueaudio.cpp \
- test_bytevector.cpp \
- test_string.cpp \
- test_fileref.cpp \
- test_id3v1.cpp \
- test_id3v2.cpp
-
-if build_tests
-TESTS = test_runner
-check_PROGRAMS = test_runner
-LDADD = ../taglib/libtag.la -lcppunit
-endif
diff --git a/libs/taglib/tests/Makefile.in b/libs/taglib/tests/Makefile.in
deleted file mode 100644
index 4e6d32d5c6..0000000000
--- a/libs/taglib/tests/Makefile.in
+++ /dev/null
@@ -1,699 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# KDE tags expanded automatically by am_edit - $Revision: 483858 $
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-@build_tests_TRUE@TESTS = test_runner$(EXEEXT)
-@build_tests_TRUE@check_PROGRAMS = test_runner$(EXEEXT)
-subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am_test_runner_OBJECTS = main.$(OBJEXT) test_list.$(OBJEXT) \
- test_map.$(OBJEXT) test_mpeg.$(OBJEXT) \
- test_synchdata.$(OBJEXT) test_trueaudio.$(OBJEXT) \
- test_bytevector.$(OBJEXT) test_string.$(OBJEXT) \
- test_fileref.$(OBJEXT) test_id3v1.$(OBJEXT) \
- test_id3v2.$(OBJEXT)
-#>- test_runner_OBJECTS = $(am_test_runner_OBJECTS)
-#>+ 9
-test_runner_final_OBJECTS = test_runner.all_cpp.o
-test_runner_nofinal_OBJECTS = main.$(OBJEXT) test_list.$(OBJEXT) \
- test_map.$(OBJEXT) test_mpeg.$(OBJEXT) \
- test_synchdata.$(OBJEXT) test_trueaudio.$(OBJEXT) \
- test_bytevector.$(OBJEXT) test_string.$(OBJEXT) \
- test_fileref.$(OBJEXT) test_id3v1.$(OBJEXT) \
- test_id3v2.$(OBJEXT)
-@KDE_USE_FINAL_FALSE@test_runner_OBJECTS = $(test_runner_nofinal_OBJECTS)
-@KDE_USE_FINAL_TRUE@test_runner_OBJECTS = $(test_runner_final_OBJECTS)
-test_runner_LDADD = $(LDADD)
-@build_tests_TRUE@test_runner_DEPENDENCIES = ../taglib/libtag.la
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
-am__depfiles_maybe = depfiles
-#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 2
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-#>+ 3
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
-CXXLD = $(CXX)
-#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-#>- $(LDFLAGS) -o $@
-#>+ 3
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(test_runner_SOURCES)
-DIST_SOURCES = $(test_runner_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-#>+ 1
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTODIRS = @AUTODIRS@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CONF_FILES = @CONF_FILES@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
-KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
-KDE_PLUGIN = @KDE_PLUGIN@
-KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
-KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
-KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
-KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
-KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
-KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
-LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NOOPT_CFLAGS = @NOOPT_CFLAGS@
-NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TOPSUBDIRS = @TOPSUBDIRS@
-USE_EXCEPTIONS = @USE_EXCEPTIONS@
-USE_RTTI = @USE_RTTI@
-VERSION = @VERSION@
-WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-all_includes = @all_includes@
-all_libraries = @all_libraries@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(top_srcdir)/taglib\
- -I$(top_srcdir)/taglib/toolkit \
- -I$(top_srcdir)/taglib/trueaudio \
- -I$(top_srcdir)/taglib/mpeg \
- -I$(top_srcdir)/taglib/mpeg/id3v1 \
- -I$(top_srcdir)/taglib/mpeg/id3v2 \
- -I$(top_srcdir)/taglib/mpeg/id3v2/frames
-
-test_runner_SOURCES = \
- main.cpp \
- test_list.cpp \
- test_map.cpp \
- test_mpeg.cpp \
- test_synchdata.cpp \
- test_trueaudio.cpp \
- test_bytevector.cpp \
- test_string.cpp \
- test_fileref.cpp \
- test_id3v1.cpp \
- test_id3v2.cpp
-
-@build_tests_TRUE@LDADD = ../taglib/libtag.la -lcppunit
-#>- all: all-am
-#>+ 1
-all: docs-am all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
-#>- @for dep in $?; do \
-#>- case '$(am__configure_deps)' in \
-#>- *$$dep*) \
-#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-#>- && exit 0; \
-#>- exit 1;; \
-#>- esac; \
-#>- done; \
-#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
-#>- cd $(top_srcdir) && \
-#>- $(AUTOMAKE) --gnu tests/Makefile
-#>+ 12
- @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 tests/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/Makefile
- cd $(top_srcdir) && perl admin/am_edit tests/Makefile.in
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-test_runner$(EXEEXT): $(test_runner_OBJECTS) $(test_runner_DEPENDENCIES)
- @rm -f test_runner$(EXEEXT)
- $(CXXLINK) $(test_runner_OBJECTS) $(test_runner_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bytevector.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fileref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_id3v1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_id3v2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_list.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_map.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mpeg.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_string.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_synchdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_trueaudio.Po@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- 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
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *$$ws$$tst$$ws*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- echo "XPASS: $$tst"; \
- ;; \
- *) \
- echo "PASS: $$tst"; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *$$ws$$tst$$ws*) \
- xfail=`expr $$xfail + 1`; \
- echo "XFAIL: $$tst"; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- echo "SKIP: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all tests failed"; \
- else \
- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- skipped="($$skip tests were not run)"; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-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
-#>+ 1
-clean: kde-rpo-clean clean-am
-
-#>- clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
-#>- mostlyclean-am
-#>+ 2
-clean-am: clean-bcheck clean-final clean-checkPROGRAMS clean-generic clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-#>+ 2
-KDE_DIST=utils.h Makefile.in CMakeLists.txt Makefile.am
-
-#>+ 2
-docs-am:
-
-#>+ 15
-force-reedit:
- @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 tests/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/Makefile
- cd $(top_srcdir) && perl admin/am_edit tests/Makefile.in
-
-
-#>+ 21
-clean-bcheck:
- rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
-
-bcheck: bcheck-am
-
-bcheck-am:
- @for i in ; do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
- echo "$$i"; \
- if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
- rm -f $$i.bchecktest.cc; exit 1; \
- fi ; \
- echo "" >> $$i.bchecktest.cc.class; \
- perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
- rm -f a.out; \
- fi ; \
- done
-
-
-#>+ 11
-test_runner.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/main.cpp $(srcdir)/test_list.cpp $(srcdir)/test_map.cpp $(srcdir)/test_mpeg.cpp $(srcdir)/test_synchdata.cpp $(srcdir)/test_trueaudio.cpp $(srcdir)/test_bytevector.cpp $(srcdir)/test_string.cpp $(srcdir)/test_fileref.cpp $(srcdir)/test_id3v1.cpp $(srcdir)/test_id3v2.cpp
- @echo 'creating test_runner.all_cpp.cpp ...'; \
- rm -f test_runner.all_cpp.files test_runner.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> test_runner.all_cpp.final; \
- for file in main.cpp test_list.cpp test_map.cpp test_mpeg.cpp test_synchdata.cpp test_trueaudio.cpp test_bytevector.cpp test_string.cpp test_fileref.cpp test_id3v1.cpp test_id3v2.cpp ; do \
- echo "#include \"$$file\"" >> test_runner.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> test_runner.all_cpp.final; \
- done; \
- cat test_runner.all_cpp.final test_runner.all_cpp.files > test_runner.all_cpp.cpp; \
- rm -f test_runner.all_cpp.final test_runner.all_cpp.files
-
-#>+ 3
-clean-final:
- -rm -f test_runner.all_cpp.cpp
-
-#>+ 3
-final:
- $(MAKE) test_runner_OBJECTS="$(test_runner_final_OBJECTS)" all-am
-
-#>+ 3
-final-install:
- $(MAKE) test_runner_OBJECTS="$(test_runner_final_OBJECTS)" install-am
-
-#>+ 3
-no-final:
- $(MAKE) test_runner_OBJECTS="$(test_runner_nofinal_OBJECTS)" all-am
-
-#>+ 3
-no-final-install:
- $(MAKE) test_runner_OBJECTS="$(test_runner_nofinal_OBJECTS)" install-am
-
-#>+ 3
-kde-rpo-clean:
- -rm -f *.rpo
-
-#>+ 3
-nmcheck:
-nmcheck-am: nmcheck
diff --git a/libs/taglib/tests/data/005411.id3 b/libs/taglib/tests/data/005411.id3
deleted file mode 100644
index ab2e0997a0..0000000000
--- a/libs/taglib/tests/data/005411.id3
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/broken-tenc.id3 b/libs/taglib/tests/data/broken-tenc.id3
deleted file mode 100644
index 809040506f..0000000000
--- a/libs/taglib/tests/data/broken-tenc.id3
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/click.mpc b/libs/taglib/tests/data/click.mpc
deleted file mode 100644
index a41f14e9ea..0000000000
--- a/libs/taglib/tests/data/click.mpc
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/empty.ogg b/libs/taglib/tests/data/empty.ogg
deleted file mode 100644
index aa533104d6..0000000000
--- a/libs/taglib/tests/data/empty.ogg
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/empty.spx b/libs/taglib/tests/data/empty.spx
deleted file mode 100644
index 70572b4587..0000000000
--- a/libs/taglib/tests/data/empty.spx
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/empty.tta b/libs/taglib/tests/data/empty.tta
deleted file mode 100644
index 9cc00ba815..0000000000
--- a/libs/taglib/tests/data/empty.tta
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/mpeg2.mp3 b/libs/taglib/tests/data/mpeg2.mp3
deleted file mode 100644
index 13e8d53df6..0000000000
--- a/libs/taglib/tests/data/mpeg2.mp3
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/no-tags.flac b/libs/taglib/tests/data/no-tags.flac
deleted file mode 100644
index 4171441676..0000000000
--- a/libs/taglib/tests/data/no-tags.flac
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/unsynch.id3 b/libs/taglib/tests/data/unsynch.id3
deleted file mode 100644
index cfe6ee1a6f..0000000000
--- a/libs/taglib/tests/data/unsynch.id3
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/data/xing.mp3 b/libs/taglib/tests/data/xing.mp3
deleted file mode 100644
index 0c880151b6..0000000000
--- a/libs/taglib/tests/data/xing.mp3
+++ /dev/null
Binary files differ
diff --git a/libs/taglib/tests/main.cpp b/libs/taglib/tests/main.cpp
deleted file mode 100644
index 348751e44c..0000000000
--- a/libs/taglib/tests/main.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <stdexcept>
-#include <cppunit/TestResult.h>
-#include <cppunit/TestResultCollector.h>
-#include <cppunit/TestRunner.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/BriefTestProgressListener.h>
-#include <cppunit/CompilerOutputter.h>
-
-int main(int argc, char* argv[])
-{
- std::string testPath = (argc > 1) ? std::string(argv[1]) : "";
-
- // Create the event manager and test controller
- CppUnit::TestResult controller;
-
- // Add a listener that colllects test result
- CppUnit::TestResultCollector result;
- controller.addListener(&result);
-
- // Add a listener that print dots as test run.
- CppUnit::BriefTestProgressListener progress;
- controller.addListener(&progress);
-
- // Add the top suite to the test runner
- CppUnit::TestRunner runner;
- runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
-
- try {
- std::cout << "Running " << testPath;
- runner.run(controller, testPath);
-
- std::cerr << std::endl;
-
- // Print test in a compiler compatible format.
- CppUnit::CompilerOutputter outputter(&result, std::cerr);
- outputter.write();
- }
- catch(std::invalid_argument &e){
- std::cerr << std::endl
- << "ERROR: " << e.what()
- << std::endl;
- return 0;
- }
-
- return result.wasSuccessful() ? 0 : 1;
-}
diff --git a/libs/taglib/tests/test_bytevector.cpp b/libs/taglib/tests/test_bytevector.cpp
deleted file mode 100644
index f92fce0173..0000000000
--- a/libs/taglib/tests/test_bytevector.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <tbytevector.h>
-#include <tbytevectorlist.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestByteVector : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestByteVector);
- CPPUNIT_TEST(testByteVector);
- CPPUNIT_TEST(testFind1);
- CPPUNIT_TEST(testFind2);
- CPPUNIT_TEST(testRfind1);
- CPPUNIT_TEST(testRfind2);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testConversion(unsigned int i, unsigned char a, unsigned char b, unsigned char c, unsigned char d)
- {
- ByteVector v(4, 0);
-
- v[3] = a;
- v[2] = b;
- v[1] = c;
- v[0] = d;
- CPPUNIT_ASSERT(v.toUInt(false) == i);
-
- v[0] = a;
- v[1] = b;
- v[2] = c;
- v[3] = d;
- CPPUNIT_ASSERT(v.toUInt() == i);
- }
-
- void testByteVector()
- {
- ByteVector v("foobar");
-
- CPPUNIT_ASSERT(v.find("ob") == 2);
- CPPUNIT_ASSERT(v.find('b') == 3);
-
- ByteVector n(4, 0);
- n[0] = 1;
- CPPUNIT_ASSERT(n.toUInt(true) == 16777216);
- CPPUNIT_ASSERT(n.toUInt(false) == 1);
- CPPUNIT_ASSERT(ByteVector::fromUInt(16777216, true) == n);
- CPPUNIT_ASSERT(ByteVector::fromUInt(1, false) == n);
-
- CPPUNIT_ASSERT(ByteVector::fromUInt(0xa0).toUInt() == 0xa0);
-
- testConversion(0x000000a0, 0x00, 0x00, 0x00, 0xa0);
- testConversion(0xd50bf072, 0xd5, 0x0b, 0xf0, 0x72);
-
- ByteVector intVector(2, 0);
- intVector[0] = char(0xfc);
- intVector[1] = char(0x00);
- CPPUNIT_ASSERT(intVector.toShort() == -1024);
- intVector[0] = char(0x04);
- intVector[1] = char(0x00);
- CPPUNIT_ASSERT(intVector.toShort() == 1024);
-
- CPPUNIT_ASSERT(ByteVector::fromLongLong(1).toLongLong() == 1);
- CPPUNIT_ASSERT(ByteVector::fromLongLong(0).toLongLong() == 0);
- CPPUNIT_ASSERT(ByteVector::fromLongLong(0xffffffffffffffffLL).toLongLong() == -1);
- CPPUNIT_ASSERT(ByteVector::fromLongLong(0xfffffffffffffffeLL).toLongLong() == -2);
- CPPUNIT_ASSERT(ByteVector::fromLongLong(1024).toLongLong() == 1024);
-
- ByteVector a1("foo");
- a1.append("bar");
- CPPUNIT_ASSERT(a1 == "foobar");
-
- ByteVector a2("foo");
- a2.append("b");
- CPPUNIT_ASSERT(a2 == "foob");
-
- ByteVector a3;
- a3.append("b");
- CPPUNIT_ASSERT(a3 == "b");
-
- ByteVector s1("foo");
- CPPUNIT_ASSERT(ByteVectorList::split(s1, " ").size() == 1);
-
- ByteVector s2("f");
- CPPUNIT_ASSERT(ByteVectorList::split(s2, " ").size() == 1);
-
-
- CPPUNIT_ASSERT(ByteVector().size() == 0);
- CPPUNIT_ASSERT(ByteVector("asdf").clear().size() == 0);
- CPPUNIT_ASSERT(ByteVector("asdf").clear() == ByteVector());
- }
-
- void testFind1()
- {
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO"));
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO", 0));
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO", 1));
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO", 2));
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO", 3));
- CPPUNIT_ASSERT_EQUAL(4, ByteVector("....SggO."). find("SggO", 4));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("....SggO."). find("SggO", 5));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("....SggO."). find("SggO", 6));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("....SggO."). find("SggO", 7));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("....SggO."). find("SggO", 8));
- }
-
- void testFind2()
- {
- CPPUNIT_ASSERT_EQUAL(0, ByteVector("\x01", 1).find("\x01"));
- CPPUNIT_ASSERT_EQUAL(0, ByteVector("\x01\x02", 2).find("\x01\x02"));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("\x01", 1).find("\x02"));
- CPPUNIT_ASSERT_EQUAL(-1, ByteVector("\x01\x02", 2).find("\x01\x03"));
- }
-
- void testRfind1()
- {
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 0));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 1));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 2));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 3));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 4));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 5));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 6));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 7));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS", 8));
- CPPUNIT_ASSERT_EQUAL(1, ByteVector(".OggS....").rfind("OggS"));
- }
-
- void testRfind2()
- {
- ByteVector r0("**************");
- ByteVector r1("OggS**********");
- ByteVector r2("**********OggS");
- ByteVector r3("OggS******OggS");
- ByteVector r4("OggS*OggS*OggS");
-
- CPPUNIT_ASSERT_EQUAL(-1, r0.find("OggS"));
- CPPUNIT_ASSERT_EQUAL(-1, r0.rfind("OggS"));
- CPPUNIT_ASSERT_EQUAL(0, r1.find("OggS"));
- CPPUNIT_ASSERT_EQUAL(0, r1.rfind("OggS"));
- CPPUNIT_ASSERT_EQUAL(10, r2.find("OggS"));
- CPPUNIT_ASSERT_EQUAL(10, r2.rfind("OggS"));
- CPPUNIT_ASSERT_EQUAL(0, r3.find("OggS"));
- CPPUNIT_ASSERT_EQUAL(10, r3.rfind("OggS"));
- CPPUNIT_ASSERT_EQUAL(10, r4.rfind("OggS"));
- CPPUNIT_ASSERT_EQUAL(10, r4.rfind("OggS", 0));
- CPPUNIT_ASSERT_EQUAL(5, r4.rfind("OggS", 7));
- CPPUNIT_ASSERT_EQUAL(10, r4.rfind("OggS", 12));
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestByteVector);
diff --git a/libs/taglib/tests/test_fileref.cpp b/libs/taglib/tests/test_fileref.cpp
deleted file mode 100644
index 0752c08a43..0000000000
--- a/libs/taglib/tests/test_fileref.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <string>
-#include <stdio.h>
-#include <tag.h>
-#include <fileref.h>
-#include "utils.h"
-
-using namespace std;
-using namespace TagLib;
-
-class TestFileRef : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestFileRef);
- CPPUNIT_TEST(testMusepack);
- CPPUNIT_TEST(testVorbis);
- CPPUNIT_TEST(testSpeex);
- CPPUNIT_TEST(testFLAC);
- CPPUNIT_TEST(testMP3);
- CPPUNIT_TEST(testTrueAudio);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void fileRefSave(const string &filename, const string &ext)
- {
- string newname = copyFile(filename, ext);
-
- FileRef *f = new FileRef(newname.c_str());
- CPPUNIT_ASSERT(!f->isNull());
- f->tag()->setArtist("test artist");
- f->tag()->setTitle("test title");
- f->tag()->setGenre("Test!");
- f->tag()->setAlbum("albummmm");
- f->tag()->setTrack(5);
- f->tag()->setYear(2020);
- f->save();
- delete f;
-
- f = new FileRef(newname.c_str());
- CPPUNIT_ASSERT(!f->isNull());
- CPPUNIT_ASSERT_EQUAL(f->tag()->artist(), String("test artist"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->title(), String("test title"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->genre(), String("Test!"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->album(), String("albummmm"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->track(), TagLib::uint(5));
- CPPUNIT_ASSERT_EQUAL(f->tag()->year(), TagLib::uint(2020));
- f->tag()->setArtist("ttest artist");
- f->tag()->setTitle("ytest title");
- f->tag()->setGenre("uTest!");
- f->tag()->setAlbum("ialbummmm");
- f->tag()->setTrack(7);
- f->tag()->setYear(2080);
- f->save();
- delete f;
-
- f = new FileRef(newname.c_str());
- CPPUNIT_ASSERT(!f->isNull());
- CPPUNIT_ASSERT_EQUAL(f->tag()->artist(), String("ttest artist"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->title(), String("ytest title"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->genre(), String("uTest!"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->album(), String("ialbummmm"));
- CPPUNIT_ASSERT_EQUAL(f->tag()->track(), TagLib::uint(7));
- CPPUNIT_ASSERT_EQUAL(f->tag()->year(), TagLib::uint(2080));
- delete f;
-
- deleteFile(newname);
- }
-
- void testMusepack()
- {
- fileRefSave("click", ".mpc");
- }
-
- void testVorbis()
- {
- fileRefSave("empty", ".ogg");
- }
-
- void testSpeex()
- {
- fileRefSave("empty", ".spx");
- }
-
- void testFLAC()
- {
- fileRefSave("no-tags", ".flac");
- }
-
- void testMP3()
- {
- fileRefSave("xing", ".mp3");
- }
-
- void testTrueAudio()
- {
- fileRefSave("empty", ".tta");
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestFileRef);
diff --git a/libs/taglib/tests/test_id3v1.cpp b/libs/taglib/tests/test_id3v1.cpp
deleted file mode 100644
index 308225c2f8..0000000000
--- a/libs/taglib/tests/test_id3v1.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <string>
-#include <stdio.h>
-#include <id3v1tag.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestID3v1 : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestID3v1);
- CPPUNIT_TEST(testStripWhiteSpace);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testStripWhiteSpace()
- {
- ID3v1::StringHandler h;
- CPPUNIT_ASSERT_EQUAL(String("Foo"), h.parse(ByteVector("Foo ")));
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestID3v1);
diff --git a/libs/taglib/tests/test_id3v2.cpp b/libs/taglib/tests/test_id3v2.cpp
deleted file mode 100644
index ed5e0b0003..0000000000
--- a/libs/taglib/tests/test_id3v2.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <string>
-#include <stdio.h>
-#include <id3v2tag.h>
-#include <mpegfile.h>
-#include <id3v2frame.h>
-#include <uniquefileidentifierframe.h>
-#include <textidentificationframe.h>
-#include <attachedpictureframe.h>
-#include <generalencapsulatedobjectframe.h>
-#include <relativevolumeframe.h>
-#include <urllinkframe.h>
-#include "utils.h"
-
-using namespace std;
-using namespace TagLib;
-
-class PublicFrame : public ID3v2::Frame
-{
- public:
- PublicFrame() : ID3v2::Frame(ByteVector("XXXX\0\0\0\0\0\0", 10)) {}
- String readStringField(const ByteVector &data, String::Type encoding,
- int *positon = 0)
- { return ID3v2::Frame::readStringField(data, encoding, positon); }
- virtual String toString() const { return String::null; }
- virtual void parseFields(const ByteVector &) {}
- virtual ByteVector renderFields() const { return ByteVector::null; }
-};
-
-class TestID3v2 : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestID3v2);
- CPPUNIT_TEST(testUnsynchDecode);
- CPPUNIT_TEST(testUTF16BEDelimiter);
- CPPUNIT_TEST(testUTF16Delimiter);
- CPPUNIT_TEST(testReadStringField);
- CPPUNIT_TEST(testParseAPIC);
- CPPUNIT_TEST(testParseAPIC_UTF16_BOM);
- CPPUNIT_TEST(testParseGEOB);
- CPPUNIT_TEST(testParseRelativeVolumeFrame);
- CPPUNIT_TEST(testParseUniqueFileIdentifierFrame);
- CPPUNIT_TEST(testParseEmptyUniqueFileIdentifierFrame);
- CPPUNIT_TEST(testBrokenFrame1);
- CPPUNIT_TEST(testItunes24FrameSize);
- CPPUNIT_TEST(testParseUrlLinkFrame);
- CPPUNIT_TEST(testRenderUrlLinkFrame);
- CPPUNIT_TEST(testParseUserUrlLinkFrame);
- CPPUNIT_TEST(testRenderUserUrlLinkFrame);
- CPPUNIT_TEST(testSaveUTF16Comment);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testUnsynchDecode()
- {
- MPEG::File f("data/unsynch.id3", false);
- CPPUNIT_ASSERT(f.tag());
- CPPUNIT_ASSERT_EQUAL(String("My babe just cares for me"), f.tag()->title());
- }
-
- void testUTF16BEDelimiter()
- {
- ID3v2::TextIdentificationFrame f(ByteVector("TPE1"), String::UTF16BE);
- StringList sl;
- sl.append("Foo");
- sl.append("Bar");
- f.setText(sl);
- CPPUNIT_ASSERT_EQUAL((unsigned int)(4+4+2+1+6+2+6), f.render().size());
- }
-
- void testUTF16Delimiter()
- {
- ID3v2::TextIdentificationFrame f(ByteVector("TPE1"), String::UTF16);
- StringList sl;
- sl.append("Foo");
- sl.append("Bar");
- f.setText(sl);
- CPPUNIT_ASSERT_EQUAL((unsigned int)(4+4+2+1+8+2+8), f.render().size());
- }
-
- void testBrokenFrame1()
- {
- MPEG::File f("data/broken-tenc.id3", false);
- CPPUNIT_ASSERT(f.tag());
- CPPUNIT_ASSERT(!f.ID3v2Tag()->frameListMap().contains("TENC"));
- }
-
- void testReadStringField()
- {
- PublicFrame f;
- ByteVector data("abc\0", 4);
- String str = f.readStringField(data, String::Latin1);
- CPPUNIT_ASSERT_EQUAL(String("abc"), str);
- }
-
- // http://bugs.kde.org/show_bug.cgi?id=151078
- void testParseAPIC()
- {
- ID3v2::AttachedPictureFrame f(ByteVector("APIC"
- "\x00\x00\x00\x07"
- "\x00\x00"
- "\x00"
- "m\x00"
- "\x01"
- "d\x00"
- "\x00", 17));
- CPPUNIT_ASSERT_EQUAL(String("m"), f.mimeType());
- CPPUNIT_ASSERT_EQUAL(ID3v2::AttachedPictureFrame::FileIcon, f.type());
- CPPUNIT_ASSERT_EQUAL(String("d"), f.description());
- }
-
- void testParseAPIC_UTF16_BOM()
- {
- ID3v2::AttachedPictureFrame f(ByteVector(
- "\x41\x50\x49\x43\x00\x02\x0c\x59\x00\x00\x01\x69\x6d\x61\x67\x65"
- "\x2f\x6a\x70\x65\x67\x00\x00\xfe\xff\x00\x63\x00\x6f\x00\x76\x00"
- "\x65\x00\x72\x00\x2e\x00\x6a\x00\x70\x00\x67\x00\x00\xff\xd8\xff",
- 16 * 3));
- CPPUNIT_ASSERT_EQUAL(String("image/jpeg"), f.mimeType());
- CPPUNIT_ASSERT_EQUAL(ID3v2::AttachedPictureFrame::Other, f.type());
- CPPUNIT_ASSERT_EQUAL(String("cover.jpg"), f.description());
- CPPUNIT_ASSERT_EQUAL(ByteVector("\xff\xd8\xff", 3), f.picture());
- }
-
- // http://bugs.kde.org/show_bug.cgi?id=151078
- void testParseGEOB()
- {
- ID3v2::GeneralEncapsulatedObjectFrame f(ByteVector("GEOB"
- "\x00\x00\x00\x08"
- "\x00\x00"
- "\x00"
- "m\x00"
- "f\x00"
- "d\x00"
- "\x00", 18));
- CPPUNIT_ASSERT_EQUAL(String("m"), f.mimeType());
- CPPUNIT_ASSERT_EQUAL(String("f"), f.fileName());
- CPPUNIT_ASSERT_EQUAL(String("d"), f.description());
- }
-
- // http://bugs.kde.org/show_bug.cgi?id=150481
- void testParseRelativeVolumeFrame()
- {
- ID3v2::RelativeVolumeFrame f(
- ByteVector("RVA2" // Frame ID
- "\x00\x00\x00\x0B" // Frame size
- "\x00\x00" // Frame flags
- "ident\x00" // Identification
- "\x02" // Type of channel
- "\x00\x0F" // Volume adjustment
- "\x08" // Bits representing peak
- "\x45", 21)); // Peak volume
- CPPUNIT_ASSERT_EQUAL(String("ident"), f.identification());
- CPPUNIT_ASSERT_EQUAL(15.0f / 512.0f,
- f.volumeAdjustment(ID3v2::RelativeVolumeFrame::FrontRight));
- CPPUNIT_ASSERT_EQUAL((uchar)8,
- f.peakVolume(ID3v2::RelativeVolumeFrame::FrontRight).bitsRepresentingPeak);
- CPPUNIT_ASSERT_EQUAL(ByteVector("\x45"),
- f.peakVolume(ID3v2::RelativeVolumeFrame::FrontRight).peakVolume);
- }
-
- void testParseUniqueFileIdentifierFrame()
- {
- ID3v2::UniqueFileIdentifierFrame f(
- ByteVector("UFID" // Frame ID
- "\x00\x00\x00\x09" // Frame size
- "\x00\x00" // Frame flags
- "owner\x00" // Owner identifier
- "\x00\x01\x02", 19)); // Identifier
- CPPUNIT_ASSERT_EQUAL(String("owner"),
- f.owner());
- CPPUNIT_ASSERT_EQUAL(ByteVector("\x00\x01\x02", 3),
- f.identifier());
- }
-
- void testParseEmptyUniqueFileIdentifierFrame()
- {
- ID3v2::UniqueFileIdentifierFrame f(
- ByteVector("UFID" // Frame ID
- "\x00\x00\x00\x01" // Frame size
- "\x00\x00" // Frame flags
- "\x00" // Owner identifier
- "", 11)); // Identifier
- CPPUNIT_ASSERT_EQUAL(String(),
- f.owner());
- CPPUNIT_ASSERT_EQUAL(ByteVector(),
- f.identifier());
- }
-
- void testParseUrlLinkFrame()
- {
- ID3v2::UrlLinkFrame f(
- ByteVector("WOAF" // Frame ID
- "\x00\x00\x00\x12" // Frame size
- "\x00\x00" // Frame flags
- "http://example.com", 28)); // URL
- CPPUNIT_ASSERT_EQUAL(String("http://example.com"), f.url());
- }
-
- void testRenderUrlLinkFrame()
- {
- ID3v2::UrlLinkFrame f("WOAF");
- f.setUrl("http://example.com");
- CPPUNIT_ASSERT_EQUAL(
- ByteVector("WOAF" // Frame ID
- "\x00\x00\x00\x12" // Frame size
- "\x00\x00" // Frame flags
- "http://example.com", 28), // URL
- f.render());
- }
-
- void testParseUserUrlLinkFrame()
- {
- ID3v2::UserUrlLinkFrame f(
- ByteVector("WXXX" // Frame ID
- "\x00\x00\x00\x17" // Frame size
- "\x00\x00" // Frame flags
- "\x00" // Text encoding
- "foo\x00" // Description
- "http://example.com", 33)); // URL
- CPPUNIT_ASSERT_EQUAL(String("foo"), f.description());
- CPPUNIT_ASSERT_EQUAL(String("http://example.com"), f.url());
- }
-
- void testRenderUserUrlLinkFrame()
- {
- ID3v2::UserUrlLinkFrame f;
- f.setDescription("foo");
- f.setUrl("http://example.com");
- CPPUNIT_ASSERT_EQUAL(
- ByteVector("WXXX" // Frame ID
- "\x00\x00\x00\x17" // Frame size
- "\x00\x00" // Frame flags
- "\x00" // Text encoding
- "foo\x00" // Description
- "http://example.com", 33), // URL
- f.render());
- }
-
- void testItunes24FrameSize()
- {
- MPEG::File f("data/005411.id3", false);
- CPPUNIT_ASSERT(f.tag());
- CPPUNIT_ASSERT(f.ID3v2Tag()->frameListMap().contains("TIT2"));
- CPPUNIT_ASSERT_EQUAL(String("Sunshine Superman"), f.ID3v2Tag()->frameListMap()["TIT2"].front()->toString());
- }
-
- void testSaveUTF16Comment()
- {
- String::Type defaultEncoding = ID3v2::FrameFactory::instance()->defaultTextEncoding();
- string newname = copyFile("xing", ".mp3");
- ID3v2::FrameFactory::instance()->setDefaultTextEncoding(String::UTF16);
- MPEG::File foo(newname.c_str());
- foo.strip();
- foo.tag()->setComment("Test comment!");
- foo.save();
- MPEG::File bar(newname.c_str());
- CPPUNIT_ASSERT_EQUAL(String("Test comment!"), bar.tag()->comment());
- deleteFile(newname);
- ID3v2::FrameFactory::instance()->setDefaultTextEncoding(defaultEncoding);
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestID3v2);
diff --git a/libs/taglib/tests/test_list.cpp b/libs/taglib/tests/test_list.cpp
deleted file mode 100644
index 39cbaf0a65..0000000000
--- a/libs/taglib/tests/test_list.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <tlist.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestList : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestList);
- CPPUNIT_TEST(testList);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testList()
- {
- List<int> l1;
- List<int> l2;
- List<int> l3;
- l1.append(2);
- l2.append(3);
- l2.append(4);
- l1.append(l2);
- l1.prepend(1);
- l3.append(1);
- l3.append(2);
- l3.append(3);
- l3.append(4);
- CPPUNIT_ASSERT(l1 == l3);
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestList);
diff --git a/libs/taglib/tests/test_map.cpp b/libs/taglib/tests/test_map.cpp
deleted file mode 100644
index b6f77aae32..0000000000
--- a/libs/taglib/tests/test_map.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <tstring.h>
-#include <tmap.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestMap : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestMap);
- CPPUNIT_TEST(testInsert);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testInsert()
- {
- Map<String, int> m;
- m.insert("foo", 3);
- CPPUNIT_ASSERT_EQUAL(3, m["foo"]);
- m.insert("foo", 7);
- CPPUNIT_ASSERT_EQUAL(7, m["foo"]);
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestMap);
diff --git a/libs/taglib/tests/test_mpeg.cpp b/libs/taglib/tests/test_mpeg.cpp
deleted file mode 100644
index 6278ff55ee..0000000000
--- a/libs/taglib/tests/test_mpeg.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <string>
-#include <stdio.h>
-#include <mpegfile.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestMPEG : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestMPEG);
- CPPUNIT_TEST(testVersion2DurationWithXingHeader);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testVersion2DurationWithXingHeader()
- {
- MPEG::File f("data/mpeg2.mp3");
- CPPUNIT_ASSERT_EQUAL(5387, f.audioProperties()->length());
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestMPEG);
diff --git a/libs/taglib/tests/test_string.cpp b/libs/taglib/tests/test_string.cpp
deleted file mode 100644
index ab331c89e9..0000000000
--- a/libs/taglib/tests/test_string.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <tstring.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestString : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestString);
- CPPUNIT_TEST(testString);
- CPPUNIT_TEST(testUTF16Encode);
- CPPUNIT_TEST(testUTF16Decode);
- CPPUNIT_TEST(testUTF16DecodeInvalidBOM);
- CPPUNIT_TEST(testUTF16DecodeEmptyWithBOM);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testString()
- {
- String s = "taglib string";
- ByteVector v = "taglib string";
- CPPUNIT_ASSERT(v == s.data(String::Latin1));
-
- char str[] = "taglib string";
- CPPUNIT_ASSERT(strcmp(s.toCString(), str) == 0);
-
- String unicode("José Carlos", String::UTF8);
- CPPUNIT_ASSERT(strcmp(unicode.toCString(), "Jos\xe9 Carlos") == 0);
-
- String latin = "Jos\xe9 Carlos";
- CPPUNIT_ASSERT(strcmp(latin.toCString(true), "José Carlos") == 0);
-
- String unicode2(unicode.to8Bit(true), String::UTF8);
- CPPUNIT_ASSERT(unicode == unicode2);
-
- CPPUNIT_ASSERT(strcmp(String::number(0).toCString(), "0") == 0);
- CPPUNIT_ASSERT(strcmp(String::number(12345678).toCString(), "12345678") == 0);
- CPPUNIT_ASSERT(strcmp(String::number(-12345678).toCString(), "-12345678") == 0);
-
- String n = "123";
- CPPUNIT_ASSERT(n.toInt() == 123);
-
- n = "-123";
- CPPUNIT_ASSERT(n.toInt() == -123);
-
- CPPUNIT_ASSERT(String("0").toInt() == 0);
- CPPUNIT_ASSERT(String("1").toInt() == 1);
-
- CPPUNIT_ASSERT(String(" foo ").stripWhiteSpace() == String("foo"));
- CPPUNIT_ASSERT(String("foo ").stripWhiteSpace() == String("foo"));
- CPPUNIT_ASSERT(String(" foo").stripWhiteSpace() == String("foo"));
-
- CPPUNIT_ASSERT(memcmp(String("foo").data(String::Latin1).data(), "foo", 3) == 0);
- CPPUNIT_ASSERT(memcmp(String("f").data(String::Latin1).data(), "f", 1) == 0);
-
- ByteVector utf16 = unicode.data(String::UTF16);
-
- // Check to make sure that the BOM is there and that the data size is correct
-
- CPPUNIT_ASSERT(utf16.size() == 2 + (unicode.size() * 2));
-
- CPPUNIT_ASSERT(unicode == String(utf16, String::UTF16));
- }
-
- void testUTF16Encode()
- {
- String a("foo");
- ByteVector b("\0f\0o\0o", 6);
- ByteVector c("f\0o\0o\0", 6);
- ByteVector d("\377\376f\0o\0o\0", 8);
- CPPUNIT_ASSERT(a.data(String::UTF16BE) != a.data(String::UTF16LE));
- CPPUNIT_ASSERT(b == a.data(String::UTF16BE));
- CPPUNIT_ASSERT(c == a.data(String::UTF16LE));
- CPPUNIT_ASSERT_EQUAL(d, a.data(String::UTF16));
- }
-
- void testUTF16Decode()
- {
- String a("foo");
- ByteVector b("\0f\0o\0o", 6);
- ByteVector c("f\0o\0o\0", 6);
- ByteVector d("\377\376f\0o\0o\0", 8);
- CPPUNIT_ASSERT_EQUAL(a, String(b, String::UTF16BE));
- CPPUNIT_ASSERT_EQUAL(a, String(c, String::UTF16LE));
- CPPUNIT_ASSERT_EQUAL(a, String(d, String::UTF16));
- }
-
- // this test is expected to print "TagLib: String::prepare() -
- // Invalid UTF16 string." on the console 3 times
- void testUTF16DecodeInvalidBOM()
- {
- ByteVector b(" ", 1);
- ByteVector c(" ", 2);
- ByteVector d(" \0f\0o\0o", 8);
- CPPUNIT_ASSERT_EQUAL(String(), String(b, String::UTF16));
- CPPUNIT_ASSERT_EQUAL(String(), String(c, String::UTF16));
- CPPUNIT_ASSERT_EQUAL(String(), String(d, String::UTF16));
- }
-
- void testUTF16DecodeEmptyWithBOM()
- {
- ByteVector a("\377\376", 2);
- ByteVector b("\376\377", 2);
- CPPUNIT_ASSERT_EQUAL(String(), String(a, String::UTF16));
- CPPUNIT_ASSERT_EQUAL(String(), String(b, String::UTF16));
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestString);
diff --git a/libs/taglib/tests/test_synchdata.cpp b/libs/taglib/tests/test_synchdata.cpp
deleted file mode 100644
index 04ef5359dc..0000000000
--- a/libs/taglib/tests/test_synchdata.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
- *
- * 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 AUTHOR ``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 AUTHOR 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.
- */
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <id3v2synchdata.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestID3v2SynchData : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestID3v2SynchData);
- CPPUNIT_TEST(test1);
- CPPUNIT_TEST(test2);
- CPPUNIT_TEST(test3);
- CPPUNIT_TEST(testDecode1);
- CPPUNIT_TEST(testDecode2);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void test1()
- {
- char data[] = { 0, 0, 0, 127 };
- ByteVector v(data, 4);
-
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::toUInt(v), TagLib::uint(127));
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::fromUInt(127), v);
- }
-
- void test2()
- {
- char data[] = { 0, 0, 1, 0 };
- ByteVector v(data, 4);
-
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::toUInt(v), TagLib::uint(128));
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::fromUInt(128), v);
- }
-
- void test3()
- {
- char data[] = { 0, 0, 1, 1 };
- ByteVector v(data, 4);
-
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::toUInt(v), TagLib::uint(129));
- CPPUNIT_ASSERT_EQUAL(ID3v2::SynchData::fromUInt(129), v);
- }
-
- void testDecode1()
- {
- ByteVector a("\xff\x00\x00", 3);
- a = ID3v2::SynchData::decode(a);
- CPPUNIT_ASSERT_EQUAL((unsigned int)2, a.size());
- CPPUNIT_ASSERT_EQUAL(ByteVector("\xff\x00", 2), a);
- }
-
- void testDecode2()
- {
- ByteVector a("\xff\x44", 2);
- a = ID3v2::SynchData::decode(a);
- CPPUNIT_ASSERT_EQUAL((unsigned int)2, a.size());
- CPPUNIT_ASSERT_EQUAL(ByteVector("\xff\x44", 2), a);
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestID3v2SynchData);
diff --git a/libs/taglib/tests/test_trueaudio.cpp b/libs/taglib/tests/test_trueaudio.cpp
deleted file mode 100644
index b300eef9e3..0000000000
--- a/libs/taglib/tests/test_trueaudio.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include <string>
-#include <stdio.h>
-#include <trueaudiofile.h>
-
-using namespace std;
-using namespace TagLib;
-
-class TestTrueAudio : public CppUnit::TestFixture
-{
- CPPUNIT_TEST_SUITE(TestTrueAudio);
- CPPUNIT_TEST(testReadPropertiesWithoutID3v2);
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void testReadPropertiesWithoutID3v2()
- {
- TrueAudio::File f("data/empty.tta");
- CPPUNIT_ASSERT(f.audioProperties());
- CPPUNIT_ASSERT_EQUAL(3, f.audioProperties()->length());
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(TestTrueAudio);
diff --git a/libs/taglib/tests/utils.h b/libs/taglib/tests/utils.h
deleted file mode 100644
index 21d94526f0..0000000000
--- a/libs/taglib/tests/utils.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <string>
-#include <stdio.h>
-#include <sys/fcntl.h>
-
-using namespace std;
-
-inline string copyFile(const string &filename, const string &ext)
-{
- string newname = string(tempnam(NULL, NULL)) + ext;
- string oldname = string("data/") + filename + ext;
- char buffer[4096];
- int bytes;
- int inf = open(oldname.c_str(), O_RDONLY);
- int outf = open(newname.c_str(), O_CREAT | O_EXCL | O_RDWR, S_IRUSR | S_IWUSR);
- while((bytes = read(inf, buffer, sizeof(buffer))) > 0)
- write(outf, buffer, bytes);
- close(outf);
- close(inf);
- return newname;
-}
-
-inline void deleteFile(const string &filename)
-{
- remove(filename.c_str());
-}
diff --git a/libs/taglib/wscript b/libs/taglib/wscript
deleted file mode 100644
index 8e6fbbbe48..0000000000
--- a/libs/taglib/wscript
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env python
-from waflib.extras import autowaf as autowaf
-import glob
-import os
-
-# Version of this package (even if built as a child)
-LIBTAGLIB_VERSION = '0.0.0'
-
-# Library version (UNIX style major, minor, micro)
-# major increment <=> incompatible changes
-# minor increment <=> compatible changes (additions)
-# micro increment <=> no interface changes
-LIBTAGLIB_LIB_VERSION = '0.0.0'
-
-# Variables for 'waf dist'
-APPNAME = 'libtaglib'
-VERSION = LIBTAGLIB_VERSION
-
-# Mandatory variables
-top = '.'
-out = 'build'
-
-def options(opt):
- autowaf.set_options(opt)
-
-def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
-
-def build(bld):
- # Library
- obj = bld(features = 'cxx cxxshlib')
- sources = bld.path.ant_glob('taglib/*.cpp')
- sources += bld.path.ant_glob('taglib/flac/*.cpp')
- sources += bld.path.ant_glob('taglib/mpc/*.cpp')
- sources += bld.path.ant_glob('taglib/mpeg/*.cpp')
- sources += bld.path.ant_glob('taglib/mpeg/id3v1/*.cpp')
- sources += bld.path.ant_glob('taglib/mpeg/id3v2/*.cpp')
- sources += bld.path.ant_glob('taglib/mpeg/id3v2/frames/*.cpp')
- sources += bld.path.ant_glob('taglib/ogg/*.cpp')
- sources += bld.path.ant_glob('taglib/ogg/vorbis/*.cpp')
- sources += bld.path.ant_glob('taglib/ogg/speex/*.cpp')
- sources += bld.path.ant_glob('taglib/ogg/flac/*.cpp')
- sources += bld.path.ant_glob('taglib/trueaudio/*.cpp')
- sources += bld.path.ant_glob('taglib/wavpack/*.cpp')
- sources += bld.path.ant_glob('taglib/ape/*.cpp')
- sources += bld.path.ant_glob('taglib/toolkit/*.cpp')
- obj.source = sources
-
- include_dirs = '''
- taglib
- taglib/toolkit
- taglib/flac
- taglib/ape
- taglib/mpc
- taglib/mpeg
- taglib/mpeg/id3v1
- taglib/mpeg/id3v2
- taglib/wavpack
- taglib/trueaudio
- taglib/ogg
- taglib/ogg/vorbis
- taglib/ogg/speex
- taglib/ogg/flac
- '''.split()
- obj.export_includes = ['.', 'taglib', 'taglib/toolkit']
- obj.includes = include_dirs
- obj.defines = ['MAKE_TAGLIB_LIB']
- obj.name = 'libtaglib'
- obj.target = 'taglib'
- obj.vnum = LIBTAGLIB_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
-
-def shutdown():
- autowaf.shutdown()
diff --git a/libs/timecode/src/bbt_time.cc b/libs/timecode/src/bbt_time.cc
index cdff66fd69..3b74c27612 100644
--- a/libs/timecode/src/bbt_time.cc
+++ b/libs/timecode/src/bbt_time.cc
@@ -43,6 +43,6 @@ BBT_Time::BBT_Time (double dbeats)
assert (dbeats >= 0);
bars = 0;
- beats = rint (floor (dbeats));
- ticks = rint (floor (BBT_Time::ticks_per_beat * fmod (dbeats, 1.0)));
+ beats = lrint (floor (dbeats));
+ ticks = lrint (floor (BBT_Time::ticks_per_beat * fmod (dbeats, 1.0)));
}
diff --git a/libs/timecode/src/time.cc b/libs/timecode/src/time.cc
index 6f954a8d51..cf2c4a1b3e 100644
--- a/libs/timecode/src/time.cc
+++ b/libs/timecode/src/time.cc
@@ -716,11 +716,11 @@ timecode_to_sample(
frame_rate() in the non-integer Timecode rate case.
*/
- sample = (int64_t)rint((((timecode.hours * 60 * 60) + (timecode.minutes * 60) + timecode.seconds) * (rint(timecode.rate) * frames_per_timecode_frame)) + (timecode.frames * frames_per_timecode_frame));
+ sample = (int64_t)lrint((((timecode.hours * 60 * 60) + (timecode.minutes * 60) + timecode.seconds) * (lrint(timecode.rate) * frames_per_timecode_frame)) + (timecode.frames * frames_per_timecode_frame));
}
if (use_subframes) {
- sample += (int64_t) rint(((double)timecode.subframes * frames_per_timecode_frame) / (double)subframes_per_frame);
+ sample += (int64_t) lrint(((double)timecode.subframes * frames_per_timecode_frame) / (double)subframes_per_frame);
}
if (use_offset) {
@@ -786,7 +786,7 @@ sample_to_timecode (
const int64_t D = frameNumber / 17982;
const int64_t M = frameNumber % 17982;
- timecode.subframes = rint(subframes_per_frame
+ timecode.subframes = lrint(subframes_per_frame
* ((double)offset_sample * timecode_frames_per_second / sample_frame_rate - (double)frameNumber));
if (timecode.subframes == subframes_per_frame) {
@@ -806,7 +806,7 @@ sample_to_timecode (
double timecode_frames_fraction;
int64_t timecode_frames_left;
const double frames_per_timecode_frame = sample_frame_rate / timecode_frames_per_second;
- const int64_t frames_per_hour = (int64_t)(3600 * rint(timecode_frames_per_second) * frames_per_timecode_frame);
+ const int64_t frames_per_hour = (int64_t)(3600 * lrint(timecode_frames_per_second) * frames_per_timecode_frame);
timecode.hours = offset_sample / frames_per_hour;
@@ -815,7 +815,7 @@ sample_to_timecode (
timecode_frames_left_exact = (double)(offset_sample % frames_per_hour) / frames_per_timecode_frame;
timecode_frames_fraction = timecode_frames_left_exact - floor( timecode_frames_left_exact );
- timecode.subframes = (int32_t) rint(timecode_frames_fraction * subframes_per_frame);
+ timecode.subframes = (int32_t) lrint(timecode_frames_fraction * subframes_per_frame);
timecode_frames_left = (int64_t) floor (timecode_frames_left_exact);
if (use_subframes && timecode.subframes == subframes_per_frame) {
@@ -823,10 +823,10 @@ sample_to_timecode (
timecode.subframes = 0;
}
- timecode.minutes = timecode_frames_left / ((int32_t) rint (timecode_frames_per_second) * 60);
- timecode_frames_left = timecode_frames_left % ((int32_t) rint (timecode_frames_per_second) * 60);
- timecode.seconds = timecode_frames_left / (int32_t) rint(timecode_frames_per_second);
- timecode.frames = timecode_frames_left % (int32_t) rint(timecode_frames_per_second);
+ timecode.minutes = timecode_frames_left / ((int32_t) lrint (timecode_frames_per_second) * 60);
+ timecode_frames_left = timecode_frames_left % ((int32_t) lrint (timecode_frames_per_second) * 60);
+ timecode.seconds = timecode_frames_left / (int32_t) lrint(timecode_frames_per_second);
+ timecode.frames = timecode_frames_left % (int32_t) lrint(timecode_frames_per_second);
}
if (!use_subframes) {
diff --git a/libs/timecode/timecode/bbt_time.h b/libs/timecode/timecode/bbt_time.h
index b8be0774bd..9e2a48383b 100644
--- a/libs/timecode/timecode/bbt_time.h
+++ b/libs/timecode/timecode/bbt_time.h
@@ -23,10 +23,12 @@
#include <stdint.h>
#include <iomanip>
+#include "timecode/visibility.h"
+
namespace Timecode {
/** Bar, Beat, Tick Time (i.e. Tempo-Based Time) */
-struct BBT_Time {
+struct LIBTIMECODE_API BBT_Time {
static const double ticks_per_beat;
uint32_t bars;
diff --git a/libs/timecode/timecode/time.h b/libs/timecode/timecode/time.h
index dcd537c7e5..65cd3d7a13 100644
--- a/libs/timecode/timecode/time.h
+++ b/libs/timecode/timecode/time.h
@@ -22,6 +22,8 @@
#include <ostream>
#include <inttypes.h>
+#include "timecode/visibility.h"
+
namespace Timecode {
enum Wrap {
@@ -47,7 +49,7 @@ enum TimecodeFormat {
timecode_60
};
-struct Time {
+struct LIBTIMECODE_API Time {
bool negative;
uint32_t hours;
uint32_t minutes;
@@ -87,35 +89,34 @@ struct Time {
};
-Wrap increment (Time& timecode, uint32_t);
-Wrap decrement (Time& timecode, uint32_t);
-Wrap increment_subframes (Time& timecode, uint32_t);
-Wrap decrement_subframes (Time& timecode, uint32_t);
-Wrap increment_seconds (Time& timecode, uint32_t);
-Wrap increment_minutes (Time& timecode, uint32_t);
-Wrap increment_hours (Time& timecode, uint32_t);
-void frames_floor (Time& timecode);
-void seconds_floor (Time& timecode);
-void minutes_floor (Time& timecode);
-void hours_floor (Time& timecode);
+Wrap LIBTIMECODE_API increment (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API decrement (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API increment_subframes (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API decrement_subframes (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API increment_seconds (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API increment_minutes (Time& timecode, uint32_t);
+Wrap LIBTIMECODE_API increment_hours (Time& timecode, uint32_t);
+void LIBTIMECODE_API frames_floor (Time& timecode);
+void LIBTIMECODE_API seconds_floor (Time& timecode);
+void LIBTIMECODE_API minutes_floor (Time& timecode);
+void LIBTIMECODE_API hours_floor (Time& timecode);
-double timecode_to_frames_per_second(TimecodeFormat const t);
-bool timecode_has_drop_frames(TimecodeFormat const t);
+double LIBTIMECODE_API timecode_to_frames_per_second(TimecodeFormat const t);
+bool LIBTIMECODE_API timecode_has_drop_frames(TimecodeFormat const t);
-std::string timecode_format_name (TimecodeFormat const t);
+std::string LIBTIMECODE_API timecode_format_name (TimecodeFormat const t);
-std::string timecode_format_time (Timecode::Time const timecode);
+std::string LIBTIMECODE_API timecode_format_time (Timecode::Time const timecode);
-std::string timecode_format_sampletime (
+std::string LIBTIMECODE_API timecode_format_sampletime (
int64_t sample,
double sample_frame_rate,
double timecode_frames_per_second, bool timecode_drop_frames
);
-bool parse_timecode_format(std::string tc, Timecode::Time &TC);
+bool LIBTIMECODE_API parse_timecode_format(std::string tc, Timecode::Time &TC);
-void
-timecode_to_sample(
+void LIBTIMECODE_API timecode_to_sample(
Timecode::Time& timecode, int64_t& sample,
bool use_offset, bool use_subframes,
/* Note - framerate info is taken from Timecode::Time& */
@@ -125,7 +126,7 @@ timecode_to_sample(
bool offset_is_negative, int64_t offset_samples
);
-void sample_to_timecode (
+void LIBTIMECODE_API sample_to_timecode (
int64_t sample, Timecode::Time& timecode,
bool use_offset, bool use_subframes,
/* framerate info */
@@ -140,6 +141,6 @@ void sample_to_timecode (
} // namespace Timecode
-std::ostream& operator<< (std::ostream& ostr, const Timecode::Time& t);
+extern LIBTIMECODE_API std::ostream& operator<< (std::ostream& ostr, const Timecode::Time& t);
#endif // __timecode_time_h__
diff --git a/libs/timecode/timecode/visibility.h b/libs/timecode/timecode/visibility.h
new file mode 100644
index 0000000000..f1c8833f26
--- /dev/null
+++ b/libs/timecode/timecode/visibility.h
@@ -0,0 +1,40 @@
+/*
+ Copyright (C) 2014 Paul Davis
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __libtimecode_visibility_h__
+#define __libtimecode_visibility_h__
+
+#if defined(COMPILER_MSVC)
+ #define LIBTIMECODE_DLL_IMPORT __declspec(dllimport)
+ #define LIBTIMECODE_DLL_EXPORT __declspec(dllexport)
+ #define LIBTIMECODE_DLL_LOCAL
+#else
+ #define LIBTIMECODE_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBTIMECODE_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBTIMECODE_DLL_LOCAL __attribute__ ((visibility ("hidden")))
+#endif
+
+#ifdef LIBTIMECODE_DLL_EXPORTS // defined if we are building the libtimecode DLL (instead of using it)
+ #define LIBTIMECODE_API LIBTIMECODE_DLL_EXPORT
+#else
+ #define LIBTIMECODE_API LIBTIMECODE_DLL_IMPORT
+#endif
+#define LIBTIMECODE_LOCAL LIBTIMECODE_DLL_LOCAL
+
+#endif /* __libtimecode_visibility_h__ */
diff --git a/libs/timecode/wscript b/libs/timecode/wscript
index 034292b1dd..0ca89403d1 100644
--- a/libs/timecode/wscript
+++ b/libs/timecode/wscript
@@ -3,21 +3,6 @@ from waflib.extras import autowaf as autowaf
from waflib import Options
import os
-# Version of this package (even if built as a child)
-TIMECODE_VERSION = '0.0.0'
-
-# Library version (UNIX style major, minor, micro)
-# major increment <=> incompatible changes
-# minor increment <=> compatible changes (additions)
-# micro increment <=> no interface changes
-# Version history:
-# 0.0.0 = 0,0,0
-TIMECODE_LIB_VERSION = '0.0.0'
-
-# Variables for 'waf dist'
-APPNAME = 'timecode'
-VERSION = TIMECODE_VERSION
-
# Mandatory variables
top = '.'
out = 'build'
@@ -30,15 +15,13 @@ def configure(conf):
autowaf.configure(conf)
def build(bld):
- # Library
- obj = bld(features = 'cxx cxxshlib')
- obj.source = [ 'src/time.cc', 'src/bbt_time.cc' ]
- obj.export_includes = ['.']
- obj.includes = ['.', './src']
- obj.name = 'libtimecode'
- obj.target = 'timecode'
- obj.vnum = TIMECODE_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
+ bld.shlib (
+ source = [ 'src/time.cc', 'src/bbt_time.cc' ],
+ target = 'libtimecode',
+ includes = ['.'],
+ export_includes = ['.'],
+ defines = [ 'LIBTIMECODE_DLL_EXPORTS' ]
+ )
def shutdown():
autowaf.shutdown()
diff --git a/libs/vamp-plugins/AmplitudeFollower.h b/libs/vamp-plugins/AmplitudeFollower.h
index 6c3426e324..3aa91f51f7 100644
--- a/libs/vamp-plugins/AmplitudeFollower.h
+++ b/libs/vamp-plugins/AmplitudeFollower.h
@@ -37,7 +37,7 @@
#ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
#define _AMPLITUDE_FOLLOWER_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin implementing the SuperCollider amplitude follower
diff --git a/libs/vamp-plugins/Onset.cpp b/libs/vamp-plugins/Onset.cpp
index 4a58bf9fa5..b8a9717024 100644
--- a/libs/vamp-plugins/Onset.cpp
+++ b/libs/vamp-plugins/Onset.cpp
@@ -25,29 +25,51 @@ using std::vector;
using std::cerr;
using std::endl;
+#ifdef HAVE_AUBIO4
+const char *getAubioNameForOnsetType(OnsetType t)
+{
+ // In the same order as the enum elements in the header
+ static const char *const names[] = {
+ "energy", "specdiff", "hfc", "complex", "phase", "kl", "mkl", "specflux"
+ };
+ return names[(int)t];
+}
+#endif
+
Onset::Onset(float inputSampleRate) :
Plugin(inputSampleRate),
m_ibuf(0),
- m_fftgrain(0),
m_onset(0),
+#ifdef HAVE_AUBIO4
+ m_onsetdet(0),
+ m_onsettype(OnsetComplex),
+ m_minioi(4),
+ m_silence(-70),
+#else
+ m_fftgrain(0),
m_pv(0),
m_peakpick(0),
m_onsetdet(0),
m_onsettype(aubio_onset_complex),
- m_threshold(0.3),
+ m_channelCount(1),
m_silence(-90),
- m_channelCount(1)
+#endif
+ m_threshold(0.3)
{
}
Onset::~Onset()
{
+#ifdef HAVE_AUBIO4
+ if (m_onsetdet) del_aubio_onset(m_onsetdet);
+#else
if (m_onsetdet) aubio_onsetdetection_free(m_onsetdet);
- if (m_ibuf) del_fvec(m_ibuf);
- if (m_onset) del_fvec(m_onset);
if (m_fftgrain) del_cvec(m_fftgrain);
if (m_pv) del_aubio_pvoc(m_pv);
if (m_peakpick) del_aubio_peakpicker(m_peakpick);
+#endif
+ if (m_ibuf) del_fvec(m_ibuf);
+ if (m_onset) del_fvec(m_onset);
}
string
@@ -77,7 +99,11 @@ Onset::getMaker() const
int
Onset::getPluginVersion() const
{
+#ifdef HAVE_AUBIO4
+ return 2;
+#else
return 1;
+#endif
}
string
@@ -89,10 +115,20 @@ Onset::getCopyright() const
bool
Onset::initialise(size_t channels, size_t stepSize, size_t blockSize)
{
- m_channelCount = channels;
m_stepSize = stepSize;
m_blockSize = blockSize;
+#ifdef HAVE_AUBIO4
+ if (channels != 1) {
+ std::cerr << "Onset::initialise: channels must be 1" << std::endl;
+ return false;
+ }
+ m_ibuf = new_fvec(stepSize);
+ m_onset = new_fvec(1);
+ reset();
+#else
+ m_channelCount = channels;
+
m_ibuf = new_fvec(stepSize, channels);
m_onset = new_fvec(1, channels);
m_fftgrain = new_cvec(blockSize, channels);
@@ -106,12 +142,31 @@ Onset::initialise(size_t channels, size_t stepSize, size_t blockSize)
m_lastOnset = Vamp::RealTime::zeroTime - m_delay - m_delay;
+#endif
return true;
}
void
Onset::reset()
{
+#ifdef HAVE_AUBIO4
+ if (m_onsetdet) del_aubio_onset(m_onsetdet);
+
+ m_onsetdet = new_aubio_onset
+ (const_cast<char *>(getAubioNameForOnsetType(m_onsettype)),
+ m_blockSize,
+ m_stepSize,
+ lrintf(m_inputSampleRate));
+
+ aubio_onset_set_threshold(m_onsetdet, m_threshold);
+ aubio_onset_set_silence(m_onsetdet, m_silence);
+ aubio_onset_set_minioi(m_onsetdet, m_minioi);
+
+ m_delay = Vamp::RealTime::frame2RealTime(4 * m_stepSize,
+ lrintf(m_inputSampleRate));
+
+ m_lastOnset = Vamp::RealTime::zeroTime - m_delay - m_delay;
+#endif
}
size_t
@@ -135,8 +190,13 @@ Onset::getParameterDescriptors() const
desc.identifier = "onsettype";
desc.name = "Onset Detection Function Type";
desc.minValue = 0;
+#ifdef HAVE_AUBIO4
+ desc.maxValue = 7;
+ desc.defaultValue = (int)OnsetComplex;
+#else
desc.maxValue = 6;
desc.defaultValue = (int)aubio_onset_complex;
+#endif
desc.isQuantized = true;
desc.quantizeStep = 1;
desc.valueNames.push_back("Energy Based");
@@ -146,6 +206,9 @@ Onset::getParameterDescriptors() const
desc.valueNames.push_back("Phase Deviation");
desc.valueNames.push_back("Kullback-Liebler");
desc.valueNames.push_back("Modified Kullback-Liebler");
+#ifdef HAVE_AUBIO4
+ desc.valueNames.push_back("Spectral Flux");
+#endif
list.push_back(desc);
desc = ParameterDescriptor();
@@ -162,11 +225,27 @@ Onset::getParameterDescriptors() const
desc.name = "Silence Threshold";
desc.minValue = -120;
desc.maxValue = 0;
+#ifdef HAVE_AUBIO4
+ desc.defaultValue = -70;
+#else
desc.defaultValue = -90;
+#endif
desc.unit = "dB";
desc.isQuantized = false;
list.push_back(desc);
+#ifdef HAVE_AUBIO4
+ desc = ParameterDescriptor();
+ desc.identifier = "minioi";
+ desc.name = "Minimum Inter-Onset Interval";
+ desc.minValue = 0;
+ desc.maxValue = 40;
+ desc.defaultValue = 4;
+ desc.unit = "ms";
+ desc.isQuantized = true;
+ desc.quantizeStep = 1;
+ list.push_back(desc);
+#endif
return list;
}
@@ -179,6 +258,10 @@ Onset::getParameter(std::string param) const
return m_threshold;
} else if (param == "silencethreshold") {
return m_silence;
+#ifdef HAVE_AUBIO4
+ } else if (param == "minioi") {
+ return m_minioi;
+#endif
} else {
return 0.0;
}
@@ -189,6 +272,16 @@ Onset::setParameter(std::string param, float value)
{
if (param == "onsettype") {
switch (lrintf(value)) {
+#ifdef HAVE_AUBIO4
+ case 0: m_onsettype = OnsetEnergy; break;
+ case 1: m_onsettype = OnsetSpecDiff; break;
+ case 2: m_onsettype = OnsetHFC; break;
+ case 3: m_onsettype = OnsetComplex; break;
+ case 4: m_onsettype = OnsetPhase; break;
+ case 5: m_onsettype = OnsetKL; break;
+ case 6: m_onsettype = OnsetMKL; break;
+ case 7: m_onsettype = OnsetSpecFlux; break;
+#else
case 0: m_onsettype = aubio_onset_energy; break;
case 1: m_onsettype = aubio_onset_specdiff; break;
case 2: m_onsettype = aubio_onset_hfc; break;
@@ -196,11 +289,16 @@ Onset::setParameter(std::string param, float value)
case 4: m_onsettype = aubio_onset_phase; break;
case 5: m_onsettype = aubio_onset_kl; break;
case 6: m_onsettype = aubio_onset_mkl; break;
+#endif
}
} else if (param == "peakpickthreshold") {
m_threshold = value;
} else if (param == "silencethreshold") {
m_silence = value;
+#ifdef HAVE_AUBIO4
+ } else if (param == "minioi") {
+ m_minioi = value;
+#endif
}
}
@@ -219,6 +317,7 @@ Onset::getOutputDescriptors() const
d.sampleRate = 0;
list.push_back(d);
+#ifndef HAVE_AUBIO4
d = OutputDescriptor();
d.identifier = "detectionfunction";
d.name = "Onset Detection Function";
@@ -229,7 +328,7 @@ Onset::getOutputDescriptors() const
d.isQuantized = false;
d.sampleType = OutputDescriptor::OneSamplePerStep;
list.push_back(d);
-
+#endif
return list;
}
@@ -237,6 +336,15 @@ Onset::FeatureSet
Onset::process(const float *const *inputBuffers,
Vamp::RealTime timestamp)
{
+#ifdef HAVE_AUBIO4
+ for (size_t i = 0; i < m_stepSize; ++i) {
+ fvec_set_sample(m_ibuf, inputBuffers[0][i], i);
+ }
+
+ aubio_onset_do(m_onsetdet, m_ibuf, m_onset);
+
+ bool isonset = m_onset->data[0];
+#else
for (size_t i = 0; i < m_stepSize; ++i) {
for (size_t j = 0; j < m_channelCount; ++j) {
fvec_write_sample(m_ibuf, inputBuffers[j][i], j, i);
@@ -253,6 +361,7 @@ Onset::process(const float *const *inputBuffers,
isonset = false;
}
}
+#endif
FeatureSet returnFeatures;
@@ -266,11 +375,13 @@ Onset::process(const float *const *inputBuffers,
m_lastOnset = timestamp;
}
}
+#ifndef HAVE_AUBIO4
Feature feature;
for (size_t j = 0; j < m_channelCount; ++j) {
feature.values.push_back(m_onset->data[j][0]);
}
returnFeatures[1].push_back(feature);
+#endif
return returnFeatures;
}
diff --git a/libs/vamp-plugins/Onset.h b/libs/vamp-plugins/Onset.h
index c858151b21..bba95e0d2b 100644
--- a/libs/vamp-plugins/Onset.h
+++ b/libs/vamp-plugins/Onset.h
@@ -17,9 +17,22 @@
#ifndef _ONSET_PLUGIN_H_
#define _ONSET_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
#include <aubio/aubio.h>
+#ifdef HAVE_AUBIO4
+enum OnsetType {
+ OnsetEnergy,
+ OnsetSpecDiff,
+ OnsetHFC,
+ OnsetComplex,
+ OnsetPhase,
+ OnsetKL,
+ OnsetMKL,
+ OnsetSpecFlux // new in 0.4!
+};
+#endif
+
class Onset : public Vamp::Plugin
{
public:
@@ -54,20 +67,25 @@ public:
protected:
fvec_t *m_ibuf;
- cvec_t *m_fftgrain;
fvec_t *m_onset;
+#ifdef HAVE_AUBIO4
+ aubio_onset_t *m_onsetdet;
+ OnsetType m_onsettype;
+ float m_minioi;
+#else
+ cvec_t *m_fftgrain;
aubio_pvoc_t *m_pv;
aubio_pickpeak_t *m_peakpick;
aubio_onsetdetection_t *m_onsetdet;
aubio_onsetdetection_type m_onsettype;
- float m_threshold;
+ size_t m_channelCount;
+#endif
float m_silence;
+ float m_threshold;
size_t m_stepSize;
size_t m_blockSize;
- size_t m_channelCount;
Vamp::RealTime m_delay;
Vamp::RealTime m_lastOnset;
};
-
#endif
diff --git a/libs/vamp-plugins/OnsetDetect.h b/libs/vamp-plugins/OnsetDetect.h
index 3ef50afbb3..d244f66c2d 100644
--- a/libs/vamp-plugins/OnsetDetect.h
+++ b/libs/vamp-plugins/OnsetDetect.h
@@ -15,7 +15,7 @@
#ifndef _ONSET_DETECT_PLUGIN_H_
#define _ONSET_DETECT_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
class OnsetDetectorData;
diff --git a/libs/vamp-plugins/PercussionOnsetDetector.h b/libs/vamp-plugins/PercussionOnsetDetector.h
index d54c0cfa13..3cb094ebba 100644
--- a/libs/vamp-plugins/PercussionOnsetDetector.h
+++ b/libs/vamp-plugins/PercussionOnsetDetector.h
@@ -37,7 +37,7 @@
#ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
#define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that detects percussive events.
diff --git a/libs/vamp-plugins/SpectralCentroid.h b/libs/vamp-plugins/SpectralCentroid.h
index 02cc8d981d..8046338a4d 100644
--- a/libs/vamp-plugins/SpectralCentroid.h
+++ b/libs/vamp-plugins/SpectralCentroid.h
@@ -37,7 +37,7 @@
#ifndef _SPECTRAL_CENTROID_PLUGIN_H_
#define _SPECTRAL_CENTROID_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that calculates the centre of gravity of the
diff --git a/libs/vamp-plugins/ZeroCrossing.h b/libs/vamp-plugins/ZeroCrossing.h
index ede2a74492..e6f81608db 100644
--- a/libs/vamp-plugins/ZeroCrossing.h
+++ b/libs/vamp-plugins/ZeroCrossing.h
@@ -37,7 +37,7 @@
#ifndef _ZERO_CROSSING_PLUGIN_H_
#define _ZERO_CROSSING_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that calculates the positions and density of
diff --git a/libs/vamp-plugins/plugins.cpp b/libs/vamp-plugins/plugins.cpp
index 4a2523bc1d..6a04077882 100644
--- a/libs/vamp-plugins/plugins.cpp
+++ b/libs/vamp-plugins/plugins.cpp
@@ -38,8 +38,8 @@
#include "libvampplugins-config.h"
#endif
-#include "vamp/vamp.h"
-#include "vamp-sdk/PluginAdapter.h"
+#include <vamp/vamp.h>
+#include <vamp-sdk/PluginAdapter.h>
#include "ZeroCrossing.h"
#include "SpectralCentroid.h"
diff --git a/libs/vamp-plugins/wscript b/libs/vamp-plugins/wscript
index 46198cc18e..4808d33612 100644
--- a/libs/vamp-plugins/wscript
+++ b/libs/vamp-plugins/wscript
@@ -26,7 +26,10 @@ def configure(conf):
conf.load('compiler_cxx')
autowaf.configure(conf)
autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
- autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', mandatory=False)
+ autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
+ atleast_version='0.3.2')
+ autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO4',
+ atleast_version='0.4.0', mandatory=False)
conf.write_config_header('libvampplugins-config.h', remove=False)
def build(bld):
@@ -44,8 +47,10 @@ def build(bld):
obj.includes = ['.']
obj.name = 'libardourvampplugins'
obj.target = 'ardourvampplugins'
- obj.uselib = 'FFTW3F'
+ obj.uselib = 'FFTW3F VAMPSDK'
obj.use = 'libvampplugin libqmdsp'
+ obj.defines = [ 'ARDOUR_VAMP_PLUGINS_DLL_EPORTS' ]
+ autowaf.ensure_visible_symbols (obj, True)
if bld.is_defined('HAVE_AUBIO'):
obj.source += ' Onset.cpp '
obj.uselib += ' AUBIO '
diff --git a/libs/vamp-sdk/COPYING b/libs/vamp-sdk/COPYING
deleted file mode 100644
index 19fa472218..0000000000
--- a/libs/vamp-sdk/COPYING
+++ /dev/null
@@ -1,26 +0,0 @@
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-
diff --git a/libs/vamp-sdk/README b/libs/vamp-sdk/README
deleted file mode 100644
index 9454038260..0000000000
--- a/libs/vamp-sdk/README
+++ /dev/null
@@ -1,240 +0,0 @@
-
-Vamp
-====
-
-An API for audio analysis and feature extraction plugins.
-
- http://www.vamp-plugins.org/
-
-Vamp is an API for C and C++ plugins that process sampled audio data
-to produce descriptive output (measurements or semantic observations).
-
-The principal differences between Vamp and a real-time audio
-processing plugin system such as VST are:
-
- * Vamp plugins may output complex multidimensional data with labels.
- As a consequence, they are likely to work best when the output
- data has a much lower sampling rate than the input. (This also
- means it is usually desirable to implement them in C++ using the
- high-level base class provided rather than use the raw C API.)
-
- * While Vamp plugins receive data block-by-block, they are not
- required to return output immediately on receiving the input.
- A Vamp plugin may be non-causal, preferring to store up data
- based on its input until the end of a processing run and then
- return all results at once.
-
- * Vamp plugins have more control over their inputs than a typical
- real-time processing plugin. For example, they can indicate to
- the host their preferred processing block and step sizes, and these
- may differ.
-
- * Vamp plugins may ask to receive data in the frequency domain
- instead of the time domain. The host takes the responsibility
- for converting the input data using an FFT of windowed frames.
- This simplifies plugins that do straightforward frequency-domain
- processing and permits the host to cache frequency-domain data
- when possible.
-
- * A Vamp plugin is configured once before each processing run, and
- receives no further parameter changes during use -- unlike real-
- time plugin APIs in which the input parameters may change at any
- time. This also means that fundamental properties such as the
- number of values per output or the preferred processing block
- size may depend on the input parameters.
-
- * Vamp plugins do not have to be able to run in real time.
-
-
-About this SDK
-==============
-
-This is version 1.1b of the Vamp plugin Software Development Kit.
-Plugins and hosts built with this SDK are binary compatible with those
-built using version 1.0 of the SDK.
-
-This SDK contains the following:
-
- * vamp/vamp.h
-
-The formal C language plugin API for Vamp plugins.
-
-A Vamp plugin is a dynamic library (.so, .dll or .dylib depending on
-platform) exposing one C-linkage entry point (vampGetPluginDescriptor)
-which returns data defined in the rest of this C header.
-
-Although the C API is the official API for Vamp, we don't recommend
-that you program directly to it. The C++ abstraction found in the
-vamp-sdk directory (below) is preferable for most purposes and is
-more thoroughly documented.
-
- * vamp-sdk
-
-C++ classes for straightforwardly implementing Vamp plugins and hosts.
-
-Plugins should subclass Vamp::Plugin and then use Vamp::PluginAdapter
-to expose the correct C API for the plugin. Plugin authors should
-read vamp-sdk/PluginBase.h and Plugin.h for code documentation, and
-refer to the example plugin code in the examples directory. Plugins
-should link with -lvampsdk. [*NOTE: this has changed from vamp-sdk in
-previous versions, to avoid conflict with the use of hyphens for
-library versioning schemes on some platforms.]
-
-Hosts may use the Vamp::PluginHostAdapter to convert the loaded
-plugin's C API back into a Vamp::Plugin object. Host authors should
-refer to the example host code in the host directory. Hosts should
-link with -lvamphostsdk. [*NOTE: this has changed from vamp-hostsdk
-in previous versions, to avoid conflict with the use of hyphens for
-library versioning schemes on some platforms.]
-
- * vamp-sdk/hostext
-
-Additional C++ classes to make a host's life easier (introduced in
-version 1.1 of the Vamp SDK).
-
-Vamp::HostExt::PluginLoader provides a very easy interface for a host
-to discover, load, and find out category information about the
-available plugins. Most "casual" Vamp hosts will probably want to use
-this class.
-
-Vamp::HostExt::PluginInputDomainAdapter provides a means for hosts to
-handle plugins that expect frequency-domain input, without having to
-convert the input themselves.
-
-Vamp::HostExt::PluginChannelAdapter provides a means for hosts to use
-plugins that do not necessarily support the same number of audio
-channels as they have available, without having to worry about
-applying a channel management / mixdown policy themselves.
-
-The PluginLoader class can also use the input domain and channel
-adapters automatically to make the entire conversion process
-transparent to the host if required.
-
- * examples
-
-Example plugins implemented using the C++ classes. ZeroCrossing
-calculates the positions and density of zero-crossing points in an
-audio waveform. SpectralCentroid calculates the centre of gravity of
-the frequency domain representation of each block of audio.
-AmplitudeFollower tracks the amplitude of a signal based on a method
-from the SuperCollider real-time audio system.
-PercussionOnsetDetector estimates the locations of percussive onsets
-using a simple method described in "Drum Source Separation using
-Percussive Feature Detection and Spectral Modulation" by Dan Barry,
-Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005.
-
- * host
-
-A simple command-line Vamp host, capable of loading a plugin and using
-it to process a complete audio file, with its default parameters.
-Requires libsndfile (http://www.mega-nerd.com/libsndfile/).
-
-If you don't have libsndfile, you may want to edit the Makefile to
-change the default build target from "all" to "sdk", so as to compile
-only the SDK and not the host.
-
-
-Plugin Lookup and Categorisation
-================================
-
-The Vamp API does not officially specify how to load plugin libraries
-or where to find them. However, the SDK does include a function
-(Vamp::PluginHostAdapter::getPluginPath()) that returns a recommended
-directory search path that hosts may use for plugin libraries, and a
-class (Vamp::HostExt::PluginLoader) that implements a sensible
-cross-platform lookup policy using this path. We recommend using this
-class in your host unless you have a good reason not to want to. This
-implementation also permits the user to set the environment variable
-VAMP_PATH to override the default path if desired.
-
-The policy used by Vamp::HostExt::PluginLoader -- and our
-recommendation for any host -- is to search each directory in the path
-returned by getPluginPath for .DLL (on Windows), .so (on Linux,
-Solaris, BSD etc) or .dylib (on OS/X) files, then to load each one and
-perform a dynamic name lookup on the vampGetPluginDescriptor function
-to enumerate the plugins in the library. This operation will
-necessarily be system-dependent.
-
-Vamp also has an informal convention for sorting plugins into
-functional categories. In addition to the library file itself, a
-plugin library may install a category file with the same name as the
-library but .cat extension. The existence and format of this file are
-not specified by the Vamp API, but by convention the file may contain
-lines of the format
-
-vamp:pluginlibrary:pluginname::General Category > Specific Category
-
-which a host may read and use to assign plugins a location within a
-category tree for display to the user. The expectation is that
-advanced users may also choose to set up their own preferred category
-trees, which is why this information is not queried as part of the
-Vamp plugin's API itself. The Vamp::HostExt::PluginLoader class also
-provides support for plugin category lookup using this scheme.
-
-
-Building and Installing the SDK and Examples
-============================================
-
-To build the SDK, the simple host, and the example plugins, edit the
-Makefile to suit your platform according to the comments in it, then
-run "make".
-
-To use an IDE to build a plugin or host using the Vamp SDK, simply add
-the .cpp files in the vamp-sdk directory to your project.
-
-Installing the example plugins so that they can be found by other Vamp
-hosts depends on your platform:
-
- * Windows: copy the files
- examples/vamp-example-plugins.dll
- examples/vamp-example-plugins.cat
- to
- C:\Program Files\Vamp Plugins
-
- * Linux: copy the files
- examples/vamp-example-plugins.so
- examples/vamp-example-plugins.cat
- to
- /usr/local/lib/vamp/
-
- * OS/X: copy the files
- examples/vamp-example-plugins.dylib
- examples/vamp-example-plugins.cat
- to
- /Library/Audio/Plug-Ins/Vamp
-
-
-Licensing
-=========
-
-This plugin SDK is freely redistributable under a "new-style BSD"
-licence. See the file COPYING for more details. In short, you may
-modify and redistribute the SDK and example plugins within any
-commercial or non-commercial, proprietary or open-source plugin or
-application under almost any conditions, with no obligation to provide
-source code, provided you retain the original copyright note.
-
-
-See Also
-========
-
-Sonic Visualiser, an interactive open-source graphical audio
-inspection, analysis and visualisation tool supporting Vamp plugins.
-http://www.sonicvisualiser.org/
-
-
-Authors
-=======
-
-Vamp and the Vamp SDK were designed and made at the Centre for Digital
-Music at Queen Mary, University of London.
-
-The SDK was written by Chris Cannam, copyright (c) 2005-2007
-Chris Cannam and QMUL.
-
-Mark Sandler and Christian Landone provided ideas and direction, and
-Mark Levy, Dan Stowell, Martin Gasser and Craig Sapp provided testing
-and other input for the 1.0 API and SDK. The API also uses some ideas
-from prior plugin systems, notably DSSI (http://dssi.sourceforge.net)
-and FEAPI (http://feapi.sourceforge.net).
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp
deleted file mode 100644
index a14fe44086..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp
+++ /dev/null
@@ -1,721 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
- This file by Mark Levy and Chris Cannam, Copyright 2007-2009 QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include <vector>
-#include <map>
-
-#include "vamp-hostsdk/PluginBufferingAdapter.h"
-#include "vamp-hostsdk/PluginInputDomainAdapter.h"
-
-using std::vector;
-using std::map;
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginBufferingAdapter::Impl
-{
-public:
- Impl(Plugin *plugin, float inputSampleRate);
- ~Impl();
-
- void setPluginStepSize(size_t stepSize);
- void setPluginBlockSize(size_t blockSize);
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
-
- OutputList getOutputDescriptors() const;
-
- void setParameter(std::string, float);
- void selectProgram(std::string);
-
- void reset();
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
-protected:
- class RingBuffer
- {
- public:
- RingBuffer(int n) :
- m_buffer(new float[n+1]), m_writer(0), m_reader(0), m_size(n+1) { }
- virtual ~RingBuffer() { delete[] m_buffer; }
-
- int getSize() const { return m_size-1; }
- void reset() { m_writer = 0; m_reader = 0; }
-
- int getReadSpace() const {
- int writer = m_writer, reader = m_reader, space;
- if (writer > reader) space = writer - reader;
- else if (writer < reader) space = (writer + m_size) - reader;
- else space = 0;
- return space;
- }
-
- int getWriteSpace() const {
- int writer = m_writer;
- int reader = m_reader;
- int space = (reader + m_size - writer - 1);
- if (space >= m_size) space -= m_size;
- return space;
- }
-
- int peek(float *destination, int n) const {
-
- int available = getReadSpace();
-
- if (n > available) {
- for (int i = available; i < n; ++i) {
- destination[i] = 0.f;
- }
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_reader;
- int here = m_size - reader;
- const float *const bufbase = m_buffer + reader;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- destination[i] = bufbase[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- destination[i] = bufbase[i];
- }
- float *const destbase = destination + here;
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- destbase[i] = m_buffer[i];
- }
- }
-
- return n;
- }
-
- int skip(int n) {
-
- int available = getReadSpace();
- if (n > available) {
- n = available;
- }
- if (n == 0) return n;
-
- int reader = m_reader;
- reader += n;
- while (reader >= m_size) reader -= m_size;
- m_reader = reader;
- return n;
- }
-
- int write(const float *source, int n) {
-
- int available = getWriteSpace();
- if (n > available) {
- n = available;
- }
- if (n == 0) return n;
-
- int writer = m_writer;
- int here = m_size - writer;
- float *const bufbase = m_buffer + writer;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- bufbase[i] = source[i];
- }
- } else {
- for (int i = 0; i < here; ++i) {
- bufbase[i] = source[i];
- }
- const int nh = n - here;
- const float *const srcbase = source + here;
- float *const buf = m_buffer;
- for (int i = 0; i < nh; ++i) {
- buf[i] = srcbase[i];
- }
- }
-
- writer += n;
- while (writer >= m_size) writer -= m_size;
- m_writer = writer;
-
- return n;
- }
-
- int zero(int n) {
-
- int available = getWriteSpace();
- if (n > available) {
- n = available;
- }
- if (n == 0) return n;
-
- int writer = m_writer;
- int here = m_size - writer;
- float *const bufbase = m_buffer + writer;
-
- if (here >= n) {
- for (int i = 0; i < n; ++i) {
- bufbase[i] = 0.f;
- }
- } else {
- for (int i = 0; i < here; ++i) {
- bufbase[i] = 0.f;
- }
- const int nh = n - here;
- for (int i = 0; i < nh; ++i) {
- m_buffer[i] = 0.f;
- }
- }
-
- writer += n;
- while (writer >= m_size) writer -= m_size;
- m_writer = writer;
-
- return n;
- }
-
- protected:
- float *m_buffer;
- int m_writer;
- int m_reader;
- int m_size;
-
- private:
- RingBuffer(const RingBuffer &); // not provided
- RingBuffer &operator=(const RingBuffer &); // not provided
- };
-
- Plugin *m_plugin;
- size_t m_inputStepSize; // value passed to wrapper initialise()
- size_t m_inputBlockSize; // value passed to wrapper initialise()
- size_t m_setStepSize; // value passed to setPluginStepSize()
- size_t m_setBlockSize; // value passed to setPluginBlockSize()
- size_t m_stepSize; // value actually used to initialise plugin
- size_t m_blockSize; // value actually used to initialise plugin
- size_t m_channels;
- vector<RingBuffer *> m_queue;
- float **m_buffers;
- float m_inputSampleRate;
- long m_frame;
- bool m_unrun;
- mutable OutputList m_outputs;
- mutable std::map<int, bool> m_rewriteOutputTimes;
-
- void processBlock(FeatureSet& allFeatureSets);
-};
-
-PluginBufferingAdapter::PluginBufferingAdapter(Plugin *plugin) :
- PluginWrapper(plugin)
-{
- m_impl = new Impl(plugin, m_inputSampleRate);
-}
-
-PluginBufferingAdapter::~PluginBufferingAdapter()
-{
- delete m_impl;
-}
-
-size_t
-PluginBufferingAdapter::getPreferredStepSize() const
-{
- return getPreferredBlockSize();
-}
-
-size_t
-PluginBufferingAdapter::getPreferredBlockSize() const
-{
- return PluginWrapper::getPreferredBlockSize();
-}
-
-size_t
-PluginBufferingAdapter::getPluginPreferredStepSize() const
-{
- return PluginWrapper::getPreferredStepSize();
-}
-
-size_t
-PluginBufferingAdapter::getPluginPreferredBlockSize() const
-{
- return PluginWrapper::getPreferredBlockSize();
-}
-
-void
-PluginBufferingAdapter::setPluginStepSize(size_t stepSize)
-{
- m_impl->setPluginStepSize(stepSize);
-}
-
-void
-PluginBufferingAdapter::setPluginBlockSize(size_t blockSize)
-{
- m_impl->setPluginBlockSize(blockSize);
-}
-
-void
-PluginBufferingAdapter::getActualStepAndBlockSizes(size_t &stepSize,
- size_t &blockSize)
-{
- m_impl->getActualStepAndBlockSizes(stepSize, blockSize);
-}
-
-bool
-PluginBufferingAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-PluginBufferingAdapter::OutputList
-PluginBufferingAdapter::getOutputDescriptors() const
-{
- return m_impl->getOutputDescriptors();
-}
-
-void
-PluginBufferingAdapter::setParameter(std::string name, float value)
-{
- m_impl->setParameter(name, value);
-}
-
-void
-PluginBufferingAdapter::selectProgram(std::string name)
-{
- m_impl->selectProgram(name);
-}
-
-void
-PluginBufferingAdapter::reset()
-{
- m_impl->reset();
-}
-
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- return m_impl->process(inputBuffers, timestamp);
-}
-
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::getRemainingFeatures()
-{
- return m_impl->getRemainingFeatures();
-}
-
-PluginBufferingAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
- m_plugin(plugin),
- m_inputStepSize(0),
- m_inputBlockSize(0),
- m_setStepSize(0),
- m_setBlockSize(0),
- m_stepSize(0),
- m_blockSize(0),
- m_channels(0),
- m_queue(0),
- m_buffers(0),
- m_inputSampleRate(inputSampleRate),
- m_frame(0),
- m_unrun(true)
-{
- (void)getOutputDescriptors(); // set up m_outputs and m_rewriteOutputTimes
-}
-
-PluginBufferingAdapter::Impl::~Impl()
-{
- // the adapter will delete the plugin
-
- for (size_t i = 0; i < m_channels; ++i) {
- delete m_queue[i];
- delete[] m_buffers[i];
- }
- delete[] m_buffers;
-}
-
-void
-PluginBufferingAdapter::Impl::setPluginStepSize(size_t stepSize)
-{
- if (m_inputStepSize != 0) {
- std::cerr << "PluginBufferingAdapter::setPluginStepSize: ERROR: Cannot be called after initialise()" << std::endl;
- return;
- }
- m_setStepSize = stepSize;
-}
-
-void
-PluginBufferingAdapter::Impl::setPluginBlockSize(size_t blockSize)
-{
- if (m_inputBlockSize != 0) {
- std::cerr << "PluginBufferingAdapter::setPluginBlockSize: ERROR: Cannot be called after initialise()" << std::endl;
- return;
- }
- m_setBlockSize = blockSize;
-}
-
-void
-PluginBufferingAdapter::Impl::getActualStepAndBlockSizes(size_t &stepSize,
- size_t &blockSize)
-{
- stepSize = m_stepSize;
- blockSize = m_blockSize;
-}
-
-bool
-PluginBufferingAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- if (stepSize != blockSize) {
- std::cerr << "PluginBufferingAdapter::initialise: input stepSize must be equal to blockSize for this adapter (stepSize = " << stepSize << ", blockSize = " << blockSize << ")" << std::endl;
- return false;
- }
-
- m_channels = channels;
- m_inputStepSize = stepSize;
- m_inputBlockSize = blockSize;
-
- // if the user has requested particular step or block sizes, use
- // those; otherwise use the step and block sizes which the plugin
- // prefers
-
- m_stepSize = 0;
- m_blockSize = 0;
-
- if (m_setStepSize > 0) {
- m_stepSize = m_setStepSize;
- }
- if (m_setBlockSize > 0) {
- m_blockSize = m_setBlockSize;
- }
-
- if (m_stepSize == 0 && m_blockSize == 0) {
- m_stepSize = m_plugin->getPreferredStepSize();
- m_blockSize = m_plugin->getPreferredBlockSize();
- }
-
- bool freq = (m_plugin->getInputDomain() == Vamp::Plugin::FrequencyDomain);
-
- // or sensible defaults if it has no preference
- if (m_blockSize == 0) {
- if (m_stepSize == 0) {
- m_blockSize = 1024;
- if (freq) {
- m_stepSize = m_blockSize / 2;
- } else {
- m_stepSize = m_blockSize;
- }
- } else if (freq) {
- m_blockSize = m_stepSize * 2;
- } else {
- m_blockSize = m_stepSize;
- }
- } else if (m_stepSize == 0) { // m_blockSize != 0 (that was handled above)
- if (freq) {
- m_stepSize = m_blockSize/2;
- } else {
- m_stepSize = m_blockSize;
- }
- }
-
- // current implementation breaks if step is greater than block
- if (m_stepSize > m_blockSize) {
- size_t newBlockSize;
- if (freq) {
- newBlockSize = m_stepSize * 2;
- } else {
- newBlockSize = m_stepSize;
- }
- std::cerr << "PluginBufferingAdapter::initialise: WARNING: step size " << m_stepSize << " is greater than block size " << m_blockSize << ": cannot handle this in adapter; adjusting block size to " << newBlockSize << std::endl;
- m_blockSize = newBlockSize;
- }
-
-// std::cerr << "PluginBufferingAdapter::initialise: NOTE: stepSize " << m_inputStepSize << " -> " << m_stepSize
-// << ", blockSize " << m_inputBlockSize << " -> " << m_blockSize << std::endl;
-
- m_buffers = new float *[m_channels];
-
- for (size_t i = 0; i < m_channels; ++i) {
- m_queue.push_back(new RingBuffer(m_blockSize + m_inputBlockSize));
- m_buffers[i] = new float[m_blockSize];
- }
-
- bool success = m_plugin->initialise(m_channels, m_stepSize, m_blockSize);
-
-// std::cerr << "PluginBufferingAdapter::initialise: success = " << success << std::endl;
-
- if (success) {
- // Re-query outputs; properties such as bin count may have
- // changed on initialise
- m_outputs.clear();
- (void)getOutputDescriptors();
- }
-
- return success;
-}
-
-PluginBufferingAdapter::OutputList
-PluginBufferingAdapter::Impl::getOutputDescriptors() const
-{
- if (m_outputs.empty()) {
-// std::cerr << "PluginBufferingAdapter::getOutputDescriptors: querying anew" << std::endl;
-
- m_outputs = m_plugin->getOutputDescriptors();
- }
-
- PluginBufferingAdapter::OutputList outs = m_outputs;
-
- for (size_t i = 0; i < outs.size(); ++i) {
-
- switch (outs[i].sampleType) {
-
- case OutputDescriptor::OneSamplePerStep:
- outs[i].sampleType = OutputDescriptor::FixedSampleRate;
- outs[i].sampleRate = (1.f / m_inputSampleRate) * m_stepSize;
- m_rewriteOutputTimes[i] = true;
- break;
-
- case OutputDescriptor::FixedSampleRate:
- if (outs[i].sampleRate == 0.f) {
- outs[i].sampleRate = (1.f / m_inputSampleRate) * m_stepSize;
- }
- // We actually only need to rewrite output times for
- // features that don't have timestamps already, but we
- // can't tell from here whether our features will have
- // timestamps or not
- m_rewriteOutputTimes[i] = true;
- break;
-
- case OutputDescriptor::VariableSampleRate:
- m_rewriteOutputTimes[i] = false;
- break;
- }
- }
-
- return outs;
-}
-
-void
-PluginBufferingAdapter::Impl::setParameter(std::string name, float value)
-{
- m_plugin->setParameter(name, value);
-
- // Re-query outputs; properties such as bin count may have changed
- m_outputs.clear();
- (void)getOutputDescriptors();
-}
-
-void
-PluginBufferingAdapter::Impl::selectProgram(std::string name)
-{
- m_plugin->selectProgram(name);
-
- // Re-query outputs; properties such as bin count may have changed
- m_outputs.clear();
- (void)getOutputDescriptors();
-}
-
-void
-PluginBufferingAdapter::Impl::reset()
-{
- m_frame = 0;
- m_unrun = true;
-
- for (size_t i = 0; i < m_queue.size(); ++i) {
- m_queue[i]->reset();
- }
-
- m_plugin->reset();
-}
-
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::Impl::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- if (m_inputStepSize == 0) {
- std::cerr << "PluginBufferingAdapter::process: ERROR: Plugin has not been initialised" << std::endl;
- return FeatureSet();
- }
-
- FeatureSet allFeatureSets;
-
- if (m_unrun) {
- m_frame = RealTime::realTime2Frame(timestamp,
- int(m_inputSampleRate + 0.5));
- m_unrun = false;
- }
-
- // queue the new input
-
- for (size_t i = 0; i < m_channels; ++i) {
- int written = m_queue[i]->write(inputBuffers[i], m_inputBlockSize);
- if (written < int(m_inputBlockSize) && i == 0) {
- std::cerr << "WARNING: PluginBufferingAdapter::Impl::process: "
- << "Buffer overflow: wrote " << written
- << " of " << m_inputBlockSize
- << " input samples (for plugin step size "
- << m_stepSize << ", block size " << m_blockSize << ")"
- << std::endl;
- }
- }
-
- // process as much as we can
-
- while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
- processBlock(allFeatureSets);
- }
-
- return allFeatureSets;
-}
-
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::Impl::getRemainingFeatures()
-{
- FeatureSet allFeatureSets;
-
- // process remaining samples in queue
- while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
- processBlock(allFeatureSets);
- }
-
- // pad any last samples remaining and process
- if (m_queue[0]->getReadSpace() > 0) {
- for (size_t i = 0; i < m_channels; ++i) {
- m_queue[i]->zero(m_blockSize - m_queue[i]->getReadSpace());
- }
- processBlock(allFeatureSets);
- }
-
- // get remaining features
-
- FeatureSet featureSet = m_plugin->getRemainingFeatures();
-
- for (map<int, FeatureList>::iterator iter = featureSet.begin();
- iter != featureSet.end(); ++iter) {
- FeatureList featureList = iter->second;
- for (size_t i = 0; i < featureList.size(); ++i) {
- allFeatureSets[iter->first].push_back(featureList[i]);
- }
- }
-
- return allFeatureSets;
-}
-
-void
-PluginBufferingAdapter::Impl::processBlock(FeatureSet& allFeatureSets)
-{
- for (size_t i = 0; i < m_channels; ++i) {
- m_queue[i]->peek(m_buffers[i], m_blockSize);
- }
-
- long frame = m_frame;
- RealTime timestamp = RealTime::frame2RealTime
- (frame, int(m_inputSampleRate + 0.5));
-
- FeatureSet featureSet = m_plugin->process(m_buffers, timestamp);
-
- PluginWrapper *wrapper = dynamic_cast<PluginWrapper *>(m_plugin);
- RealTime adjustment;
- if (wrapper) {
- PluginInputDomainAdapter *ida =
- wrapper->getWrapper<PluginInputDomainAdapter>();
- if (ida) adjustment = ida->getTimestampAdjustment();
- }
-
- for (FeatureSet::iterator iter = featureSet.begin();
- iter != featureSet.end(); ++iter) {
-
- int outputNo = iter->first;
-
- if (m_rewriteOutputTimes[outputNo]) {
-
- FeatureList featureList = iter->second;
-
- for (size_t i = 0; i < featureList.size(); ++i) {
-
- switch (m_outputs[outputNo].sampleType) {
-
- case OutputDescriptor::OneSamplePerStep:
- // use our internal timestamp, always
- featureList[i].timestamp = timestamp + adjustment;
- featureList[i].hasTimestamp = true;
- break;
-
- case OutputDescriptor::FixedSampleRate:
- // use our internal timestamp if feature lacks one
- if (!featureList[i].hasTimestamp) {
- featureList[i].timestamp = timestamp + adjustment;
- featureList[i].hasTimestamp = true;
- }
- break;
-
- case OutputDescriptor::VariableSampleRate:
- break; // plugin must set timestamp
-
- default:
- break;
- }
-
- allFeatureSets[outputNo].push_back(featureList[i]);
- }
- } else {
- for (size_t i = 0; i < iter->second.size(); ++i) {
- allFeatureSets[outputNo].push_back(iter->second[i]);
- }
- }
- }
-
- // step forward
-
- for (size_t i = 0; i < m_channels; ++i) {
- m_queue[i]->skip(m_stepSize);
- }
-
- // increment internal frame counter each time we step forward
- m_frame += m_stepSize;
-}
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginBufferingAdapter.cpp)
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp
deleted file mode 100644
index d259a259a6..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginChannelAdapter.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginChannelAdapter::Impl
-{
-public:
- Impl(Plugin *plugin);
- ~Impl();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
- FeatureSet processInterleaved(const float *inputBuffers, RealTime timestamp);
-
-protected:
- Plugin *m_plugin;
- size_t m_blockSize;
- size_t m_inputChannels;
- size_t m_pluginChannels;
- float **m_buffer;
- float **m_deinterleave;
- const float **m_forwardPtrs;
-};
-
-PluginChannelAdapter::PluginChannelAdapter(Plugin *plugin) :
- PluginWrapper(plugin)
-{
- m_impl = new Impl(plugin);
-}
-
-PluginChannelAdapter::~PluginChannelAdapter()
-{
- delete m_impl;
-}
-
-bool
-PluginChannelAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- return m_impl->process(inputBuffers, timestamp);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::processInterleaved(const float *inputBuffers,
- RealTime timestamp)
-{
- return m_impl->processInterleaved(inputBuffers, timestamp);
-}
-
-PluginChannelAdapter::Impl::Impl(Plugin *plugin) :
- m_plugin(plugin),
- m_blockSize(0),
- m_inputChannels(0),
- m_pluginChannels(0),
- m_buffer(0),
- m_deinterleave(0),
- m_forwardPtrs(0)
-{
-}
-
-PluginChannelAdapter::Impl::~Impl()
-{
- // the adapter will delete the plugin
-
- if (m_buffer) {
- if (m_inputChannels > m_pluginChannels) {
- delete[] m_buffer[0];
- } else {
- for (size_t i = 0; i < m_pluginChannels - m_inputChannels; ++i) {
- delete[] m_buffer[i];
- }
- }
- delete[] m_buffer;
- m_buffer = 0;
- }
-
- if (m_deinterleave) {
- for (size_t i = 0; i < m_inputChannels; ++i) {
- delete[] m_deinterleave[i];
- }
- delete[] m_deinterleave;
- m_deinterleave = 0;
- }
-
- if (m_forwardPtrs) {
- delete[] m_forwardPtrs;
- m_forwardPtrs = 0;
- }
-}
-
-bool
-PluginChannelAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- m_blockSize = blockSize;
-
- size_t minch = m_plugin->getMinChannelCount();
- size_t maxch = m_plugin->getMaxChannelCount();
-
- m_inputChannels = channels;
-
- if (m_inputChannels < minch) {
-
- m_forwardPtrs = new const float *[minch];
-
- if (m_inputChannels > 1) {
- // We need a set of zero-valued buffers to add to the
- // forwarded pointers
- m_buffer = new float*[minch - channels];
- for (size_t i = 0; i < minch; ++i) {
- m_buffer[i] = new float[blockSize];
- for (size_t j = 0; j < blockSize; ++j) {
- m_buffer[i][j] = 0.f;
- }
- }
- }
-
- m_pluginChannels = minch;
-
-// std::cerr << "PluginChannelAdapter::initialise: expanding " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
-
- } else if (m_inputChannels > maxch) {
-
- // We only need m_buffer if we are mixing down to a single
- // channel -- otherwise we can just forward the same float* as
- // passed in to process(), expecting the excess to be ignored
-
- if (maxch == 1) {
- m_buffer = new float *[1];
- m_buffer[0] = new float[blockSize];
-
-// std::cerr << "PluginChannelAdapter::initialise: mixing " << m_inputChannels << " to mono for plugin" << std::endl;
-
- } else {
-
-// std::cerr << "PluginChannelAdapter::initialise: reducing " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
- }
-
- m_pluginChannels = maxch;
-
- } else {
-
-// std::cerr << "PluginChannelAdapter::initialise: accepting given number of channels (" << m_inputChannels << ")" << std::endl;
- m_pluginChannels = m_inputChannels;
- }
-
- return m_plugin->initialise(m_pluginChannels, stepSize, blockSize);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::Impl::processInterleaved(const float *inputBuffers,
- RealTime timestamp)
-{
- if (!m_deinterleave) {
- m_deinterleave = new float *[m_inputChannels];
- for (size_t i = 0; i < m_inputChannels; ++i) {
- m_deinterleave[i] = new float[m_blockSize];
- }
- }
-
- for (size_t i = 0; i < m_inputChannels; ++i) {
- for (size_t j = 0; j < m_blockSize; ++j) {
- m_deinterleave[i][j] = inputBuffers[j * m_inputChannels + i];
- }
- }
-
- return process(m_deinterleave, timestamp);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::Impl::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
-// std::cerr << "PluginChannelAdapter::process: " << m_inputChannels << " -> " << m_pluginChannels << " channels" << std::endl;
-
- if (m_inputChannels < m_pluginChannels) {
-
- if (m_inputChannels == 1) {
- for (size_t i = 0; i < m_pluginChannels; ++i) {
- m_forwardPtrs[i] = inputBuffers[0];
- }
- } else {
- for (size_t i = 0; i < m_inputChannels; ++i) {
- m_forwardPtrs[i] = inputBuffers[i];
- }
- for (size_t i = m_inputChannels; i < m_pluginChannels; ++i) {
- m_forwardPtrs[i] = m_buffer[i - m_inputChannels];
- }
- }
-
- return m_plugin->process(m_forwardPtrs, timestamp);
-
- } else if (m_inputChannels > m_pluginChannels) {
-
- if (m_pluginChannels == 1) {
- for (size_t j = 0; j < m_blockSize; ++j) {
- m_buffer[0][j] = inputBuffers[0][j];
- }
- for (size_t i = 1; i < m_inputChannels; ++i) {
- for (size_t j = 0; j < m_blockSize; ++j) {
- m_buffer[0][j] += inputBuffers[i][j];
- }
- }
- for (size_t j = 0; j < m_blockSize; ++j) {
- m_buffer[0][j] /= m_inputChannels;
- }
- return m_plugin->process(m_buffer, timestamp);
- } else {
- return m_plugin->process(inputBuffers, timestamp);
- }
-
- } else {
-
- return m_plugin->process(inputBuffers, timestamp);
- }
-}
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginChannelAdapter.cpp)
-
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp
deleted file mode 100644
index c30c98724e..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp
+++ /dev/null
@@ -1,456 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginHostAdapter.h"
-#include <cstdlib>
-
-#if ( VAMP_SDK_MAJOR_VERSION != 2 || VAMP_SDK_MINOR_VERSION != 2 )
-#error Unexpected version of Vamp SDK header included
-#endif
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.cpp)
-
-namespace Vamp
-{
-
-PluginHostAdapter::PluginHostAdapter(const VampPluginDescriptor *descriptor,
- float inputSampleRate) :
- Plugin(inputSampleRate),
- m_descriptor(descriptor)
-{
-// std::cerr << "PluginHostAdapter::PluginHostAdapter (plugin = " << descriptor->name << ")" << std::endl;
- m_handle = m_descriptor->instantiate(m_descriptor, inputSampleRate);
- if (!m_handle) {
-// std::cerr << "WARNING: PluginHostAdapter: Plugin instantiation failed for plugin " << m_descriptor->name << std::endl;
- }
-}
-
-PluginHostAdapter::~PluginHostAdapter()
-{
-// std::cerr << "PluginHostAdapter::~PluginHostAdapter (plugin = " << m_descriptor->name << ")" << std::endl;
- if (m_handle) m_descriptor->cleanup(m_handle);
-}
-
-std::vector<std::string>
-PluginHostAdapter::getPluginPath()
-{
- std::vector<std::string> path;
- std::string envPath;
-
- char *cpath = getenv("VAMP_PATH");
- if (cpath) envPath = cpath;
-
-#ifdef _WIN32
-#define PATH_SEPARATOR ';'
-#define DEFAULT_VAMP_PATH "%ProgramFiles%\\Vamp Plugins"
-#else
-#define PATH_SEPARATOR ':'
-#ifdef __APPLE__
-#define DEFAULT_VAMP_PATH "$HOME/Library/Audio/Plug-Ins/Vamp:/Library/Audio/Plug-Ins/Vamp"
-#else
-#define DEFAULT_VAMP_PATH "$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp"
-#endif
-#endif
-
- if (envPath == "") {
- envPath = DEFAULT_VAMP_PATH;
- char *chome = getenv("HOME");
- if (chome) {
- std::string home(chome);
- std::string::size_type f;
- while ((f = envPath.find("$HOME")) != std::string::npos &&
- f < envPath.length()) {
- envPath.replace(f, 5, home);
- }
- }
-#ifdef _WIN32
- char *cpfiles = getenv("ProgramFiles");
- if (!cpfiles) cpfiles = (char *)"C:\\Program Files";
- std::string pfiles(cpfiles);
- std::string::size_type f;
- while ((f = envPath.find("%ProgramFiles%")) != std::string::npos &&
- f < envPath.length()) {
- envPath.replace(f, 14, pfiles);
- }
-#endif
- }
-
- std::string::size_type index = 0, newindex = 0;
-
- while ((newindex = envPath.find(PATH_SEPARATOR, index)) < envPath.size()) {
- path.push_back(envPath.substr(index, newindex - index));
- index = newindex + 1;
- }
-
- path.push_back(envPath.substr(index));
-
- return path;
-}
-
-bool
-PluginHostAdapter::initialise(size_t channels,
- size_t stepSize,
- size_t blockSize)
-{
- if (!m_handle) return false;
- return m_descriptor->initialise(m_handle, channels, stepSize, blockSize) ?
- true : false;
-}
-
-void
-PluginHostAdapter::reset()
-{
- if (!m_handle) {
-// std::cerr << "PluginHostAdapter::reset: no handle" << std::endl;
- return;
- }
-// std::cerr << "PluginHostAdapter::reset(" << m_handle << ")" << std::endl;
- m_descriptor->reset(m_handle);
-}
-
-PluginHostAdapter::InputDomain
-PluginHostAdapter::getInputDomain() const
-{
- if (m_descriptor->inputDomain == vampFrequencyDomain) {
- return FrequencyDomain;
- } else {
- return TimeDomain;
- }
-}
-
-unsigned int
-PluginHostAdapter::getVampApiVersion() const
-{
- return m_descriptor->vampApiVersion;
-}
-
-std::string
-PluginHostAdapter::getIdentifier() const
-{
- return m_descriptor->identifier;
-}
-
-std::string
-PluginHostAdapter::getName() const
-{
- return m_descriptor->name;
-}
-
-std::string
-PluginHostAdapter::getDescription() const
-{
- return m_descriptor->description;
-}
-
-std::string
-PluginHostAdapter::getMaker() const
-{
- return m_descriptor->maker;
-}
-
-int
-PluginHostAdapter::getPluginVersion() const
-{
- return m_descriptor->pluginVersion;
-}
-
-std::string
-PluginHostAdapter::getCopyright() const
-{
- return m_descriptor->copyright;
-}
-
-PluginHostAdapter::ParameterList
-PluginHostAdapter::getParameterDescriptors() const
-{
- ParameterList list;
- for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
- const VampParameterDescriptor *spd = m_descriptor->parameters[i];
- ParameterDescriptor pd;
- pd.identifier = spd->identifier;
- pd.name = spd->name;
- pd.description = spd->description;
- pd.unit = spd->unit;
- pd.minValue = spd->minValue;
- pd.maxValue = spd->maxValue;
- pd.defaultValue = spd->defaultValue;
- pd.isQuantized = spd->isQuantized;
- pd.quantizeStep = spd->quantizeStep;
- if (pd.isQuantized && spd->valueNames) {
- for (unsigned int j = 0; spd->valueNames[j]; ++j) {
- pd.valueNames.push_back(spd->valueNames[j]);
- }
- }
- list.push_back(pd);
- }
- return list;
-}
-
-float
-PluginHostAdapter::getParameter(std::string param) const
-{
- if (!m_handle) return 0.0;
-
- for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
- if (param == m_descriptor->parameters[i]->identifier) {
- return m_descriptor->getParameter(m_handle, i);
- }
- }
-
- return 0.0;
-}
-
-void
-PluginHostAdapter::setParameter(std::string param,
- float value)
-{
- if (!m_handle) return;
-
- for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
- if (param == m_descriptor->parameters[i]->identifier) {
- m_descriptor->setParameter(m_handle, i, value);
- return;
- }
- }
-}
-
-PluginHostAdapter::ProgramList
-PluginHostAdapter::getPrograms() const
-{
- ProgramList list;
-
- for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
- list.push_back(m_descriptor->programs[i]);
- }
-
- return list;
-}
-
-std::string
-PluginHostAdapter::getCurrentProgram() const
-{
- if (!m_handle) return "";
-
- int pn = m_descriptor->getCurrentProgram(m_handle);
- return m_descriptor->programs[pn];
-}
-
-void
-PluginHostAdapter::selectProgram(std::string program)
-{
- if (!m_handle) return;
-
- for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
- if (program == m_descriptor->programs[i]) {
- m_descriptor->selectProgram(m_handle, i);
- return;
- }
- }
-}
-
-size_t
-PluginHostAdapter::getPreferredStepSize() const
-{
- if (!m_handle) return 0;
- return m_descriptor->getPreferredStepSize(m_handle);
-}
-
-size_t
-PluginHostAdapter::getPreferredBlockSize() const
-{
- if (!m_handle) return 0;
- return m_descriptor->getPreferredBlockSize(m_handle);
-}
-
-size_t
-PluginHostAdapter::getMinChannelCount() const
-{
- if (!m_handle) return 0;
- return m_descriptor->getMinChannelCount(m_handle);
-}
-
-size_t
-PluginHostAdapter::getMaxChannelCount() const
-{
- if (!m_handle) return 0;
- return m_descriptor->getMaxChannelCount(m_handle);
-}
-
-PluginHostAdapter::OutputList
-PluginHostAdapter::getOutputDescriptors() const
-{
- OutputList list;
- if (!m_handle) {
-// std::cerr << "PluginHostAdapter::getOutputDescriptors: no handle " << std::endl;
- return list;
- }
-
- unsigned int count = m_descriptor->getOutputCount(m_handle);
-
- for (unsigned int i = 0; i < count; ++i) {
- VampOutputDescriptor *sd = m_descriptor->getOutputDescriptor(m_handle, i);
- OutputDescriptor d;
- d.identifier = sd->identifier;
- d.name = sd->name;
- d.description = sd->description;
- d.unit = sd->unit;
- d.hasFixedBinCount = sd->hasFixedBinCount;
- d.binCount = sd->binCount;
- if (d.hasFixedBinCount && sd->binNames) {
- for (unsigned int j = 0; j < sd->binCount; ++j) {
- d.binNames.push_back(sd->binNames[j] ? sd->binNames[j] : "");
- }
- }
- d.hasKnownExtents = sd->hasKnownExtents;
- d.minValue = sd->minValue;
- d.maxValue = sd->maxValue;
- d.isQuantized = sd->isQuantized;
- d.quantizeStep = sd->quantizeStep;
-
- switch (sd->sampleType) {
- case vampOneSamplePerStep:
- d.sampleType = OutputDescriptor::OneSamplePerStep; break;
- case vampFixedSampleRate:
- d.sampleType = OutputDescriptor::FixedSampleRate; break;
- case vampVariableSampleRate:
- d.sampleType = OutputDescriptor::VariableSampleRate; break;
- }
-
- d.sampleRate = sd->sampleRate;
-
- if (m_descriptor->vampApiVersion >= 2) {
- d.hasDuration = sd->hasDuration;
- } else {
- d.hasDuration = false;
- }
-
- list.push_back(d);
-
- m_descriptor->releaseOutputDescriptor(sd);
- }
-
- return list;
-}
-
-PluginHostAdapter::FeatureSet
-PluginHostAdapter::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- FeatureSet fs;
- if (!m_handle) return fs;
-
- int sec = timestamp.sec;
- int nsec = timestamp.nsec;
-
- VampFeatureList *features = m_descriptor->process(m_handle,
- inputBuffers,
- sec, nsec);
-
- convertFeatures(features, fs);
- m_descriptor->releaseFeatureSet(features);
- return fs;
-}
-
-PluginHostAdapter::FeatureSet
-PluginHostAdapter::getRemainingFeatures()
-{
- FeatureSet fs;
- if (!m_handle) return fs;
-
- VampFeatureList *features = m_descriptor->getRemainingFeatures(m_handle);
-
- convertFeatures(features, fs);
- m_descriptor->releaseFeatureSet(features);
- return fs;
-}
-
-void
-PluginHostAdapter::convertFeatures(VampFeatureList *features,
- FeatureSet &fs)
-{
- if (!features) return;
-
- unsigned int outputs = m_descriptor->getOutputCount(m_handle);
-
- for (unsigned int i = 0; i < outputs; ++i) {
-
- VampFeatureList &list = features[i];
-
- if (list.featureCount > 0) {
-
- Feature feature;
- feature.values.reserve(list.features[0].v1.valueCount);
-
- for (unsigned int j = 0; j < list.featureCount; ++j) {
-
- feature.hasTimestamp = list.features[j].v1.hasTimestamp;
- feature.timestamp = RealTime(list.features[j].v1.sec,
- list.features[j].v1.nsec);
- feature.hasDuration = false;
-
- if (m_descriptor->vampApiVersion >= 2) {
- unsigned int j2 = j + list.featureCount;
- feature.hasDuration = list.features[j2].v2.hasDuration;
- feature.duration = RealTime(list.features[j2].v2.durationSec,
- list.features[j2].v2.durationNsec);
- }
-
- for (unsigned int k = 0; k < list.features[j].v1.valueCount; ++k) {
- feature.values.push_back(list.features[j].v1.values[k]);
- }
-
- if (list.features[j].v1.label) {
- feature.label = list.features[j].v1.label;
- }
-
- fs[i].push_back(feature);
-
- if (list.features[j].v1.valueCount > 0) {
- feature.values.clear();
- }
-
- if (list.features[j].v1.label) {
- feature.label = "";
- }
- }
- }
- }
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginHostAdapter.cpp)
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp
deleted file mode 100644
index f1391b5bbd..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp
+++ /dev/null
@@ -1,673 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- This file is based in part on Don Cross's public domain FFT
- implementation.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginInputDomainAdapter.h"
-
-#include <cmath>
-
-
-/**
- * If you want to compile using FFTW instead of the built-in FFT
- * implementation for the PluginInputDomainAdapter, define HAVE_FFTW3
- * in the Makefile.
- *
- * Be aware that FFTW is licensed under the GPL -- unlike this SDK,
- * which is provided under a more liberal BSD license in order to
- * permit use in closed source applications. The use of FFTW would
- * mean that your code would need to be licensed under the GPL as
- * well. Do not define this symbol unless you understand and accept
- * the implications of this.
- *
- * Parties such as Linux distribution packagers who redistribute this
- * SDK for use in other programs should _not_ define this symbol, as
- * it would change the effective licensing terms under which the SDK
- * was available to third party developers.
- *
- * The default is not to use FFTW, and to use the built-in FFT instead.
- *
- * Note: The FFTW code uses FFTW_MEASURE, and so will perform badly on
- * its first invocation unless the host has saved and restored FFTW
- * wisdom (see the FFTW documentation).
- */
-#ifdef HAVE_FFTW3
-#include <fftw3.h>
-#endif
-
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginInputDomainAdapter::Impl
-{
-public:
- Impl(Plugin *plugin, float inputSampleRate);
- ~Impl();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- size_t getPreferredStepSize() const;
- size_t getPreferredBlockSize() const;
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- void setProcessTimestampMethod(ProcessTimestampMethod m);
- ProcessTimestampMethod getProcessTimestampMethod() const;
-
- RealTime getTimestampAdjustment() const;
-
-protected:
- Plugin *m_plugin;
- float m_inputSampleRate;
- int m_channels;
- int m_stepSize;
- int m_blockSize;
- float **m_freqbuf;
-
- double *m_ri;
- double *m_window;
-
- ProcessTimestampMethod m_method;
- int m_processCount;
- float **m_shiftBuffers;
-
-#ifdef HAVE_FFTW3
- fftw_plan m_plan;
- fftw_complex *m_cbuf;
-#else
- double *m_ro;
- double *m_io;
- void fft(unsigned int n, bool inverse,
- double *ri, double *ii, double *ro, double *io);
-#endif
-
- FeatureSet processShiftingTimestamp(const float *const *inputBuffers, RealTime timestamp);
- FeatureSet processShiftingData(const float *const *inputBuffers, RealTime timestamp);
-
- size_t makeBlockSizeAcceptable(size_t) const;
-};
-
-PluginInputDomainAdapter::PluginInputDomainAdapter(Plugin *plugin) :
- PluginWrapper(plugin)
-{
- m_impl = new Impl(plugin, m_inputSampleRate);
-}
-
-PluginInputDomainAdapter::~PluginInputDomainAdapter()
-{
- delete m_impl;
-}
-
-bool
-PluginInputDomainAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-void
-PluginInputDomainAdapter::reset()
-{
- m_impl->reset();
-}
-
-Plugin::InputDomain
-PluginInputDomainAdapter::getInputDomain() const
-{
- return TimeDomain;
-}
-
-size_t
-PluginInputDomainAdapter::getPreferredStepSize() const
-{
- return m_impl->getPreferredStepSize();
-}
-
-size_t
-PluginInputDomainAdapter::getPreferredBlockSize() const
-{
- return m_impl->getPreferredBlockSize();
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::process(const float *const *inputBuffers, RealTime timestamp)
-{
- return m_impl->process(inputBuffers, timestamp);
-}
-
-void
-PluginInputDomainAdapter::setProcessTimestampMethod(ProcessTimestampMethod m)
-{
- m_impl->setProcessTimestampMethod(m);
-}
-
-PluginInputDomainAdapter::ProcessTimestampMethod
-PluginInputDomainAdapter::getProcessTimestampMethod() const
-{
- return m_impl->getProcessTimestampMethod();
-}
-
-RealTime
-PluginInputDomainAdapter::getTimestampAdjustment() const
-{
- return m_impl->getTimestampAdjustment();
-}
-
-
-PluginInputDomainAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
- m_plugin(plugin),
- m_inputSampleRate(inputSampleRate),
- m_channels(0),
- m_stepSize(0),
- m_blockSize(0),
- m_freqbuf(0),
- m_ri(0),
- m_window(0),
- m_method(ShiftTimestamp),
- m_processCount(0),
- m_shiftBuffers(0),
-#ifdef HAVE_FFTW3
- m_plan(0),
- m_cbuf(0)
-#else
- m_ro(0),
- m_io(0)
-#endif
-{
-}
-
-PluginInputDomainAdapter::Impl::~Impl()
-{
- // the adapter will delete the plugin
-
- if (m_shiftBuffers) {
- for (int c = 0; c < m_channels; ++c) {
- delete[] m_shiftBuffers[c];
- }
- delete[] m_shiftBuffers;
- }
-
- if (m_channels > 0) {
- for (int c = 0; c < m_channels; ++c) {
- delete[] m_freqbuf[c];
- }
- delete[] m_freqbuf;
-#ifdef HAVE_FFTW3
- if (m_plan) {
- fftw_destroy_plan(m_plan);
- fftw_free(m_ri);
- fftw_free(m_cbuf);
- m_plan = 0;
- }
-#else
- delete[] m_ri;
- delete[] m_ro;
- delete[] m_io;
-#endif
- delete[] m_window;
- }
-}
-
-// for some visual studii apparently
-#ifndef M_PI
-#define M_PI 3.14159265358979232846
-#endif
-
-bool
-PluginInputDomainAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- if (m_plugin->getInputDomain() == TimeDomain) {
-
- m_stepSize = int(stepSize);
- m_blockSize = int(blockSize);
- m_channels = int(channels);
-
- return m_plugin->initialise(channels, stepSize, blockSize);
- }
-
- if (blockSize < 2) {
- std::cerr << "ERROR: PluginInputDomainAdapter::initialise: blocksize < 2 not supported" << std::endl;
- return false;
- }
-
- if (blockSize & (blockSize-1)) {
- std::cerr << "ERROR: PluginInputDomainAdapter::initialise: non-power-of-two\nblocksize " << blockSize << " not supported" << std::endl;
- return false;
- }
-
- if (m_channels > 0) {
- for (int c = 0; c < m_channels; ++c) {
- delete[] m_freqbuf[c];
- }
- delete[] m_freqbuf;
-#ifdef HAVE_FFTW3
- if (m_plan) {
- fftw_destroy_plan(m_plan);
- fftw_free(m_ri);
- fftw_free(m_cbuf);
- m_plan = 0;
- }
-#else
- delete[] m_ri;
- delete[] m_ro;
- delete[] m_io;
-#endif
- delete[] m_window;
- }
-
- m_stepSize = int(stepSize);
- m_blockSize = int(blockSize);
- m_channels = int(channels);
-
- m_freqbuf = new float *[m_channels];
- for (int c = 0; c < m_channels; ++c) {
- m_freqbuf[c] = new float[m_blockSize + 2];
- }
- m_window = new double[m_blockSize];
-
- for (int i = 0; i < m_blockSize; ++i) {
- // Hanning window
- m_window[i] = (0.50 - 0.50 * cos((2.0 * M_PI * i) / m_blockSize));
- }
-
-#ifdef HAVE_FFTW3
- m_ri = (double *)fftw_malloc(blockSize * sizeof(double));
- m_cbuf = (fftw_complex *)fftw_malloc((blockSize/2 + 1) * sizeof(fftw_complex));
- m_plan = fftw_plan_dft_r2c_1d(blockSize, m_ri, m_cbuf, FFTW_MEASURE);
-#else
- m_ri = new double[m_blockSize];
- m_ro = new double[m_blockSize];
- m_io = new double[m_blockSize];
-#endif
-
- m_processCount = 0;
-
- return m_plugin->initialise(channels, stepSize, blockSize);
-}
-
-void
-PluginInputDomainAdapter::Impl::reset()
-{
- m_processCount = 0;
- m_plugin->reset();
-}
-
-size_t
-PluginInputDomainAdapter::Impl::getPreferredStepSize() const
-{
- size_t step = m_plugin->getPreferredStepSize();
-
- if (step == 0 && (m_plugin->getInputDomain() == FrequencyDomain)) {
- step = getPreferredBlockSize() / 2;
- }
-
- return step;
-}
-
-size_t
-PluginInputDomainAdapter::Impl::getPreferredBlockSize() const
-{
- size_t block = m_plugin->getPreferredBlockSize();
-
- if (m_plugin->getInputDomain() == FrequencyDomain) {
- if (block == 0) {
- block = 1024;
- } else {
- block = makeBlockSizeAcceptable(block);
- }
- }
-
- return block;
-}
-
-size_t
-PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable(size_t blockSize) const
-{
- if (blockSize < 2) {
-
- std::cerr << "WARNING: PluginInputDomainAdapter::initialise: blocksize < 2 not" << std::endl
- << "supported, increasing from " << blockSize << " to 2" << std::endl;
- blockSize = 2;
-
- } else if (blockSize & (blockSize-1)) {
-
-#ifdef HAVE_FFTW3
- // not an issue with FFTW
-#else
-
- // not a power of two, can't handle that with our built-in FFT
- // implementation
-
- size_t nearest = blockSize;
- size_t power = 0;
- while (nearest > 1) {
- nearest >>= 1;
- ++power;
- }
- nearest = 1;
- while (power) {
- nearest <<= 1;
- --power;
- }
-
- if (blockSize - nearest > (nearest*2) - blockSize) {
- nearest = nearest*2;
- }
-
- std::cerr << "WARNING: PluginInputDomainAdapter::initialise: non-power-of-two\nblocksize " << blockSize << " not supported, using blocksize " << nearest << " instead" << std::endl;
- blockSize = nearest;
-
-#endif
- }
-
- return blockSize;
-}
-
-RealTime
-PluginInputDomainAdapter::Impl::getTimestampAdjustment() const
-{
- if (m_plugin->getInputDomain() == TimeDomain) {
- return RealTime::zeroTime;
- } else if (m_method == ShiftData || m_method == NoShift) {
- return RealTime::zeroTime;
- } else {
- return RealTime::frame2RealTime
- (m_blockSize/2, int(m_inputSampleRate + 0.5));
- }
-}
-
-void
-PluginInputDomainAdapter::Impl::setProcessTimestampMethod(ProcessTimestampMethod m)
-{
- m_method = m;
-}
-
-PluginInputDomainAdapter::ProcessTimestampMethod
-PluginInputDomainAdapter::Impl::getProcessTimestampMethod() const
-{
- return m_method;
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::Impl::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- if (m_plugin->getInputDomain() == TimeDomain) {
- return m_plugin->process(inputBuffers, timestamp);
- }
-
- if (m_method == ShiftTimestamp || m_method == NoShift) {
- return processShiftingTimestamp(inputBuffers, timestamp);
- } else {
- return processShiftingData(inputBuffers, timestamp);
- }
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::Impl::processShiftingTimestamp(const float *const *inputBuffers,
- RealTime timestamp)
-{
- if (m_method == ShiftTimestamp) {
- timestamp = timestamp + getTimestampAdjustment();
- }
-
- for (int c = 0; c < m_channels; ++c) {
-
- for (int i = 0; i < m_blockSize; ++i) {
- m_ri[i] = double(inputBuffers[c][i]) * m_window[i];
- }
-
- for (int i = 0; i < m_blockSize/2; ++i) {
- // FFT shift
- double value = m_ri[i];
- m_ri[i] = m_ri[i + m_blockSize/2];
- m_ri[i + m_blockSize/2] = value;
- }
-
-#ifdef HAVE_FFTW3
- fftw_execute(m_plan);
-
- for (int i = 0; i <= m_blockSize/2; ++i) {
- m_freqbuf[c][i * 2] = float(m_cbuf[i][0]);
- m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i][1]);
- }
-#else
- fft(m_blockSize, false, m_ri, 0, m_ro, m_io);
-
- for (int i = 0; i <= m_blockSize/2; ++i) {
- m_freqbuf[c][i * 2] = float(m_ro[i]);
- m_freqbuf[c][i * 2 + 1] = float(m_io[i]);
- }
-#endif
- }
-
- return m_plugin->process(m_freqbuf, timestamp);
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::Impl::processShiftingData(const float *const *inputBuffers,
- RealTime timestamp)
-{
- if (m_processCount == 0) {
- if (!m_shiftBuffers) {
- m_shiftBuffers = new float *[m_channels];
- for (int c = 0; c < m_channels; ++c) {
- m_shiftBuffers[c] = new float[m_blockSize + m_blockSize/2];
- }
- }
- for (int c = 0; c < m_channels; ++c) {
- for (int i = 0; i < m_blockSize + m_blockSize/2; ++i) {
- m_shiftBuffers[c][i] = 0.f;
- }
- }
- }
-
- for (int c = 0; c < m_channels; ++c) {
- for (int i = m_stepSize; i < m_blockSize + m_blockSize/2; ++i) {
- m_shiftBuffers[c][i - m_stepSize] = m_shiftBuffers[c][i];
- }
- for (int i = 0; i < m_blockSize; ++i) {
- m_shiftBuffers[c][i + m_blockSize/2] = inputBuffers[c][i];
- }
- }
-
- for (int c = 0; c < m_channels; ++c) {
-
- for (int i = 0; i < m_blockSize; ++i) {
- m_ri[i] = double(m_shiftBuffers[c][i]) * m_window[i];
- }
-
- for (int i = 0; i < m_blockSize/2; ++i) {
- // FFT shift
- double value = m_ri[i];
- m_ri[i] = m_ri[i + m_blockSize/2];
- m_ri[i + m_blockSize/2] = value;
- }
-
-#ifdef HAVE_FFTW3
- fftw_execute(m_plan);
-
- for (int i = 0; i <= m_blockSize/2; ++i) {
- m_freqbuf[c][i * 2] = float(m_cbuf[i][0]);
- m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i][1]);
- }
-#else
- fft(m_blockSize, false, m_ri, 0, m_ro, m_io);
-
- for (int i = 0; i <= m_blockSize/2; ++i) {
- m_freqbuf[c][i * 2] = float(m_ro[i]);
- m_freqbuf[c][i * 2 + 1] = float(m_io[i]);
- }
-#endif
- }
-
- ++m_processCount;
-
- return m_plugin->process(m_freqbuf, timestamp);
-}
-
-#ifndef HAVE_FFTW3
-
-void
-PluginInputDomainAdapter::Impl::fft(unsigned int n, bool inverse,
- double *ri, double *ii, double *ro, double *io)
-{
- if (!ri || !ro || !io) return;
-
- unsigned int bits;
- unsigned int i, j, k, m;
- unsigned int blockSize, blockEnd;
-
- double tr, ti;
-
- if (n < 2) return;
- if (n & (n-1)) return;
-
- double angle = 2.0 * M_PI;
- if (inverse) angle = -angle;
-
- for (i = 0; ; ++i) {
- if (n & (1 << i)) {
- bits = i;
- break;
- }
- }
-
- static unsigned int tableSize = 0;
- static int *table = 0;
-
- if (tableSize != n) {
-
- delete[] table;
-
- table = new int[n];
-
- for (i = 0; i < n; ++i) {
-
- m = i;
-
- for (j = k = 0; j < bits; ++j) {
- k = (k << 1) | (m & 1);
- m >>= 1;
- }
-
- table[i] = k;
- }
-
- tableSize = n;
- }
-
- if (ii) {
- for (i = 0; i < n; ++i) {
- ro[table[i]] = ri[i];
- io[table[i]] = ii[i];
- }
- } else {
- for (i = 0; i < n; ++i) {
- ro[table[i]] = ri[i];
- io[table[i]] = 0.0;
- }
- }
-
- blockEnd = 1;
-
- for (blockSize = 2; blockSize <= n; blockSize <<= 1) {
-
- double delta = angle / (double)blockSize;
- double sm2 = -sin(-2 * delta);
- double sm1 = -sin(-delta);
- double cm2 = cos(-2 * delta);
- double cm1 = cos(-delta);
- double w = 2 * cm1;
- double ar[3], ai[3];
-
- for (i = 0; i < n; i += blockSize) {
-
- ar[2] = cm2;
- ar[1] = cm1;
-
- ai[2] = sm2;
- ai[1] = sm1;
-
- for (j = i, m = 0; m < blockEnd; j++, m++) {
-
- ar[0] = w * ar[1] - ar[2];
- ar[2] = ar[1];
- ar[1] = ar[0];
-
- ai[0] = w * ai[1] - ai[2];
- ai[2] = ai[1];
- ai[1] = ai[0];
-
- k = j + blockEnd;
- tr = ar[0] * ro[k] - ai[0] * io[k];
- ti = ar[0] * io[k] + ai[0] * ro[k];
-
- ro[k] = ro[j] - tr;
- io[k] = io[j] - ti;
-
- ro[j] += tr;
- io[j] += ti;
- }
- }
-
- blockEnd = blockSize;
- }
-
- if (inverse) {
-
- double denom = (double)n;
-
- for (i = 0; i < n; i++) {
- ro[i] /= denom;
- io[i] /= denom;
- }
- }
-}
-
-#endif
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginInputDomainAdapter.cpp)
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp
deleted file mode 100644
index b3b2b45c68..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp
+++ /dev/null
@@ -1,707 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginHostAdapter.h"
-#include "vamp-hostsdk/PluginLoader.h"
-#include "vamp-hostsdk/PluginInputDomainAdapter.h"
-#include "vamp-hostsdk/PluginChannelAdapter.h"
-#include "vamp-hostsdk/PluginBufferingAdapter.h"
-
-#include <fstream>
-#include <cctype> // tolower
-
-#include <cstring>
-
-#ifdef _WIN32
-
-#include <windows.h>
-#include <tchar.h>
-#define PLUGIN_SUFFIX "dll"
-
-#else /* ! _WIN32 */
-
-#include <dirent.h>
-#include <dlfcn.h>
-
-#ifdef __APPLE__
-#define PLUGIN_SUFFIX "dylib"
-#else /* ! __APPLE__ */
-#define PLUGIN_SUFFIX "so"
-#endif /* ! __APPLE__ */
-
-#endif /* ! _WIN32 */
-
-using namespace std;
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginLoader::Impl
-{
-public:
- Impl();
- virtual ~Impl();
-
- PluginKeyList listPlugins();
-
- Plugin *loadPlugin(PluginKey key,
- float inputSampleRate,
- int adapterFlags);
-
- PluginKey composePluginKey(string libraryName, string identifier);
-
- PluginCategoryHierarchy getPluginCategory(PluginKey key);
-
- string getLibraryPathForPlugin(PluginKey key);
-
- static void setInstanceToClean(PluginLoader *instance);
-
-protected:
- class PluginDeletionNotifyAdapter : public PluginWrapper {
- public:
- PluginDeletionNotifyAdapter(Plugin *plugin, Impl *loader);
- virtual ~PluginDeletionNotifyAdapter();
- protected:
- Impl *m_loader;
- };
-
- class InstanceCleaner {
- public:
- InstanceCleaner() : m_instance(0) { }
- ~InstanceCleaner() { delete m_instance; }
- void setInstance(PluginLoader *instance) { m_instance = instance; }
- protected:
- PluginLoader *m_instance;
- };
-
- virtual void pluginDeleted(PluginDeletionNotifyAdapter *adapter);
-
- map<PluginKey, string> m_pluginLibraryNameMap;
- bool m_allPluginsEnumerated;
- void enumeratePlugins(PluginKey forPlugin = "");
-
- map<PluginKey, PluginCategoryHierarchy> m_taxonomy;
- void generateTaxonomy();
-
- map<Plugin *, void *> m_pluginLibraryHandleMap;
-
- bool decomposePluginKey(PluginKey key,
- string &libraryName, string &identifier);
-
- void *loadLibrary(string path);
- void unloadLibrary(void *handle);
- void *lookupInLibrary(void *handle, const char *symbol);
-
- string splicePath(string a, string b);
- vector<string> listFiles(string dir, string ext);
-
- static InstanceCleaner m_cleaner;
-};
-
-PluginLoader *
-PluginLoader::m_instance = 0;
-
-PluginLoader::Impl::InstanceCleaner
-PluginLoader::Impl::m_cleaner;
-
-PluginLoader::PluginLoader()
-{
- m_impl = new Impl();
-}
-
-PluginLoader::~PluginLoader()
-{
- delete m_impl;
-}
-
-PluginLoader *
-PluginLoader::getInstance()
-{
- if (!m_instance) {
- // The cleaner doesn't own the instance, because we leave the
- // instance pointer in the base class for binary backwards
- // compatibility reasons and to avoid waste
- m_instance = new PluginLoader();
- Impl::setInstanceToClean(m_instance);
- }
- return m_instance;
-}
-
-vector<PluginLoader::PluginKey>
-PluginLoader::listPlugins()
-{
- return m_impl->listPlugins();
-}
-
-Plugin *
-PluginLoader::loadPlugin(PluginKey key,
- float inputSampleRate,
- int adapterFlags)
-{
- return m_impl->loadPlugin(key, inputSampleRate, adapterFlags);
-}
-
-PluginLoader::PluginKey
-PluginLoader::composePluginKey(string libraryName, string identifier)
-{
- return m_impl->composePluginKey(libraryName, identifier);
-}
-
-PluginLoader::PluginCategoryHierarchy
-PluginLoader::getPluginCategory(PluginKey key)
-{
- return m_impl->getPluginCategory(key);
-}
-
-string
-PluginLoader::getLibraryPathForPlugin(PluginKey key)
-{
- return m_impl->getLibraryPathForPlugin(key);
-}
-
-PluginLoader::Impl::Impl() :
- m_allPluginsEnumerated(false)
-{
-}
-
-PluginLoader::Impl::~Impl()
-{
-}
-
-void
-PluginLoader::Impl::setInstanceToClean(PluginLoader *instance)
-{
- m_cleaner.setInstance(instance);
-}
-
-vector<PluginLoader::PluginKey>
-PluginLoader::Impl::listPlugins()
-{
- if (!m_allPluginsEnumerated) enumeratePlugins();
-
- vector<PluginKey> plugins;
- for (map<PluginKey, string>::iterator mi = m_pluginLibraryNameMap.begin();
- mi != m_pluginLibraryNameMap.end(); ++mi) {
- plugins.push_back(mi->first);
- }
-
- return plugins;
-}
-
-void
-PluginLoader::Impl::enumeratePlugins(PluginKey forPlugin)
-{
- vector<string> path = PluginHostAdapter::getPluginPath();
-
- string libraryName, identifier;
- if (forPlugin != "") {
- if (!decomposePluginKey(forPlugin, libraryName, identifier)) {
- std::cerr << "WARNING: Vamp::HostExt::PluginLoader: Invalid plugin key \""
- << forPlugin << "\" in enumerate" << std::endl;
- return;
- }
- }
-
- for (size_t i = 0; i < path.size(); ++i) {
-
- vector<string> files = listFiles(path[i], PLUGIN_SUFFIX);
-
- for (vector<string>::iterator fi = files.begin();
- fi != files.end(); ++fi) {
-
- if (libraryName != "") {
- // libraryName is lowercased and lacking an extension,
- // as it came from the plugin key
- string temp = *fi;
- for (size_t i = 0; i < temp.length(); ++i) {
- temp[i] = tolower(temp[i]);
- }
- string::size_type pi = temp.find('.');
- if (pi == string::npos) {
- if (libraryName != temp) continue;
- } else {
- if (libraryName != temp.substr(0, pi)) continue;
- }
- }
-
- string fullPath = path[i];
- fullPath = splicePath(fullPath, *fi);
- void *handle = loadLibrary(fullPath);
- if (!handle) continue;
-
- VampGetPluginDescriptorFunction fn =
- (VampGetPluginDescriptorFunction)lookupInLibrary
- (handle, "vampGetPluginDescriptor");
-
- if (!fn) {
- if (forPlugin != "") {
- cerr << "Vamp::HostExt::PluginLoader: No vampGetPluginDescriptor function found in library \""
- << fullPath << "\"" << endl;
- }
- unloadLibrary(handle);
- continue;
- }
-
- int index = 0;
- const VampPluginDescriptor *descriptor = 0;
- bool found = false;
-
- while ((descriptor = fn(VAMP_API_VERSION, index))) {
- ++index;
- if (identifier != "") {
- if (descriptor->identifier != identifier) continue;
- }
-
- found = true;
- PluginKey key = composePluginKey(*fi, descriptor->identifier);
-
- if (m_pluginLibraryNameMap.find(key) ==
- m_pluginLibraryNameMap.end()) {
- m_pluginLibraryNameMap[key] = fullPath;
- }
- }
-
- if (!found && forPlugin != "") {
- cerr << "Vamp::HostExt::PluginLoader: Plugin \""
- << identifier << "\" not found in library \""
- << fullPath << "\"" << endl;
- }
-
- unloadLibrary(handle);
- }
- }
-
- if (forPlugin == "") m_allPluginsEnumerated = true;
-}
-
-PluginLoader::PluginKey
-PluginLoader::Impl::composePluginKey(string libraryName, string identifier)
-{
- string basename = libraryName;
-
- string::size_type li = basename.rfind('/');
- if (li != string::npos) basename = basename.substr(li + 1);
-
- li = basename.find('.');
- if (li != string::npos) basename = basename.substr(0, li);
-
- for (size_t i = 0; i < basename.length(); ++i) {
- basename[i] = tolower(basename[i]);
- }
-
- return basename + ":" + identifier;
-}
-
-bool
-PluginLoader::Impl::decomposePluginKey(PluginKey key,
- string &libraryName,
- string &identifier)
-{
- string::size_type ki = key.find(':');
- if (ki == string::npos) {
- return false;
- }
-
- libraryName = key.substr(0, ki);
- identifier = key.substr(ki + 1);
- return true;
-}
-
-PluginLoader::PluginCategoryHierarchy
-PluginLoader::Impl::getPluginCategory(PluginKey plugin)
-{
- if (m_taxonomy.empty()) generateTaxonomy();
- if (m_taxonomy.find(plugin) == m_taxonomy.end()) {
- return PluginCategoryHierarchy();
- }
- return m_taxonomy[plugin];
-}
-
-string
-PluginLoader::Impl::getLibraryPathForPlugin(PluginKey plugin)
-{
- if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
- if (m_allPluginsEnumerated) return "";
- enumeratePlugins(plugin);
- }
- if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
- return "";
- }
- return m_pluginLibraryNameMap[plugin];
-}
-
-Plugin *
-PluginLoader::Impl::loadPlugin(PluginKey key,
- float inputSampleRate, int adapterFlags)
-{
- string libname, identifier;
- if (!decomposePluginKey(key, libname, identifier)) {
- std::cerr << "Vamp::HostExt::PluginLoader: Invalid plugin key \""
- << key << "\" in loadPlugin" << std::endl;
- return 0;
- }
-
- string fullPath = getLibraryPathForPlugin(key);
- if (fullPath == "") {
- std::cerr << "Vamp::HostExt::PluginLoader: No library found in Vamp path for plugin \"" << key << "\"" << std::endl;
- return 0;
- }
-
- void *handle = loadLibrary(fullPath);
- if (!handle) return 0;
-
- VampGetPluginDescriptorFunction fn =
- (VampGetPluginDescriptorFunction)lookupInLibrary
- (handle, "vampGetPluginDescriptor");
-
- if (!fn) {
- cerr << "Vamp::HostExt::PluginLoader: No vampGetPluginDescriptor function found in library \""
- << fullPath << "\"" << endl;
- unloadLibrary(handle);
- return 0;
- }
-
- int index = 0;
- const VampPluginDescriptor *descriptor = 0;
-
- while ((descriptor = fn(VAMP_API_VERSION, index))) {
-
- if (string(descriptor->identifier) == identifier) {
-
- Vamp::PluginHostAdapter *plugin =
- new Vamp::PluginHostAdapter(descriptor, inputSampleRate);
-
- Plugin *adapter = new PluginDeletionNotifyAdapter(plugin, this);
-
- m_pluginLibraryHandleMap[adapter] = handle;
-
- if (adapterFlags & ADAPT_BUFFER_SIZE) {
- PluginBufferingAdapter* a = new PluginBufferingAdapter(adapter);
- adapter = a;
- }
-
- if (adapterFlags & ADAPT_INPUT_DOMAIN) {
- if (adapter->getInputDomain() == Plugin::FrequencyDomain) {
- adapter = new PluginInputDomainAdapter(adapter);
- }
- }
-
- if (adapterFlags & ADAPT_CHANNEL_COUNT) {
- adapter = new PluginChannelAdapter(adapter);
- }
-
- return adapter;
- }
-
- ++index;
- }
-
- cerr << "Vamp::HostExt::PluginLoader: Plugin \""
- << identifier << "\" not found in library \""
- << fullPath << "\"" << endl;
-
- return 0;
-}
-
-void
-PluginLoader::Impl::generateTaxonomy()
-{
-// cerr << "PluginLoader::Impl::generateTaxonomy" << endl;
-
- vector<string> path = PluginHostAdapter::getPluginPath();
- string libfragment = "/lib/";
- vector<string> catpath;
-
- string suffix = "cat";
-
- for (vector<string>::iterator i = path.begin();
- i != path.end(); ++i) {
-
- // It doesn't matter that we're using literal forward-slash in
- // this bit, as it's only relevant if the path contains
- // "/lib/", which is only meaningful and only plausible on
- // systems with forward-slash delimiters
-
- string dir = *i;
- string::size_type li = dir.find(libfragment);
-
- if (li != string::npos) {
- catpath.push_back
- (dir.substr(0, li)
- + "/share/"
- + dir.substr(li + libfragment.length()));
- }
-
- catpath.push_back(dir);
- }
-
- char buffer[1024];
-
- for (vector<string>::iterator i = catpath.begin();
- i != catpath.end(); ++i) {
-
- vector<string> files = listFiles(*i, suffix);
-
- for (vector<string>::iterator fi = files.begin();
- fi != files.end(); ++fi) {
-
- string filepath = splicePath(*i, *fi);
- ifstream is(filepath.c_str(), ifstream::in | ifstream::binary);
-
- if (is.fail()) {
-// cerr << "failed to open: " << filepath << endl;
- continue;
- }
-
-// cerr << "opened: " << filepath << endl;
-
- while (!!is.getline(buffer, 1024)) {
-
- string line(buffer);
-
-// cerr << "line = " << line << endl;
-
- string::size_type di = line.find("::");
- if (di == string::npos) continue;
-
- string id = line.substr(0, di);
- string encodedCat = line.substr(di + 2);
-
- if (id.substr(0, 5) != "vamp:") continue;
- id = id.substr(5);
-
- while (encodedCat.length() >= 1 &&
- encodedCat[encodedCat.length()-1] == '\r') {
- encodedCat = encodedCat.substr(0, encodedCat.length()-1);
- }
-
-// cerr << "id = " << id << ", cat = " << encodedCat << endl;
-
- PluginCategoryHierarchy category;
- string::size_type ai;
- while ((ai = encodedCat.find(" > ")) != string::npos) {
- category.push_back(encodedCat.substr(0, ai));
- encodedCat = encodedCat.substr(ai + 3);
- }
- if (encodedCat != "") category.push_back(encodedCat);
-
- m_taxonomy[id] = category;
- }
- }
- }
-}
-
-void *
-PluginLoader::Impl::loadLibrary(string path)
-{
- void *handle = 0;
-#ifdef _WIN32
-#ifdef UNICODE
- int len = path.length(); // cannot be more wchars than length in bytes of utf8 string
- wchar_t *buffer = new wchar_t[len];
- int rv = MultiByteToWideChar(CP_UTF8, 0, path.c_str(), len, buffer, len);
- if (rv <= 0) {
- cerr << "Vamp::HostExt::PluginLoader: Unable to convert library path \""
- << path << "\" to wide characters " << endl;
- delete[] buffer;
- return handle;
- }
- handle = LoadLibrary(buffer);
- delete[] buffer;
-#else
- handle = LoadLibrary(path.c_str());
-#endif
- if (!handle) {
- cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
- << path << "\"" << endl;
- }
-#else
- handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_LOCAL);
- if (!handle) {
- cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
- << path << "\": " << dlerror() << endl;
- }
-#endif
- return handle;
-}
-
-void
-PluginLoader::Impl::unloadLibrary(void *handle)
-{
-#ifdef _WIN32
- FreeLibrary((HINSTANCE)handle);
-#else
- dlclose(handle);
-#endif
-}
-
-void *
-PluginLoader::Impl::lookupInLibrary(void *handle, const char *symbol)
-{
-#ifdef _WIN32
- return (void *)GetProcAddress((HINSTANCE)handle, symbol);
-#else
- return (void *)dlsym(handle, symbol);
-#endif
-}
-
-string
-PluginLoader::Impl::splicePath(string a, string b)
-{
-#ifdef _WIN32
- return a + "\\" + b;
-#else
- return a + "/" + b;
-#endif
-}
-
-vector<string>
-PluginLoader::Impl::listFiles(string dir, string extension)
-{
- vector<string> files;
-
-#ifdef _WIN32
- string expression = dir + "\\*." + extension;
-#ifdef UNICODE
- int len = expression.length(); // cannot be more wchars than length in bytes of utf8 string
- wchar_t *buffer = new wchar_t[len];
- int rv = MultiByteToWideChar(CP_UTF8, 0, expression.c_str(), len, buffer, len);
- if (rv <= 0) {
- cerr << "Vamp::HostExt::PluginLoader: Unable to convert wildcard path \""
- << expression << "\" to wide characters" << endl;
- delete[] buffer;
- return files;
- }
- WIN32_FIND_DATA data;
- HANDLE fh = FindFirstFile(buffer, &data);
- if (fh == INVALID_HANDLE_VALUE) {
- delete[] buffer;
- return files;
- }
-
- bool ok = true;
- while (ok) {
- wchar_t *fn = data.cFileName;
- int wlen = wcslen(fn);
- int maxlen = wlen * 6;
- char *conv = new char[maxlen];
- int rv = WideCharToMultiByte(CP_UTF8, 0, fn, wlen, conv, maxlen, 0, 0);
- if (rv > 0) {
- files.push_back(conv);
- }
- delete[] conv;
- ok = FindNextFile(fh, &data);
- }
-
- FindClose(fh);
- delete[] buffer;
-#else
- WIN32_FIND_DATA data;
- HANDLE fh = FindFirstFile(expression.c_str(), &data);
- if (fh == INVALID_HANDLE_VALUE) return files;
-
- bool ok = true;
- while (ok) {
- files.push_back(data.cFileName);
- ok = FindNextFile(fh, &data);
- }
-
- FindClose(fh);
-#endif
-#else
-
- size_t extlen = extension.length();
- DIR *d = opendir(dir.c_str());
- if (!d) return files;
-
- struct dirent *e = 0;
- while ((e = readdir(d))) {
-
- if (!e->d_name) continue;
-
- size_t len = strlen(e->d_name);
- if (len < extlen + 2 ||
- e->d_name + len - extlen - 1 != "." + extension) {
- continue;
- }
-
- files.push_back(e->d_name);
- }
-
- closedir(d);
-#endif
-
- return files;
-}
-
-void
-PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter)
-{
- void *handle = m_pluginLibraryHandleMap[adapter];
- if (handle) unloadLibrary(handle);
- m_pluginLibraryHandleMap.erase(adapter);
-}
-
-PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin,
- Impl *loader) :
- PluginWrapper(plugin),
- m_loader(loader)
-{
-}
-
-PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()
-{
- // We need to delete the plugin before calling pluginDeleted, as
- // the delete call may require calling through to the descriptor
- // (for e.g. cleanup) but pluginDeleted may unload the required
- // library for the call. To prevent a double deletion when our
- // parent's destructor runs (after this one), be sure to set
- // m_plugin to 0 after deletion.
- delete m_plugin;
- m_plugin = 0;
-
- if (m_loader) m_loader->pluginDeleted(this);
-}
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginLoader.cpp)
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginSummarisingAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginSummarisingAdapter.cpp
deleted file mode 100644
index e3547a3daa..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginSummarisingAdapter.cpp
+++ /dev/null
@@ -1,952 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginSummarisingAdapter.h"
-
-#include <map>
-#include <algorithm>
-#include <cmath>
-#include <climits>
-
-//#define DEBUG_PLUGIN_SUMMARISING_ADAPTER 1
-//#define DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT 1
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginSummarisingAdapter.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginSummarisingAdapter::Impl
-{
-public:
- Impl(Plugin *plugin, float inputSampleRate);
- ~Impl();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- void reset();
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
- FeatureSet getRemainingFeatures();
-
- void setSummarySegmentBoundaries(const SegmentBoundaries &);
-
- FeatureList getSummaryForOutput(int output,
- SummaryType type,
- AveragingMethod avg);
-
- FeatureSet getSummaryForAllOutputs(SummaryType type,
- AveragingMethod avg);
-
-protected:
- Plugin *m_plugin;
- float m_inputSampleRate;
- size_t m_stepSize;
- size_t m_blockSize;
-
- SegmentBoundaries m_boundaries;
-
- typedef std::vector<float> ValueList;
-
- struct Result { // smaller than Feature
- RealTime time;
- RealTime duration;
- ValueList values; // bin number -> value
- };
-
- typedef std::vector<Result> ResultList;
-
- struct OutputAccumulator {
- int bins;
- ResultList results;
- OutputAccumulator() : bins(0) { }
- };
-
- typedef std::map<int, OutputAccumulator> OutputAccumulatorMap;
- OutputAccumulatorMap m_accumulators; // output number -> accumulator
-
- typedef std::map<RealTime, OutputAccumulator> SegmentAccumulatorMap;
- typedef std::map<int, SegmentAccumulatorMap> OutputSegmentAccumulatorMap;
- OutputSegmentAccumulatorMap m_segmentedAccumulators; // output -> segmented
-
- typedef std::map<int, RealTime> OutputTimestampMap;
- OutputTimestampMap m_prevTimestamps; // output number -> timestamp
- OutputTimestampMap m_prevDurations; // output number -> durations
-
- struct OutputBinSummary {
-
- int count;
-
- // extents
- double minimum;
- double maximum;
- double sum;
-
- // sample-average results
- double median;
- double mode;
- double variance;
-
- // continuous-time average results
- double median_c;
- double mode_c;
- double mean_c;
- double variance_c;
- };
-
- typedef std::map<int, OutputBinSummary> OutputSummary;
- typedef std::map<RealTime, OutputSummary> SummarySegmentMap;
- typedef std::map<int, SummarySegmentMap> OutputSummarySegmentMap;
-
- OutputSummarySegmentMap m_summaries;
-
- bool m_reduced;
- RealTime m_endTime;
-
- void accumulate(const FeatureSet &fs, RealTime, bool final);
- void accumulate(int output, const Feature &f, RealTime, bool final);
- void accumulateFinalDurations();
- void findSegmentBounds(RealTime t, RealTime &start, RealTime &end);
- void segment();
- void reduce();
-
- std::string getSummaryLabel(SummaryType type, AveragingMethod avg);
-};
-
-static RealTime INVALID_DURATION(INT_MIN, INT_MIN);
-
-PluginSummarisingAdapter::PluginSummarisingAdapter(Plugin *plugin) :
- PluginWrapper(plugin)
-{
- m_impl = new Impl(plugin, m_inputSampleRate);
-}
-
-PluginSummarisingAdapter::~PluginSummarisingAdapter()
-{
- delete m_impl;
-}
-
-bool
-PluginSummarisingAdapter::initialise(size_t channels,
- size_t stepSize, size_t blockSize)
-{
- return
- PluginWrapper::initialise(channels, stepSize, blockSize) &&
- m_impl->initialise(channels, stepSize, blockSize);
-}
-
-void
-PluginSummarisingAdapter::reset()
-{
- m_impl->reset();
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::process(const float *const *inputBuffers, RealTime timestamp)
-{
- return m_impl->process(inputBuffers, timestamp);
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::getRemainingFeatures()
-{
- return m_impl->getRemainingFeatures();
-}
-
-void
-PluginSummarisingAdapter::setSummarySegmentBoundaries(const SegmentBoundaries &b)
-{
- m_impl->setSummarySegmentBoundaries(b);
-}
-
-Plugin::FeatureList
-PluginSummarisingAdapter::getSummaryForOutput(int output,
- SummaryType type,
- AveragingMethod avg)
-{
- return m_impl->getSummaryForOutput(output, type, avg);
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::getSummaryForAllOutputs(SummaryType type,
- AveragingMethod avg)
-{
- return m_impl->getSummaryForAllOutputs(type, avg);
-}
-
-PluginSummarisingAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
- m_plugin(plugin),
- m_inputSampleRate(inputSampleRate),
- m_reduced(false)
-{
-}
-
-PluginSummarisingAdapter::Impl::~Impl()
-{
-}
-
-bool
-PluginSummarisingAdapter::Impl::initialise(size_t channels,
- size_t stepSize, size_t blockSize)
-{
- m_stepSize = stepSize;
- m_blockSize = blockSize;
- return true;
-}
-
-void
-PluginSummarisingAdapter::Impl::reset()
-{
- m_accumulators.clear();
- m_segmentedAccumulators.clear();
- m_prevTimestamps.clear();
- m_prevDurations.clear();
- m_summaries.clear();
- m_reduced = false;
- m_endTime = RealTime();
- m_plugin->reset();
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::Impl::process(const float *const *inputBuffers,
- RealTime timestamp)
-{
- if (m_reduced) {
- std::cerr << "WARNING: Cannot call PluginSummarisingAdapter::process() or getRemainingFeatures() after one of the getSummary methods" << std::endl;
- }
- FeatureSet fs = m_plugin->process(inputBuffers, timestamp);
- accumulate(fs, timestamp, false);
- m_endTime = timestamp +
- RealTime::frame2RealTime(m_stepSize, int(m_inputSampleRate + 0.5));
- return fs;
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::Impl::getRemainingFeatures()
-{
- if (m_reduced) {
- std::cerr << "WARNING: Cannot call PluginSummarisingAdapter::process() or getRemainingFeatures() after one of the getSummary methods" << std::endl;
- }
- FeatureSet fs = m_plugin->getRemainingFeatures();
- accumulate(fs, m_endTime, true);
- return fs;
-}
-
-void
-PluginSummarisingAdapter::Impl::setSummarySegmentBoundaries(const SegmentBoundaries &b)
-{
- m_boundaries = b;
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "PluginSummarisingAdapter::setSummarySegmentBoundaries: boundaries are:" << std::endl;
- for (SegmentBoundaries::const_iterator i = m_boundaries.begin();
- i != m_boundaries.end(); ++i) {
- std::cerr << *i << " ";
- }
- std::cerr << std::endl;
-#endif
-}
-
-Plugin::FeatureList
-PluginSummarisingAdapter::Impl::getSummaryForOutput(int output,
- SummaryType type,
- AveragingMethod avg)
-{
- if (!m_reduced) {
- accumulateFinalDurations();
- segment();
- reduce();
- m_reduced = true;
- }
-
- bool continuous = (avg == ContinuousTimeAverage);
-
- FeatureList fl;
- for (SummarySegmentMap::const_iterator i = m_summaries[output].begin();
- i != m_summaries[output].end(); ++i) {
-
- Feature f;
-
- f.hasTimestamp = true;
- f.timestamp = i->first;
-
- f.hasDuration = true;
- SummarySegmentMap::const_iterator ii = i;
- if (++ii == m_summaries[output].end()) {
- f.duration = m_endTime - f.timestamp;
- } else {
- f.duration = ii->first - f.timestamp;
- }
-
- f.label = getSummaryLabel(type, avg);
-
- for (OutputSummary::const_iterator j = i->second.begin();
- j != i->second.end(); ++j) {
-
- // these will be ordered by bin number, and no bin numbers
- // will be missing except at the end (because of the way
- // the accumulators were initially filled in accumulate())
-
- const OutputBinSummary &summary = j->second;
- double result = 0.f;
-
- switch (type) {
-
- case Minimum:
- result = summary.minimum;
- break;
-
- case Maximum:
- result = summary.maximum;
- break;
-
- case Mean:
- if (continuous) {
- result = summary.mean_c;
- } else if (summary.count) {
- result = summary.sum / summary.count;
- }
- break;
-
- case Median:
- if (continuous) result = summary.median_c;
- else result = summary.median;
- break;
-
- case Mode:
- if (continuous) result = summary.mode_c;
- else result = summary.mode;
- break;
-
- case Sum:
- result = summary.sum;
- break;
-
- case Variance:
- if (continuous) result = summary.variance_c;
- else result = summary.variance;
- break;
-
- case StandardDeviation:
- if (continuous) result = sqrtf(summary.variance_c);
- else result = sqrtf(summary.variance);
- break;
-
- case Count:
- result = summary.count;
- break;
-
- case UnknownSummaryType:
- break;
-
- default:
- break;
- }
-
- f.values.push_back(result);
- }
-
- fl.push_back(f);
- }
- return fl;
-}
-
-Plugin::FeatureSet
-PluginSummarisingAdapter::Impl::getSummaryForAllOutputs(SummaryType type,
- AveragingMethod avg)
-{
- if (!m_reduced) {
- accumulateFinalDurations();
- segment();
- reduce();
- m_reduced = true;
- }
-
- FeatureSet fs;
- for (OutputSummarySegmentMap::const_iterator i = m_summaries.begin();
- i != m_summaries.end(); ++i) {
- fs[i->first] = getSummaryForOutput(i->first, type, avg);
- }
- return fs;
-}
-
-void
-PluginSummarisingAdapter::Impl::accumulate(const FeatureSet &fs,
- RealTime timestamp,
- bool final)
-{
- for (FeatureSet::const_iterator i = fs.begin(); i != fs.end(); ++i) {
- for (FeatureList::const_iterator j = i->second.begin();
- j != i->second.end(); ++j) {
- if (j->hasTimestamp) {
- accumulate(i->first, *j, j->timestamp, final);
- } else {
- //!!! is this correct?
- accumulate(i->first, *j, timestamp, final);
- }
- }
- }
-}
-
-std::string
-PluginSummarisingAdapter::Impl::getSummaryLabel(SummaryType type,
- AveragingMethod avg)
-{
- std::string label;
- std::string avglabel;
-
- if (avg == SampleAverage) avglabel = ", sample average";
- else avglabel = ", continuous-time average";
-
- switch (type) {
- case Minimum: label = "(minimum value)"; break;
- case Maximum: label = "(maximum value)"; break;
- case Mean: label = "(mean value" + avglabel + ")"; break;
- case Median: label = "(median value" + avglabel + ")"; break;
- case Mode: label = "(modal value" + avglabel + ")"; break;
- case Sum: label = "(sum)"; break;
- case Variance: label = "(variance" + avglabel + ")"; break;
- case StandardDeviation: label = "(standard deviation" + avglabel + ")"; break;
- case Count: label = "(count)"; break;
- case UnknownSummaryType: label = "(unknown summary)"; break;
- }
-
- return label;
-}
-
-void
-PluginSummarisingAdapter::Impl::accumulate(int output,
- const Feature &f,
- RealTime timestamp,
- bool final)
-{
- // What should happen if a feature's duration spans a segment
- // boundary? I think we probably want to chop it, and pretend
- // that it appears in both. A very long feature (e.g. key, if the
- // whole audio is in a single key) might span many or all
- // segments, and we want that to be reflected in the results
- // (e.g. it is the modal key in all of those segments, not just
- // the first). This is actually quite complicated to do.
-
- // If features spanning a boundary should be chopped, then we need
- // to have per-segment accumulators (and the feature value goes
- // into both -- with a separate phase to split the accumulator up
- // into segments).
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "output " << output << ": timestamp " << timestamp << ", prev timestamp " << m_prevTimestamps[output] << ", final " << final << std::endl;
-#endif
-
- // At each process step, accumulate() is called once for each
- // feature on each output within that process's returned feature
- // list, and with the timestamp passed in being that of the start
- // of the process block.
-
- // At the end (in getRemainingFeatures), accumulate() is called
- // once for each feature on each output within the feature list
- // returned by getRemainingFeatures, and with the timestamp being
- // the same as the last process block and final set to true.
-
- // (What if getRemainingFeatures doesn't return any features? We
- // still need to ensure that the final duration is written. Need
- // a separate function to close the durations.)
-
- // At each call, we pull out the value for the feature and stuff
- // it into the accumulator's appropriate values array; and we
- // calculate the duration for the _previous_ feature, or pull it
- // from the prevDurations array if the previous feature had a
- // duration in its structure, and stuff that into the
- // accumulator's appropriate durations array.
-
- if (m_prevDurations.find(output) != m_prevDurations.end()) {
-
- // Not the first time accumulate has been called for this
- // output -- there has been a previous feature
-
- RealTime prevDuration;
-
- // Note that m_prevDurations[output] only contains the
- // duration field that was contained in the previous feature.
- // If it didn't have an explicit duration,
- // m_prevDurations[output] should be INVALID_DURATION and we
- // will have to calculate the duration from the previous and
- // current timestamps.
-
- if (m_prevDurations[output] != INVALID_DURATION) {
- prevDuration = m_prevDurations[output];
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "Previous duration from previous feature: " << prevDuration << std::endl;
-#endif
- } else {
- prevDuration = timestamp - m_prevTimestamps[output];
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "Previous duration from diff: " << timestamp << " - "
- << m_prevTimestamps[output] << std::endl;
-#endif
- }
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "output " << output << ": ";
- std::cerr << "Pushing previous duration as " << prevDuration << std::endl;
-#endif
-
- m_accumulators[output].results
- [m_accumulators[output].results.size() - 1]
- .duration = prevDuration;
- }
-
- if (f.hasDuration) m_prevDurations[output] = f.duration;
- else m_prevDurations[output] = INVALID_DURATION;
-
- m_prevTimestamps[output] = timestamp;
-
- if (f.hasDuration) {
- RealTime et = timestamp;
- et = et + f.duration;
- if (et > m_endTime) m_endTime = et;
- }
-
- Result result;
- result.time = timestamp;
- result.duration = INVALID_DURATION;
-
- if (int(f.values.size()) > m_accumulators[output].bins) {
- m_accumulators[output].bins = f.values.size();
- }
-
- for (int i = 0; i < int(f.values.size()); ++i) {
- result.values.push_back(f.values[i]);
- }
-
- m_accumulators[output].results.push_back(result);
-}
-
-void
-PluginSummarisingAdapter::Impl::accumulateFinalDurations()
-{
- for (OutputTimestampMap::iterator i = m_prevTimestamps.begin();
- i != m_prevTimestamps.end(); ++i) {
-
- int output = i->first;
-
- int acount = m_accumulators[output].results.size();
-
- if (acount == 0) continue;
-
- RealTime prevTimestamp = i->second;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "output " << output << ": ";
-#endif
-
- if (m_prevDurations.find(output) != m_prevDurations.end() &&
- m_prevDurations[output] != INVALID_DURATION) {
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "Pushing final duration from feature as " << m_prevDurations[output] << std::endl;
-#endif
-
- m_accumulators[output].results[acount - 1].duration =
- m_prevDurations[output];
-
- } else {
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "Pushing final duration from diff as " << m_endTime << " - " << m_prevTimestamps[output] << std::endl;
-#endif
-
- m_accumulators[output].results[acount - 1].duration =
- m_endTime - m_prevTimestamps[output];
- }
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "so duration for result no " << acount-1 << " is "
- << m_accumulators[output].results[acount-1].duration
- << std::endl;
-#endif
- }
-}
-
-void
-PluginSummarisingAdapter::Impl::findSegmentBounds(RealTime t,
- RealTime &start,
- RealTime &end)
-{
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "findSegmentBounds: t = " << t << std::endl;
-#endif
-
- SegmentBoundaries::const_iterator i = std::upper_bound
- (m_boundaries.begin(), m_boundaries.end(), t);
-
- start = RealTime::zeroTime;
- end = m_endTime;
-
- if (i != m_boundaries.end()) {
- end = *i;
- }
-
- if (i != m_boundaries.begin()) {
- start = *--i;
- }
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "findSegmentBounds: " << t << " is in segment " << start << " -> " << end << std::endl;
-#endif
-}
-
-void
-PluginSummarisingAdapter::Impl::segment()
-{
- SegmentBoundaries::iterator boundaryitr = m_boundaries.begin();
- RealTime segmentStart = RealTime::zeroTime;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "segment: starting" << std::endl;
-#endif
-
- for (OutputAccumulatorMap::iterator i = m_accumulators.begin();
- i != m_accumulators.end(); ++i) {
-
- int output = i->first;
- OutputAccumulator &source = i->second;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "segment: total results for output " << output << " = "
- << source.results.size() << std::endl;
-#endif
-
- // This is basically nonsense if the results have no values
- // (i.e. their times and counts are the only things of
- // interest)... but perhaps it's the user's problem if they
- // ask for segmentation (or any summary at all) in that case
-
- for (int n = 0; n < int(source.results.size()); ++n) {
-
- // This result spans source.results[n].time to
- // source.results[n].time + source.results[n].duration.
- // We need to dispose it into segments appropriately
-
- RealTime resultStart = source.results[n].time;
- RealTime resultEnd = resultStart + source.results[n].duration;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "output: " << output << ", result start = " << resultStart << ", end = " << resultEnd << std::endl;
-#endif
-
- RealTime segmentStart = RealTime::zeroTime;
- RealTime segmentEnd = resultEnd - RealTime(1, 0);
-
- RealTime prevSegmentStart = segmentStart - RealTime(1, 0);
-
- while (segmentEnd < resultEnd) {
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "segment end " << segmentEnd << " < result end "
- << resultEnd << " (with result start " << resultStart << ")" << std::endl;
-#endif
-
- findSegmentBounds(resultStart, segmentStart, segmentEnd);
-
- if (segmentStart == prevSegmentStart) {
- // This can happen when we reach the end of the
- // input, if a feature's end time overruns the
- // input audio end time
- break;
- }
- prevSegmentStart = segmentStart;
-
- RealTime chunkStart = resultStart;
- if (chunkStart < segmentStart) chunkStart = segmentStart;
-
- RealTime chunkEnd = resultEnd;
- if (chunkEnd > segmentEnd) chunkEnd = segmentEnd;
-
- m_segmentedAccumulators[output][segmentStart].bins = source.bins;
-
- Result chunk;
- chunk.time = chunkStart;
- chunk.duration = chunkEnd - chunkStart;
- chunk.values = source.results[n].values;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER_SEGMENT
- std::cerr << "chunk for segment " << segmentStart << ": from " << chunk.time << ", duration " << chunk.duration << std::endl;
-#endif
-
- m_segmentedAccumulators[output][segmentStart].results
- .push_back(chunk);
-
- resultStart = chunkEnd;
- }
- }
- }
-}
-
-struct ValueDurationFloatPair
-{
- float value;
- float duration;
-
- ValueDurationFloatPair() : value(0), duration(0) { }
- ValueDurationFloatPair(float v, float d) : value(v), duration(d) { }
- ValueDurationFloatPair &operator=(const ValueDurationFloatPair &p) {
- value = p.value;
- duration = p.duration;
- return *this;
- }
- bool operator<(const ValueDurationFloatPair &p) const {
- return value < p.value;
- }
-};
-
-static double toSec(const RealTime &r)
-{
- return r.sec + double(r.nsec) / 1000000000.0;
-}
-
-void
-PluginSummarisingAdapter::Impl::reduce()
-{
- for (OutputSegmentAccumulatorMap::iterator i =
- m_segmentedAccumulators.begin();
- i != m_segmentedAccumulators.end(); ++i) {
-
- int output = i->first;
- SegmentAccumulatorMap &segments = i->second;
-
- for (SegmentAccumulatorMap::iterator j = segments.begin();
- j != segments.end(); ++j) {
-
- RealTime segmentStart = j->first;
- OutputAccumulator &accumulator = j->second;
-
- int sz = accumulator.results.size();
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "reduce: segment starting at " << segmentStart
- << " on output " << output << " has " << sz << " result(s)" << std::endl;
-#endif
-
- double totalDuration = 0.0;
- //!!! is this right?
- if (sz > 0) {
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "last time = " << accumulator.results[sz-1].time
- << ", duration = " << accumulator.results[sz-1].duration
- << " (step = " << m_stepSize << ", block = " << m_blockSize << ")"
- << std::endl;
-#endif
- totalDuration = toSec((accumulator.results[sz-1].time +
- accumulator.results[sz-1].duration) -
- segmentStart);
- }
-
- for (int bin = 0; bin < accumulator.bins; ++bin) {
-
- // work on all values over time for a single bin
-
- OutputBinSummary summary;
-
- summary.count = sz;
-
- summary.minimum = 0.f;
- summary.maximum = 0.f;
-
- summary.median = 0.f;
- summary.mode = 0.f;
- summary.sum = 0.f;
- summary.variance = 0.f;
-
- summary.median_c = 0.f;
- summary.mode_c = 0.f;
- summary.mean_c = 0.f;
- summary.variance_c = 0.f;
-
- if (sz == 0) continue;
-
- std::vector<ValueDurationFloatPair> valvec;
-
- for (int k = 0; k < sz; ++k) {
- while (int(accumulator.results[k].values.size()) <
- accumulator.bins) {
- accumulator.results[k].values.push_back(0.f);
- }
- }
-
- for (int k = 0; k < sz; ++k) {
- float value = accumulator.results[k].values[bin];
- valvec.push_back(ValueDurationFloatPair
- (value,
- toSec(accumulator.results[k].duration)));
- }
-
- std::sort(valvec.begin(), valvec.end());
-
- summary.minimum = valvec[0].value;
- summary.maximum = valvec[sz-1].value;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "total duration = " << totalDuration << std::endl;
-#endif
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
-/*
- std::cerr << "value vector for medians:" << std::endl;
- for (int k = 0; k < sz; ++k) {
- std::cerr << "(" << valvec[k].value << "," << valvec[k].duration << ") ";
- }
- std::cerr << std::endl;
-*/
-#endif
-
- if (sz % 2 == 1) {
- summary.median = valvec[sz/2].value;
- } else {
- summary.median = (valvec[sz/2].value + valvec[sz/2 + 1].value) / 2;
- }
-
- double duracc = 0.0;
- summary.median_c = valvec[sz-1].value;
-
- for (int k = 0; k < sz; ++k) {
- duracc += valvec[k].duration;
- if (duracc > totalDuration/2) {
- summary.median_c = valvec[k].value;
- break;
- }
- }
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "median_c = " << summary.median_c << std::endl;
- std::cerr << "median = " << summary.median << std::endl;
-#endif
-
- std::map<float, int> distribution;
-
- for (int k = 0; k < sz; ++k) {
- summary.sum += accumulator.results[k].values[bin];
- distribution[accumulator.results[k].values[bin]] += 1;
- }
-
- int md = 0;
-
- for (std::map<float, int>::iterator di = distribution.begin();
- di != distribution.end(); ++di) {
- if (di->second > md) {
- md = di->second;
- summary.mode = di->first;
- }
- }
-
- distribution.clear();
-
- std::map<float, double> distribution_c;
-
- for (int k = 0; k < sz; ++k) {
- distribution_c[accumulator.results[k].values[bin]]
- += toSec(accumulator.results[k].duration);
- }
-
- double mrd = 0.0;
-
- for (std::map<float, double>::iterator di = distribution_c.begin();
- di != distribution_c.end(); ++di) {
- if (di->second > mrd) {
- mrd = di->second;
- summary.mode_c = di->first;
- }
- }
-
- distribution_c.clear();
-
- if (totalDuration > 0.0) {
-
- double sum_c = 0.0;
-
- for (int k = 0; k < sz; ++k) {
- double value = accumulator.results[k].values[bin]
- * toSec(accumulator.results[k].duration);
- sum_c += value;
- }
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "mean_c = " << sum_c << " / " << totalDuration << " = "
- << sum_c / totalDuration << " (sz = " << sz << ")" << std::endl;
-#endif
-
- summary.mean_c = sum_c / totalDuration;
-
- for (int k = 0; k < sz; ++k) {
- double value = accumulator.results[k].values[bin];
-// * toSec(accumulator.results[k].duration);
- summary.variance_c +=
- (value - summary.mean_c) * (value - summary.mean_c)
- * toSec(accumulator.results[k].duration);
- }
-
-// summary.variance_c /= summary.count;
- summary.variance_c /= totalDuration;
- }
-
- double mean = summary.sum / summary.count;
-
-#ifdef DEBUG_PLUGIN_SUMMARISING_ADAPTER
- std::cerr << "mean = " << summary.sum << " / " << summary.count << " = "
- << summary.sum / summary.count << std::endl;
-#endif
-
- for (int k = 0; k < sz; ++k) {
- float value = accumulator.results[k].values[bin];
- summary.variance += (value - mean) * (value - mean);
- }
- summary.variance /= summary.count;
-
- m_summaries[output][segmentStart][bin] = summary;
- }
- }
- }
-
- m_segmentedAccumulators.clear();
- m_accumulators.clear();
-}
-
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginSummarisingAdapter.cpp)
-
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp
deleted file mode 100644
index 9defb8cf36..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/PluginWrapper.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.cpp)
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginRateExtractor : public Plugin
-{
-public:
- PluginRateExtractor() : Plugin(0) { }
- float getRate() const { return m_inputSampleRate; }
-};
-
-PluginWrapper::PluginWrapper(Plugin *plugin) :
- Plugin(((PluginRateExtractor *)plugin)->getRate()),
- m_plugin(plugin)
-{
-}
-
-PluginWrapper::~PluginWrapper()
-{
- delete m_plugin;
-}
-
-bool
-PluginWrapper::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
- return m_plugin->initialise(channels, stepSize, blockSize);
-}
-
-void
-PluginWrapper::reset()
-{
- m_plugin->reset();
-}
-
-Plugin::InputDomain
-PluginWrapper::getInputDomain() const
-{
- return m_plugin->getInputDomain();
-}
-
-unsigned int
-PluginWrapper::getVampApiVersion() const
-{
- return m_plugin->getVampApiVersion();
-}
-
-std::string
-PluginWrapper::getIdentifier() const
-{
- return m_plugin->getIdentifier();
-}
-
-std::string
-PluginWrapper::getName() const
-{
- return m_plugin->getName();
-}
-
-std::string
-PluginWrapper::getDescription() const
-{
- return m_plugin->getDescription();
-}
-
-std::string
-PluginWrapper::getMaker() const
-{
- return m_plugin->getMaker();
-}
-
-int
-PluginWrapper::getPluginVersion() const
-{
- return m_plugin->getPluginVersion();
-}
-
-std::string
-PluginWrapper::getCopyright() const
-{
- return m_plugin->getCopyright();
-}
-
-PluginBase::ParameterList
-PluginWrapper::getParameterDescriptors() const
-{
- return m_plugin->getParameterDescriptors();
-}
-
-float
-PluginWrapper::getParameter(std::string parameter) const
-{
- return m_plugin->getParameter(parameter);
-}
-
-void
-PluginWrapper::setParameter(std::string parameter, float value)
-{
- m_plugin->setParameter(parameter, value);
-}
-
-PluginBase::ProgramList
-PluginWrapper::getPrograms() const
-{
- return m_plugin->getPrograms();
-}
-
-std::string
-PluginWrapper::getCurrentProgram() const
-{
- return m_plugin->getCurrentProgram();
-}
-
-void
-PluginWrapper::selectProgram(std::string program)
-{
- m_plugin->selectProgram(program);
-}
-
-size_t
-PluginWrapper::getPreferredStepSize() const
-{
- return m_plugin->getPreferredStepSize();
-}
-
-size_t
-PluginWrapper::getPreferredBlockSize() const
-{
- return m_plugin->getPreferredBlockSize();
-}
-
-size_t
-PluginWrapper::getMinChannelCount() const
-{
- return m_plugin->getMinChannelCount();
-}
-
-size_t PluginWrapper::getMaxChannelCount() const
-{
- return m_plugin->getMaxChannelCount();
-}
-
-Plugin::OutputList
-PluginWrapper::getOutputDescriptors() const
-{
- return m_plugin->getOutputDescriptors();
-}
-
-Plugin::FeatureSet
-PluginWrapper::process(const float *const *inputBuffers, RealTime timestamp)
-{
- return m_plugin->process(inputBuffers, timestamp);
-}
-
-Plugin::FeatureSet
-PluginWrapper::getRemainingFeatures()
-{
- return m_plugin->getRemainingFeatures();
-}
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginWrapper.cpp)
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp b/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp
deleted file mode 100644
index c7424f041e..0000000000
--- a/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-hostsdk/RealTime.h"
-#include "../vamp-sdk/RealTime.cpp"
-
diff --git a/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp b/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp
deleted file mode 100644
index c937ba67b7..0000000000
--- a/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp
+++ /dev/null
@@ -1,919 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#include "vamp-sdk/PluginAdapter.h"
-
-#include <cstring>
-#include <cstdlib>
-
-#if ( VAMP_SDK_MAJOR_VERSION != 2 || VAMP_SDK_MINOR_VERSION != 2 )
-#error Unexpected version of Vamp SDK header included
-#endif
-
-
-//#define DEBUG_PLUGIN_ADAPTER 1
-
-_VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.cpp)
-
-namespace Vamp {
-
-class PluginAdapterBase::Impl
-{
-public:
- Impl(PluginAdapterBase *);
- ~Impl();
-
- const VampPluginDescriptor *getDescriptor();
-
-protected:
- PluginAdapterBase *m_base;
-
- static VampPluginHandle vampInstantiate(const VampPluginDescriptor *desc,
- float inputSampleRate);
-
- static void vampCleanup(VampPluginHandle handle);
-
- static int vampInitialise(VampPluginHandle handle, unsigned int channels,
- unsigned int stepSize, unsigned int blockSize);
-
- static void vampReset(VampPluginHandle handle);
-
- static float vampGetParameter(VampPluginHandle handle, int param);
- static void vampSetParameter(VampPluginHandle handle, int param, float value);
-
- static unsigned int vampGetCurrentProgram(VampPluginHandle handle);
- static void vampSelectProgram(VampPluginHandle handle, unsigned int program);
-
- static unsigned int vampGetPreferredStepSize(VampPluginHandle handle);
- static unsigned int vampGetPreferredBlockSize(VampPluginHandle handle);
- static unsigned int vampGetMinChannelCount(VampPluginHandle handle);
- static unsigned int vampGetMaxChannelCount(VampPluginHandle handle);
-
- static unsigned int vampGetOutputCount(VampPluginHandle handle);
-
- static VampOutputDescriptor *vampGetOutputDescriptor(VampPluginHandle handle,
- unsigned int i);
-
- static void vampReleaseOutputDescriptor(VampOutputDescriptor *desc);
-
- static VampFeatureList *vampProcess(VampPluginHandle handle,
- const float *const *inputBuffers,
- int sec,
- int nsec);
-
- static VampFeatureList *vampGetRemainingFeatures(VampPluginHandle handle);
-
- static void vampReleaseFeatureSet(VampFeatureList *fs);
-
- void checkOutputMap(Plugin *plugin);
- void markOutputsChanged(Plugin *plugin);
-
- void cleanup(Plugin *plugin);
- unsigned int getOutputCount(Plugin *plugin);
- VampOutputDescriptor *getOutputDescriptor(Plugin *plugin,
- unsigned int i);
- VampFeatureList *process(Plugin *plugin,
- const float *const *inputBuffers,
- int sec, int nsec);
- VampFeatureList *getRemainingFeatures(Plugin *plugin);
- VampFeatureList *convertFeatures(Plugin *plugin,
- const Plugin::FeatureSet &features);
-
- // maps both plugins and descriptors to adapters
- typedef std::map<const void *, Impl *> AdapterMap;
- static AdapterMap *m_adapterMap;
- static Impl *lookupAdapter(VampPluginHandle);
-
- bool m_populated;
- VampPluginDescriptor m_descriptor;
- Plugin::ParameterList m_parameters;
- Plugin::ProgramList m_programs;
-
- typedef std::map<Plugin *, Plugin::OutputList *> OutputMap;
- OutputMap m_pluginOutputs;
-
- std::map<Plugin *, VampFeatureList *> m_fs;
- std::map<Plugin *, std::vector<size_t> > m_fsizes;
- std::map<Plugin *, std::vector<std::vector<size_t> > > m_fvsizes;
- void resizeFS(Plugin *plugin, int n);
- void resizeFL(Plugin *plugin, int n, size_t sz);
- void resizeFV(Plugin *plugin, int n, int j, size_t sz);
-};
-
-PluginAdapterBase::PluginAdapterBase()
-{
- m_impl = new Impl(this);
-}
-
-PluginAdapterBase::~PluginAdapterBase()
-{
- delete m_impl;
-}
-
-const VampPluginDescriptor *
-PluginAdapterBase::getDescriptor()
-{
- return m_impl->getDescriptor();
-}
-
-PluginAdapterBase::Impl::Impl(PluginAdapterBase *base) :
- m_base(base),
- m_populated(false)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl[" << this << "]::Impl" << std::endl;
-#endif
-}
-
-const VampPluginDescriptor *
-PluginAdapterBase::Impl::getDescriptor()
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl[" << this << "]::getDescriptor" << std::endl;
-#endif
-
- if (m_populated) return &m_descriptor;
-
- Plugin *plugin = m_base->createPlugin(48000);
-
- if (!plugin) {
- std::cerr << "PluginAdapterBase::Impl::getDescriptor: Failed to create plugin" << std::endl;
- return 0;
- }
-
- if (plugin->getVampApiVersion() != VAMP_API_VERSION) {
- std::cerr << "Vamp::PluginAdapterBase::Impl::getDescriptor: ERROR: "
- << "API version " << plugin->getVampApiVersion()
- << " for\nplugin \"" << plugin->getIdentifier() << "\" "
- << "differs from version "
- << VAMP_API_VERSION << " for adapter.\n"
- << "This plugin is probably linked against a different version of the Vamp SDK\n"
- << "from the version it was compiled with. It will need to be re-linked correctly\n"
- << "before it can be used." << std::endl;
- delete plugin;
- return 0;
- }
-
- m_parameters = plugin->getParameterDescriptors();
- m_programs = plugin->getPrograms();
-
- m_descriptor.vampApiVersion = plugin->getVampApiVersion();
- m_descriptor.identifier = strdup(plugin->getIdentifier().c_str());
- m_descriptor.name = strdup(plugin->getName().c_str());
- m_descriptor.description = strdup(plugin->getDescription().c_str());
- m_descriptor.maker = strdup(plugin->getMaker().c_str());
- m_descriptor.pluginVersion = plugin->getPluginVersion();
- m_descriptor.copyright = strdup(plugin->getCopyright().c_str());
-
- m_descriptor.parameterCount = m_parameters.size();
- m_descriptor.parameters = (const VampParameterDescriptor **)
- malloc(m_parameters.size() * sizeof(VampParameterDescriptor));
-
- unsigned int i;
-
- for (i = 0; i < m_parameters.size(); ++i) {
- VampParameterDescriptor *desc = (VampParameterDescriptor *)
- malloc(sizeof(VampParameterDescriptor));
- desc->identifier = strdup(m_parameters[i].identifier.c_str());
- desc->name = strdup(m_parameters[i].name.c_str());
- desc->description = strdup(m_parameters[i].description.c_str());
- desc->unit = strdup(m_parameters[i].unit.c_str());
- desc->minValue = m_parameters[i].minValue;
- desc->maxValue = m_parameters[i].maxValue;
- desc->defaultValue = m_parameters[i].defaultValue;
- desc->isQuantized = m_parameters[i].isQuantized;
- desc->quantizeStep = m_parameters[i].quantizeStep;
- desc->valueNames = 0;
- if (desc->isQuantized && !m_parameters[i].valueNames.empty()) {
- desc->valueNames = (const char **)
- malloc((m_parameters[i].valueNames.size()+1) * sizeof(char *));
- for (unsigned int j = 0; j < m_parameters[i].valueNames.size(); ++j) {
- desc->valueNames[j] = strdup(m_parameters[i].valueNames[j].c_str());
- }
- desc->valueNames[m_parameters[i].valueNames.size()] = 0;
- }
- m_descriptor.parameters[i] = desc;
- }
-
- m_descriptor.programCount = m_programs.size();
- m_descriptor.programs = (const char **)
- malloc(m_programs.size() * sizeof(const char *));
-
- for (i = 0; i < m_programs.size(); ++i) {
- m_descriptor.programs[i] = strdup(m_programs[i].c_str());
- }
-
- if (plugin->getInputDomain() == Plugin::FrequencyDomain) {
- m_descriptor.inputDomain = vampFrequencyDomain;
- } else {
- m_descriptor.inputDomain = vampTimeDomain;
- }
-
- m_descriptor.instantiate = vampInstantiate;
- m_descriptor.cleanup = vampCleanup;
- m_descriptor.initialise = vampInitialise;
- m_descriptor.reset = vampReset;
- m_descriptor.getParameter = vampGetParameter;
- m_descriptor.setParameter = vampSetParameter;
- m_descriptor.getCurrentProgram = vampGetCurrentProgram;
- m_descriptor.selectProgram = vampSelectProgram;
- m_descriptor.getPreferredStepSize = vampGetPreferredStepSize;
- m_descriptor.getPreferredBlockSize = vampGetPreferredBlockSize;
- m_descriptor.getMinChannelCount = vampGetMinChannelCount;
- m_descriptor.getMaxChannelCount = vampGetMaxChannelCount;
- m_descriptor.getOutputCount = vampGetOutputCount;
- m_descriptor.getOutputDescriptor = vampGetOutputDescriptor;
- m_descriptor.releaseOutputDescriptor = vampReleaseOutputDescriptor;
- m_descriptor.process = vampProcess;
- m_descriptor.getRemainingFeatures = vampGetRemainingFeatures;
- m_descriptor.releaseFeatureSet = vampReleaseFeatureSet;
-
- if (!m_adapterMap) {
- m_adapterMap = new AdapterMap;
- }
- (*m_adapterMap)[&m_descriptor] = this;
-
- delete plugin;
-
- m_populated = true;
- return &m_descriptor;
-}
-
-PluginAdapterBase::Impl::~Impl()
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl[" << this << "]::~Impl" << std::endl;
-#endif
-
- if (!m_populated) return;
-
- free((void *)m_descriptor.identifier);
- free((void *)m_descriptor.name);
- free((void *)m_descriptor.description);
- free((void *)m_descriptor.maker);
- free((void *)m_descriptor.copyright);
-
- for (unsigned int i = 0; i < m_descriptor.parameterCount; ++i) {
- const VampParameterDescriptor *desc = m_descriptor.parameters[i];
- free((void *)desc->identifier);
- free((void *)desc->name);
- free((void *)desc->description);
- free((void *)desc->unit);
- if (desc->valueNames) {
- for (unsigned int j = 0; desc->valueNames[j]; ++j) {
- free((void *)desc->valueNames[j]);
- }
- free((void *)desc->valueNames);
- }
- }
- free((void *)m_descriptor.parameters);
-
- for (unsigned int i = 0; i < m_descriptor.programCount; ++i) {
- free((void *)m_descriptor.programs[i]);
- }
- free((void *)m_descriptor.programs);
-
- if (m_adapterMap) {
-
- m_adapterMap->erase(&m_descriptor);
-
- if (m_adapterMap->empty()) {
- delete m_adapterMap;
- m_adapterMap = 0;
- }
- }
-}
-
-PluginAdapterBase::Impl *
-PluginAdapterBase::Impl::lookupAdapter(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::lookupAdapter(" << handle << ")" << std::endl;
-#endif
-
- if (!m_adapterMap) return 0;
- AdapterMap::const_iterator i = m_adapterMap->find(handle);
- if (i == m_adapterMap->end()) return 0;
- return i->second;
-}
-
-VampPluginHandle
-PluginAdapterBase::Impl::vampInstantiate(const VampPluginDescriptor *desc,
- float inputSampleRate)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << ")" << std::endl;
-#endif
-
- if (!m_adapterMap) {
- m_adapterMap = new AdapterMap();
- }
-
- if (m_adapterMap->find(desc) == m_adapterMap->end()) {
- std::cerr << "WARNING: PluginAdapterBase::Impl::vampInstantiate: Descriptor " << desc << " not in adapter map" << std::endl;
- return 0;
- }
-
- Impl *adapter = (*m_adapterMap)[desc];
- if (desc != &adapter->m_descriptor) return 0;
-
- Plugin *plugin = adapter->m_base->createPlugin(inputSampleRate);
- if (plugin) {
- (*m_adapterMap)[plugin] = adapter;
- }
-
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << "): returning handle " << plugin << std::endl;
-#endif
-
- return plugin;
-}
-
-void
-PluginAdapterBase::Impl::vampCleanup(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampCleanup(" << handle << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) {
- delete ((Plugin *)handle);
- return;
- }
- adapter->cleanup(((Plugin *)handle));
-}
-
-int
-PluginAdapterBase::Impl::vampInitialise(VampPluginHandle handle,
- unsigned int channels,
- unsigned int stepSize,
- unsigned int blockSize)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampInitialise(" << handle << ", " << channels << ", " << stepSize << ", " << blockSize << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return 0;
- bool result = ((Plugin *)handle)->initialise(channels, stepSize, blockSize);
- adapter->markOutputsChanged((Plugin *)handle);
- return result ? 1 : 0;
-}
-
-void
-PluginAdapterBase::Impl::vampReset(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampReset(" << handle << ")" << std::endl;
-#endif
-
- ((Plugin *)handle)->reset();
-}
-
-float
-PluginAdapterBase::Impl::vampGetParameter(VampPluginHandle handle,
- int param)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetParameter(" << handle << ", " << param << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return 0.0;
- Plugin::ParameterList &list = adapter->m_parameters;
- return ((Plugin *)handle)->getParameter(list[param].identifier);
-}
-
-void
-PluginAdapterBase::Impl::vampSetParameter(VampPluginHandle handle,
- int param, float value)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampSetParameter(" << handle << ", " << param << ", " << value << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return;
- Plugin::ParameterList &list = adapter->m_parameters;
- ((Plugin *)handle)->setParameter(list[param].identifier, value);
- adapter->markOutputsChanged((Plugin *)handle);
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetCurrentProgram(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetCurrentProgram(" << handle << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return 0;
- Plugin::ProgramList &list = adapter->m_programs;
- std::string program = ((Plugin *)handle)->getCurrentProgram();
- for (unsigned int i = 0; i < list.size(); ++i) {
- if (list[i] == program) return i;
- }
- return 0;
-}
-
-void
-PluginAdapterBase::Impl::vampSelectProgram(VampPluginHandle handle,
- unsigned int program)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampSelectProgram(" << handle << ", " << program << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return;
-
- Plugin::ProgramList &list = adapter->m_programs;
- ((Plugin *)handle)->selectProgram(list[program]);
-
- adapter->markOutputsChanged((Plugin *)handle);
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetPreferredStepSize(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetPreferredStepSize(" << handle << ")" << std::endl;
-#endif
-
- return ((Plugin *)handle)->getPreferredStepSize();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetPreferredBlockSize(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetPreferredBlockSize(" << handle << ")" << std::endl;
-#endif
-
- return ((Plugin *)handle)->getPreferredBlockSize();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetMinChannelCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetMinChannelCount(" << handle << ")" << std::endl;
-#endif
-
- return ((Plugin *)handle)->getMinChannelCount();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetMaxChannelCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetMaxChannelCount(" << handle << ")" << std::endl;
-#endif
-
- return ((Plugin *)handle)->getMaxChannelCount();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetOutputCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetOutputCount(" << handle << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
-
-// std::cerr << "vampGetOutputCount: handle " << handle << " -> adapter "<< adapter << std::endl;
-
- if (!adapter) return 0;
- return adapter->getOutputCount((Plugin *)handle);
-}
-
-VampOutputDescriptor *
-PluginAdapterBase::Impl::vampGetOutputDescriptor(VampPluginHandle handle,
- unsigned int i)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetOutputDescriptor(" << handle << ", " << i << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
-
-// std::cerr << "vampGetOutputDescriptor: handle " << handle << " -> adapter "<< adapter << std::endl;
-
- if (!adapter) return 0;
- return adapter->getOutputDescriptor((Plugin *)handle, i);
-}
-
-void
-PluginAdapterBase::Impl::vampReleaseOutputDescriptor(VampOutputDescriptor *desc)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampReleaseOutputDescriptor(" << desc << ")" << std::endl;
-#endif
-
- if (desc->identifier) free((void *)desc->identifier);
- if (desc->name) free((void *)desc->name);
- if (desc->description) free((void *)desc->description);
- if (desc->unit) free((void *)desc->unit);
- if (desc->hasFixedBinCount && desc->binNames) {
- for (unsigned int i = 0; i < desc->binCount; ++i) {
- if (desc->binNames[i]) {
- free((void *)desc->binNames[i]);
- }
- }
- }
- if (desc->binNames) free((void *)desc->binNames);
- free((void *)desc);
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::vampProcess(VampPluginHandle handle,
- const float *const *inputBuffers,
- int sec,
- int nsec)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampProcess(" << handle << ", " << sec << ", " << nsec << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return 0;
- return adapter->process((Plugin *)handle, inputBuffers, sec, nsec);
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::vampGetRemainingFeatures(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampGetRemainingFeatures(" << handle << ")" << std::endl;
-#endif
-
- Impl *adapter = lookupAdapter(handle);
- if (!adapter) return 0;
- return adapter->getRemainingFeatures((Plugin *)handle);
-}
-
-void
-PluginAdapterBase::Impl::vampReleaseFeatureSet(VampFeatureList *)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
- std::cerr << "PluginAdapterBase::Impl::vampReleaseFeatureSet" << std::endl;
-#endif
-}
-
-void
-PluginAdapterBase::Impl::cleanup(Plugin *plugin)
-{
- if (m_fs.find(plugin) != m_fs.end()) {
- size_t outputCount = 0;
- if (m_pluginOutputs[plugin]) {
- outputCount = m_pluginOutputs[plugin]->size();
- }
- VampFeatureList *list = m_fs[plugin];
- for (unsigned int i = 0; i < outputCount; ++i) {
- for (unsigned int j = 0; j < m_fsizes[plugin][i]; ++j) {
- if (list[i].features[j].v1.label) {
- free(list[i].features[j].v1.label);
- }
- if (list[i].features[j].v1.values) {
- free(list[i].features[j].v1.values);
- }
- }
- if (list[i].features) free(list[i].features);
- }
- m_fs.erase(plugin);
- m_fsizes.erase(plugin);
- m_fvsizes.erase(plugin);
- }
-
- if (m_pluginOutputs.find(plugin) != m_pluginOutputs.end()) {
- delete m_pluginOutputs[plugin];
- m_pluginOutputs.erase(plugin);
- }
-
- if (m_adapterMap) {
- m_adapterMap->erase(plugin);
-
- if (m_adapterMap->empty()) {
- delete m_adapterMap;
- m_adapterMap = 0;
- }
- }
-
- delete ((Plugin *)plugin);
-}
-
-void
-PluginAdapterBase::Impl::checkOutputMap(Plugin *plugin)
-{
- OutputMap::iterator i = m_pluginOutputs.find(plugin);
-
- if (i == m_pluginOutputs.end() || !i->second) {
-
- m_pluginOutputs[plugin] = new Plugin::OutputList
- (plugin->getOutputDescriptors());
-
-// std::cerr << "PluginAdapterBase::Impl::checkOutputMap: Have " << m_pluginOutputs[plugin]->size() << " outputs for plugin " << plugin->getIdentifier() << std::endl;
- }
-}
-
-void
-PluginAdapterBase::Impl::markOutputsChanged(Plugin *plugin)
-{
- OutputMap::iterator i = m_pluginOutputs.find(plugin);
-
-// std::cerr << "PluginAdapterBase::Impl::markOutputsChanged" << std::endl;
-
- if (i != m_pluginOutputs.end()) {
-
- Plugin::OutputList *list = i->second;
- m_pluginOutputs.erase(i);
- delete list;
- }
-}
-
-unsigned int
-PluginAdapterBase::Impl::getOutputCount(Plugin *plugin)
-{
- checkOutputMap(plugin);
-
- return m_pluginOutputs[plugin]->size();
-}
-
-VampOutputDescriptor *
-PluginAdapterBase::Impl::getOutputDescriptor(Plugin *plugin,
- unsigned int i)
-{
- checkOutputMap(plugin);
-
- Plugin::OutputDescriptor &od =
- (*m_pluginOutputs[plugin])[i];
-
- VampOutputDescriptor *desc = (VampOutputDescriptor *)
- malloc(sizeof(VampOutputDescriptor));
-
- desc->identifier = strdup(od.identifier.c_str());
- desc->name = strdup(od.name.c_str());
- desc->description = strdup(od.description.c_str());
- desc->unit = strdup(od.unit.c_str());
- desc->hasFixedBinCount = od.hasFixedBinCount;
- desc->binCount = od.binCount;
-
- if (od.hasFixedBinCount && od.binCount > 0
- // We would like to do "&& !od.binNames.empty()" here -- but we
- // can't, because it will crash older versions of the host adapter
- // which try to copy the names across whenever the bin count is
- // non-zero, regardless of whether they exist or not
- ) {
- desc->binNames = (const char **)
- malloc(od.binCount * sizeof(const char *));
-
- for (unsigned int i = 0; i < od.binCount; ++i) {
- if (i < od.binNames.size()) {
- desc->binNames[i] = strdup(od.binNames[i].c_str());
- } else {
- desc->binNames[i] = 0;
- }
- }
- } else {
- desc->binNames = 0;
- }
-
- desc->hasKnownExtents = od.hasKnownExtents;
- desc->minValue = od.minValue;
- desc->maxValue = od.maxValue;
- desc->isQuantized = od.isQuantized;
- desc->quantizeStep = od.quantizeStep;
-
- switch (od.sampleType) {
- case Plugin::OutputDescriptor::OneSamplePerStep:
- desc->sampleType = vampOneSamplePerStep; break;
- case Plugin::OutputDescriptor::FixedSampleRate:
- desc->sampleType = vampFixedSampleRate; break;
- case Plugin::OutputDescriptor::VariableSampleRate:
- desc->sampleType = vampVariableSampleRate; break;
- }
-
- desc->sampleRate = od.sampleRate;
- desc->hasDuration = od.hasDuration;
-
- return desc;
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::process(Plugin *plugin,
- const float *const *inputBuffers,
- int sec, int nsec)
-{
-// std::cerr << "PluginAdapterBase::Impl::process" << std::endl;
- RealTime rt(sec, nsec);
- checkOutputMap(plugin);
- return convertFeatures(plugin, plugin->process(inputBuffers, rt));
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::getRemainingFeatures(Plugin *plugin)
-{
-// std::cerr << "PluginAdapterBase::Impl::getRemainingFeatures" << std::endl;
- checkOutputMap(plugin);
- return convertFeatures(plugin, plugin->getRemainingFeatures());
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::convertFeatures(Plugin *plugin,
- const Plugin::FeatureSet &features)
-{
- int lastN = -1;
-
- int outputCount = 0;
- if (m_pluginOutputs[plugin]) outputCount = m_pluginOutputs[plugin]->size();
-
- resizeFS(plugin, outputCount);
- VampFeatureList *fs = m_fs[plugin];
-
-// std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: sizeof(Feature) == " << sizeof(Plugin::Feature) << ", sizeof(VampFeature) == " << sizeof(VampFeature) << ", sizeof(VampFeatureList) == " << sizeof(VampFeatureList) << std::endl;
-
- for (Plugin::FeatureSet::const_iterator fi = features.begin();
- fi != features.end(); ++fi) {
-
- int n = fi->first;
-
-// std::cerr << "PluginAdapterBase::Impl::convertFeatures: n = " << n << std::endl;
-
- if (n >= int(outputCount)) {
- std::cerr << "WARNING: PluginAdapterBase::Impl::convertFeatures: Too many outputs from plugin (" << n+1 << ", only should be " << outputCount << ")" << std::endl;
- continue;
- }
-
- if (n > lastN + 1) {
- for (int i = lastN + 1; i < n; ++i) {
- fs[i].featureCount = 0;
- }
- }
-
- const Plugin::FeatureList &fl = fi->second;
-
- size_t sz = fl.size();
- if (sz > m_fsizes[plugin][n]) resizeFL(plugin, n, sz);
- fs[n].featureCount = sz;
-
- for (size_t j = 0; j < sz; ++j) {
-
-// std::cerr << "PluginAdapterBase::Impl::convertFeatures: j = " << j << std::endl;
-
- VampFeature *feature = &fs[n].features[j].v1;
-
- feature->hasTimestamp = fl[j].hasTimestamp;
- feature->sec = fl[j].timestamp.sec;
- feature->nsec = fl[j].timestamp.nsec;
- feature->valueCount = fl[j].values.size();
-
- VampFeatureV2 *v2 = &fs[n].features[j + sz].v2;
-
- v2->hasDuration = fl[j].hasDuration;
- v2->durationSec = fl[j].duration.sec;
- v2->durationNsec = fl[j].duration.nsec;
-
- if (feature->label) free(feature->label);
-
- if (fl[j].label.empty()) {
- feature->label = 0;
- } else {
- feature->label = strdup(fl[j].label.c_str());
- }
-
- if (feature->valueCount > m_fvsizes[plugin][n][j]) {
- resizeFV(plugin, n, j, feature->valueCount);
- }
-
- for (unsigned int k = 0; k < feature->valueCount; ++k) {
-// std::cerr << "PluginAdapterBase::Impl::convertFeatures: k = " << k << std::endl;
- feature->values[k] = fl[j].values[k];
- }
- }
-
- lastN = n;
- }
-
- if (lastN == -1) return 0;
-
- if (int(outputCount) > lastN + 1) {
- for (int i = lastN + 1; i < int(outputCount); ++i) {
- fs[i].featureCount = 0;
- }
- }
-
-// std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: have " << outputCount << " outputs" << std::endl;
-// for (int i = 0; i < outputCount; ++i) {
-// std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: output " << i << " has " << fs[i].featureCount << " features" << std::endl;
-// }
-
-
- return fs;
-}
-
-void
-PluginAdapterBase::Impl::resizeFS(Plugin *plugin, int n)
-{
-// std::cerr << "PluginAdapterBase::Impl::resizeFS(" << plugin << ", " << n << ")" << std::endl;
-
- int i = m_fsizes[plugin].size();
- if (i >= n) return;
-
-// std::cerr << "resizing from " << i << std::endl;
-
- m_fs[plugin] = (VampFeatureList *)realloc
- (m_fs[plugin], n * sizeof(VampFeatureList));
-
- while (i < n) {
- m_fs[plugin][i].featureCount = 0;
- m_fs[plugin][i].features = 0;
- m_fsizes[plugin].push_back(0);
- m_fvsizes[plugin].push_back(std::vector<size_t>());
- i++;
- }
-}
-
-void
-PluginAdapterBase::Impl::resizeFL(Plugin *plugin, int n, size_t sz)
-{
-// std::cerr << "PluginAdapterBase::Impl::resizeFL(" << plugin << ", " << n << ", "
-// << sz << ")" << std::endl;
-
- size_t i = m_fsizes[plugin][n];
- if (i >= sz) return;
-
-// std::cerr << "resizing from " << i << std::endl;
-
- m_fs[plugin][n].features = (VampFeatureUnion *)realloc
- (m_fs[plugin][n].features, 2 * sz * sizeof(VampFeatureUnion));
-
- while (m_fsizes[plugin][n] < sz) {
- m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.hasTimestamp = 0;
- m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.valueCount = 0;
- m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.values = 0;
- m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.label = 0;
- m_fs[plugin][n].features[m_fsizes[plugin][n] + sz].v2.hasDuration = 0;
- m_fvsizes[plugin][n].push_back(0);
- m_fsizes[plugin][n]++;
- }
-}
-
-void
-PluginAdapterBase::Impl::resizeFV(Plugin *plugin, int n, int j, size_t sz)
-{
-// std::cerr << "PluginAdapterBase::Impl::resizeFV(" << plugin << ", " << n << ", "
-// << j << ", " << sz << ")" << std::endl;
-
- size_t i = m_fvsizes[plugin][n][j];
- if (i >= sz) return;
-
-// std::cerr << "resizing from " << i << std::endl;
-
- m_fs[plugin][n].features[j].v1.values = (float *)realloc
- (m_fs[plugin][n].features[j].v1.values, sz * sizeof(float));
-
- m_fvsizes[plugin][n][j] = sz;
-}
-
-PluginAdapterBase::Impl::AdapterMap *
-PluginAdapterBase::Impl::m_adapterMap = 0;
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(PluginAdapter.cpp)
-
diff --git a/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp b/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp
deleted file mode 100644
index 16741dfa23..0000000000
--- a/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-/*
- This is a modified version of a source file from the
- Rosegarden MIDI and audio sequencer and notation editor.
- This file copyright 2000-2006 Chris Cannam.
- Relicensed by the author as detailed above.
-*/
-
-#include <iostream>
-
-#if (__GNUC__ < 3)
-#include <strstream>
-#define stringstream strstream
-#else
-#include <sstream>
-#endif
-
-using std::cerr;
-using std::endl;
-
-#ifndef _WIN32
-#include <sys/time.h>
-#endif
-
-#include "vamp-sdk/RealTime.h"
-
-_VAMP_SDK_PLUGSPACE_BEGIN(RealTime.cpp)
-
-namespace Vamp {
-
-// A RealTime consists of two ints that must be at least 32 bits each.
-// A signed 32-bit int can store values exceeding +/- 2 billion. This
-// means we can safely use our lower int for nanoseconds, as there are
-// 1 billion nanoseconds in a second and we need to handle double that
-// because of the implementations of addition etc that we use.
-//
-// The maximum valid RealTime on a 32-bit system is somewhere around
-// 68 years: 999999999 nanoseconds longer than the classic Unix epoch.
-
-#define ONE_BILLION 1000000000
-
-RealTime::RealTime(int s, int n) :
- sec(s), nsec(n)
-{
- if (sec == 0) {
- while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
- while (nsec >= ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
- } else if (sec < 0) {
- while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
- while (nsec > 0) { nsec -= ONE_BILLION; ++sec; }
- } else {
- while (nsec >= ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
- while (nsec < 0) { nsec += ONE_BILLION; --sec; }
- }
-}
-
-RealTime
-RealTime::fromSeconds(double sec)
-{
- return RealTime(int(sec), int((sec - int(sec)) * ONE_BILLION + 0.5));
-}
-
-RealTime
-RealTime::fromMilliseconds(int msec)
-{
- return RealTime(msec / 1000, (msec % 1000) * 1000000);
-}
-
-#ifndef _WIN32
-RealTime
-RealTime::fromTimeval(const struct timeval &tv)
-{
- return RealTime(tv.tv_sec, tv.tv_usec * 1000);
-}
-#endif
-
-std::ostream &operator<<(std::ostream &out, const RealTime &rt)
-{
- if (rt < RealTime::zeroTime) {
- out << "-";
- } else {
- out << " ";
- }
-
- int s = (rt.sec < 0 ? -rt.sec : rt.sec);
- int n = (rt.nsec < 0 ? -rt.nsec : rt.nsec);
-
- out << s << ".";
-
- int nn(n);
- if (nn == 0) out << "00000000";
- else while (nn < (ONE_BILLION / 10)) {
- out << "0";
- nn *= 10;
- }
-
- out << n << "R";
- return out;
-}
-
-std::string
-RealTime::toString() const
-{
- std::stringstream out;
- out << *this;
-
-#if (__GNUC__ < 3)
- out << std::ends;
-#endif
-
- std::string s = out.str();
-
- // remove trailing R
- return s.substr(0, s.length() - 1);
-}
-
-std::string
-RealTime::toText(bool fixedDp) const
-{
- if (*this < RealTime::zeroTime) return "-" + (-*this).toText();
-
- std::stringstream out;
-
- if (sec >= 3600) {
- out << (sec / 3600) << ":";
- }
-
- if (sec >= 60) {
- out << (sec % 3600) / 60 << ":";
- }
-
- if (sec >= 10) {
- out << ((sec % 60) / 10);
- }
-
- out << (sec % 10);
-
- int ms = msec();
-
- if (ms != 0) {
- out << ".";
- out << (ms / 100);
- ms = ms % 100;
- if (ms != 0) {
- out << (ms / 10);
- ms = ms % 10;
- } else if (fixedDp) {
- out << "0";
- }
- if (ms != 0) {
- out << ms;
- } else if (fixedDp) {
- out << "0";
- }
- } else if (fixedDp) {
- out << ".000";
- }
-
-#if (__GNUC__ < 3)
- out << std::ends;
-#endif
-
- std::string s = out.str();
-
- return s;
-}
-
-
-RealTime
-RealTime::operator/(int d) const
-{
- int secdiv = sec / d;
- int secrem = sec % d;
-
- double nsecdiv = (double(nsec) + ONE_BILLION * double(secrem)) / d;
-
- return RealTime(secdiv, int(nsecdiv + 0.5));
-}
-
-double
-RealTime::operator/(const RealTime &r) const
-{
- double lTotal = double(sec) * ONE_BILLION + double(nsec);
- double rTotal = double(r.sec) * ONE_BILLION + double(r.nsec);
-
- if (rTotal == 0) return 0.0;
- else return lTotal/rTotal;
-}
-
-long
-RealTime::realTime2Frame(const RealTime &time, unsigned int sampleRate)
-{
- if (time < zeroTime) return -realTime2Frame(-time, sampleRate);
- double s = time.sec + double(time.nsec + 1) / 1000000000.0;
- return long(s * sampleRate);
-}
-
-RealTime
-RealTime::frame2RealTime(long frame, unsigned int sampleRate)
-{
- if (frame < 0) return -frame2RealTime(-frame, sampleRate);
-
- RealTime rt;
- rt.sec = frame / long(sampleRate);
- frame -= rt.sec * long(sampleRate);
- rt.nsec = (int)(((double(frame) * 1000000.0) / sampleRate) * 1000.0);
- return rt;
-}
-
-const RealTime RealTime::zeroTime(0,0);
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(RealTime.cpp)
-
-
-
diff --git a/libs/vamp-sdk/vamp-hostsdk/Plugin.h b/libs/vamp-sdk/vamp-hostsdk/Plugin.h
deleted file mode 100644
index 1e849cb437..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/Plugin.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_HOSTSDK_PLUGIN_H_
-#define _VAMP_HOSTSDK_PLUGIN_H_
-
-// Do not include vamp-sdk/Plugin.h directly from host code. Always
-// use this header instead.
-
-#include "hostguard.h"
-
-#include "vamp-sdk/Plugin.h"
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginBase.h b/libs/vamp-sdk/vamp-hostsdk/PluginBase.h
deleted file mode 100644
index ed45dc7bb3..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginBase.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_HOSTSDK_PLUGIN_BASE_H_
-#define _VAMP_HOSTSDK_PLUGIN_BASE_H_
-
-// Do not include vamp-sdk/PluginBase.h directly from host code.
-// Always use this header instead.
-
-#include "hostguard.h"
-
-#include "vamp-sdk/PluginBase.h"
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h
deleted file mode 100644
index 0236a7ad9b..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
- This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-#define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-
-#include "hostguard.h"
-#include "PluginWrapper.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginBufferingAdapter PluginBufferingAdapter.h <vamp-hostsdk/PluginBufferingAdapter.h>
- *
- * PluginBufferingAdapter is a Vamp plugin adapter that allows plugins
- * to be used by a host supplying an audio stream in non-overlapping
- * buffers of arbitrary size.
- *
- * A host using PluginBufferingAdapter may ignore the preferred step
- * and block size reported by the plugin, and still expect the plugin
- * to run. The value of blockSize and stepSize passed to initialise
- * should be the size of the buffer which the host will supply; the
- * stepSize should be equal to the blockSize.
- *
- * If the internal step size used for the plugin differs from that
- * supplied by the host, the adapter will modify the sample type and
- * rate specifications for the plugin outputs appropriately, and set
- * timestamps on the output features for outputs that formerly used a
- * different sample rate specification. This is necessary in order to
- * obtain correct time stamping.
- *
- * In other respects, the PluginBufferingAdapter behaves identically
- * to the plugin that it wraps. The wrapped plugin will be deleted
- * when the wrapper is deleted.
- */
-
-class PluginBufferingAdapter : public PluginWrapper
-{
-public:
- /**
- * Construct a PluginBufferingAdapter wrapping the given plugin.
- * The adapter takes ownership of the plugin, which will be
- * deleted when the adapter is deleted.
- */
- PluginBufferingAdapter(Plugin *plugin);
- virtual ~PluginBufferingAdapter();
-
- /**
- * Return the preferred step size for this adapter.
- *
- * Because of the way this adapter works, its preferred step size
- * will always be the same as its preferred block size. This may
- * or may not be the same as the preferred step size of the
- * underlying plugin, which may be obtained by calling
- * getPluginPreferredStepSize().
- */
- size_t getPreferredStepSize() const;
-
- /**
- * Return the preferred block size for this adapter.
- *
- * This may or may not be the same as the preferred block size of
- * the underlying plugin, which may be obtained by calling
- * getPluginPreferredBlockSize().
- *
- * Note that this adapter may be initialised with any block size,
- * not just its supposedly preferred one.
- */
- size_t getPreferredBlockSize() const;
-
- /**
- * Initialise the adapter (and therefore the plugin) for the given
- * number of channels. Initialise the adapter for the given step
- * and block size, which must be equal.
- *
- * The step and block size used for the underlying plugin will
- * depend on its preferences, or any values previously passed to
- * setPluginStepSize and setPluginBlockSize.
- */
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- /**
- * Return the preferred step size of the plugin wrapped by this
- * adapter.
- *
- * This is included mainly for informational purposes. This value
- * is not likely to be a valid step size for the adapter itself,
- * and it is not usually of any use in interpreting the results
- * (because the adapter re-writes OneSamplePerStep outputs to
- * FixedSampleRate so that the hop size no longer needs to be
- * known beforehand in order to interpret them).
- */
- size_t getPluginPreferredStepSize() const;
-
- /**
- * Return the preferred block size of the plugin wrapped by this
- * adapter.
- *
- * This is included mainly for informational purposes.
- */
- size_t getPluginPreferredBlockSize() const;
-
- /**
- * Set the step size that will be used for the underlying plugin
- * when initialise() is called. If this is not set, the plugin's
- * own preferred step size will be used. You will not usually
- * need to call this function. If you do call it, it must be
- * before the first call to initialise().
- */
- void setPluginStepSize(size_t stepSize);
-
- /**
- * Set the block size that will be used for the underlying plugin
- * when initialise() is called. If this is not set, the plugin's
- * own preferred block size will be used. You will not usually
- * need to call this function. If you do call it, it must be
- * before the first call to initialise().
- */
- void setPluginBlockSize(size_t blockSize);
-
- /**
- * Return the step and block sizes that were actually used when
- * initialising the underlying plugin.
- *
- * This is included mainly for informational purposes. You will
- * not usually need to call this function. If this is called
- * before initialise(), it will return 0 for both values. If it
- * is called after a failed call to initialise(), it will return
- * the values that were used in the failed call to the plugin's
- * initialise() function.
- */
- void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
-
- void setParameter(std::string, float);
- void selectProgram(std::string);
-
- OutputList getOutputDescriptors() const;
-
- void reset();
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
-protected:
- class Impl;
- Impl *m_impl;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginBufferingAdapter.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h
deleted file mode 100644
index a0c2333d3f..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-#define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-
-#include "hostguard.h"
-#include "PluginWrapper.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginChannelAdapter PluginChannelAdapter.h <vamp-hostsdk/PluginChannelAdapter.h>
- *
- * PluginChannelAdapter is a Vamp plugin adapter that implements a
- * policy for management of plugins that expect a different number of
- * input channels from the number actually available in the source
- * audio data.
- *
- * A host using PluginChannelAdapter may ignore the getMinChannelCount
- * and getMaxChannelCount reported by the plugin, and still expect the
- * plugin to run.
- *
- * PluginChannelAdapter implements the following policy:
- *
- * - If the plugin supports the provided number of channels directly,
- * PluginChannelAdapter will just run the plugin as normal.
- *
- * - If the plugin only supports exactly one channel but more than
- * one channel is provided, PluginChannelAdapter will use the mean of
- * the channels. This ensures that the resulting values remain
- * within the same magnitude range as expected for mono data.
- *
- * - If the plugin requires more than one channel but exactly one is
- * provided, the provided channel will be duplicated across all the
- * plugin input channels.
- *
- * If none of the above apply:
- *
- * - If the plugin requires more channels than are provided, the
- * minimum acceptable number of channels will be produced by adding
- * empty (zero valued) channels to those provided.
- *
- * - If the plugin requires fewer channels than are provided, the
- * maximum acceptable number of channels will be produced by
- * discarding the excess channels.
- *
- * Hosts requiring a different channel policy from the above will need
- * to implement it themselves, instead of using PluginChannelAdapter.
- *
- * Note that PluginChannelAdapter does not override the minimum and
- * maximum channel counts returned by the wrapped plugin. The host
- * will need to be aware that it is using a PluginChannelAdapter, and
- * be prepared to ignore these counts as necessary. (This contrasts
- * with the approach used in PluginInputDomainAdapter, which aims to
- * make the host completely unaware of which underlying input domain
- * is in fact in use.)
- *
- * (The rationale for this is that a host may wish to use the
- * PluginChannelAdapter but still discriminate in some way on the
- * basis of the number of channels actually supported. For example, a
- * simple stereo audio host may prefer to reject plugins that require
- * more than two channels on the grounds that doesn't actually
- * understand what they are for, rather than allow the channel adapter
- * to make a potentially meaningless channel conversion for them.)
- *
- * In every respect other than its management of channels, the
- * PluginChannelAdapter behaves identically to the plugin that it
- * wraps. The wrapped plugin will be deleted when the wrapper is
- * deleted.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginChannelAdapter : public PluginWrapper
-{
-public:
- /**
- * Construct a PluginChannelAdapter wrapping the given plugin.
- * The adapter takes ownership of the plugin, which will be
- * deleted when the adapter is deleted.
- */
- PluginChannelAdapter(Plugin *plugin);
- virtual ~PluginChannelAdapter();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- /**
- * Call process(), providing interleaved audio data with the
- * number of channels passed to initialise(). The adapter will
- * de-interleave into temporary buffers as appropriate before
- * calling process().
- *
- * \note This function was introduced in version 1.4 of the Vamp
- * plugin SDK.
- */
- FeatureSet processInterleaved(const float *inputBuffer, RealTime timestamp);
-
-protected:
- class Impl;
- Impl *m_impl;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginChannelAdapter.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h
deleted file mode 100644
index 588b9cf8a1..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_
-#define _VAMP_PLUGIN_HOST_ADAPTER_H_
-
-#include "hostguard.h"
-#include "Plugin.h"
-
-#include "vamp/vamp.h"
-
-#include <vector>
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.h)
-
-namespace Vamp {
-
-/**
- * \class PluginHostAdapter PluginHostAdapter.h <vamp-hostsdk/PluginHostAdapter.h>
- *
- * PluginHostAdapter is a wrapper class that a Vamp host can use to
- * make the C-language VampPluginDescriptor object appear as a C++
- * Vamp::Plugin object.
- *
- * The Vamp API is defined in vamp/vamp.h as a C API. The C++ objects
- * used for convenience by plugins and hosts actually communicate
- * using the C low-level API, but the details of this communication
- * are handled seamlessly by the Vamp SDK implementation provided the
- * plugin and host use the proper C++ wrapper objects.
- *
- * See also PluginAdapter, the plugin-side wrapper that makes a C++
- * plugin object available using the C query API.
- */
-
-class PluginHostAdapter : public Plugin
-{
-public:
- PluginHostAdapter(const VampPluginDescriptor *descriptor,
- float inputSampleRate);
- virtual ~PluginHostAdapter();
-
- static std::vector<std::string> getPluginPath();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- InputDomain getInputDomain() const;
-
- unsigned int getVampApiVersion() const;
- std::string getIdentifier() const;
- std::string getName() const;
- std::string getDescription() const;
- std::string getMaker() const;
- int getPluginVersion() const;
- std::string getCopyright() const;
-
- ParameterList getParameterDescriptors() const;
- float getParameter(std::string) const;
- void setParameter(std::string, float);
-
- ProgramList getPrograms() const;
- std::string getCurrentProgram() const;
- void selectProgram(std::string);
-
- size_t getPreferredStepSize() const;
- size_t getPreferredBlockSize() const;
-
- size_t getMinChannelCount() const;
- size_t getMaxChannelCount() const;
-
- OutputList getOutputDescriptors() const;
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
-protected:
- void convertFeatures(VampFeatureList *, FeatureSet &);
-
- const VampPluginDescriptor *m_descriptor;
- VampPluginHandle m_handle;
-};
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginHostAdapter.h)
-
-#endif
-
-
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h
deleted file mode 100644
index f0fe7da5c4..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-#define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-
-#include "hostguard.h"
-#include "PluginWrapper.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginInputDomainAdapter PluginInputDomainAdapter.h <vamp-hostsdk/PluginInputDomainAdapter.h>
- *
- * PluginInputDomainAdapter is a Vamp plugin adapter that converts
- * time-domain input into frequency-domain input for plugins that need
- * it. This permits a host to use time- and frequency-domain plugins
- * interchangeably without needing to handle the conversion itself.
- *
- * This adapter uses a basic Hanning windowed FFT that supports
- * power-of-two block sizes only. If a frequency domain plugin
- * requests a non-power-of-two blocksize, the adapter will adjust it
- * to a nearby power of two instead. Thus, getPreferredBlockSize()
- * will always return a power of two if the wrapped plugin is a
- * frequency domain one. If the plugin doesn't accept the adjusted
- * power of two block size, initialise() will fail.
- *
- * The adapter provides no way for the host to discover whether the
- * underlying plugin is actually a time or frequency domain plugin
- * (except that if the preferred block size is not a power of two, it
- * must be a time domain plugin).
- *
- * The FFT implementation is simple and self-contained, but unlikely
- * to be the fastest available: a host can usually do better if it
- * cares enough.
- *
- * In every respect other than its input domain handling, the
- * PluginInputDomainAdapter behaves identically to the plugin that it
- * wraps. The wrapped plugin will be deleted when the wrapper is
- * deleted.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginInputDomainAdapter : public PluginWrapper
-{
-public:
- /**
- * Construct a PluginInputDomainAdapter wrapping the given plugin.
- * The adapter takes ownership of the plugin, which will be
- * deleted when the adapter is deleted.
- */
- PluginInputDomainAdapter(Plugin *plugin);
- virtual ~PluginInputDomainAdapter();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- InputDomain getInputDomain() const;
-
- size_t getPreferredStepSize() const;
- size_t getPreferredBlockSize() const;
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- /**
- * ProcessTimestampMethod determines how the
- * PluginInputDomainAdapter handles timestamps for the data passed
- * to the process() function of the plugin it wraps, in the case
- * where the plugin is expecting frequency-domain data.
- *
- * The Vamp specification requires that the timestamp passed to
- * the plugin for frequency-domain input should be that of the
- * centre of the processing block, rather than the start as is the
- * case for time-domain input.
- *
- * Since PluginInputDomainAdapter aims to be transparent in use,
- * it needs to handle this timestamp adjustment itself. However,
- * some control is available over the method used for adjustment,
- * by means of the ProcessTimestampMethod setting.
- *
- * If ProcessTimestampMethod is set to ShiftTimestamp (the
- * default), then the data passed to the wrapped plugin will be
- * calculated from the same input data block as passed to the
- * wrapper, but the timestamp passed to the plugin will be
- * advanced by half of the window size.
- *
- * If ProcessTimestampMethod is set to ShiftData, then the
- * timestamp passed to the wrapped plugin will be the same as that
- * passed to the process call of the wrapper, but the data block
- * used to calculate the input will be shifted back (earlier) by
- * half of the window size, with half a block of zero padding at
- * the start of the first process call. This has the advantage of
- * preserving the first half block of audio without any
- * deterioration from window shaping.
- *
- * If ProcessTimestampMethod is set to NoShift, then no adjustment
- * will be made and the timestamps will be incorrect.
- */
- enum ProcessTimestampMethod {
- ShiftTimestamp,
- ShiftData,
- NoShift
- };
-
- /**
- * Set the method used for timestamp adjustment in plugins taking
- * frequency-domain input. See the ProcessTimestampMethod
- * documentation for details.
- *
- * This function must be called before the first call to
- * process().
- */
- void setProcessTimestampMethod(ProcessTimestampMethod);
-
- /**
- * Retrieve the method used for timestamp adjustment in plugins
- * taking frequency-domain input. See the ProcessTimestampMethod
- * documentation for details.
- */
- ProcessTimestampMethod getProcessTimestampMethod() const;
-
- /**
- * Return the amount by which the timestamps supplied to process()
- * are being incremented when they are passed to the plugin's own
- * process() implementation.
- *
- * The Vamp API mandates that the timestamp passed to the plugin
- * for time-domain input should be the time of the first sample in
- * the block, but the timestamp passed for frequency-domain input
- * should be the timestamp of the centre of the block.
- *
- * The PluginInputDomainAdapter adjusts its timestamps properly so
- * that the plugin receives correct times, but in some
- * circumstances (such as for establishing the correct timing of
- * implicitly-timed features, i.e. features without their own
- * timestamps) the host may need to be aware that this adjustment
- * is taking place.
- *
- * If the plugin requires time-domain input or the
- * PluginInputDomainAdapter is configured with its
- * ProcessTimestampMethod set to ShiftData instead of
- * ShiftTimestamp, then this function will return zero.
- *
- * The result of calling this function before initialise() has
- * been called is undefined.
- */
- RealTime getTimestampAdjustment() const;
-
-protected:
- class Impl;
- Impl *m_impl;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginInputDomainAdapter.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h b/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h
deleted file mode 100644
index eadaf03f92..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_LOADER_H_
-#define _VAMP_PLUGIN_LOADER_H_
-
-#include <vector>
-#include <string>
-#include <map>
-
-#include "hostguard.h"
-#include "PluginWrapper.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h)
-
-namespace Vamp {
-
-class Plugin;
-
-namespace HostExt {
-
-/**
- * \class PluginLoader PluginLoader.h <vamp-hostsdk/PluginLoader.h>
- *
- * Vamp::HostExt::PluginLoader is a convenience class for discovering
- * and loading Vamp plugins using the typical plugin-path, library
- * naming, and categorisation conventions described in the Vamp SDK
- * documentation. This class is intended to greatly simplify the task
- * of becoming a Vamp plugin host for any C++ application.
- *
- * Hosts are not required by the Vamp specification to use the same
- * plugin search path and naming conventions as implemented by this
- * class, and are certainly not required to use this actual class.
- * But we do strongly recommend it.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginLoader
-{
-public:
- /**
- * Obtain a pointer to the singleton instance of PluginLoader.
- * Use this to obtain your loader object.
- */
- static PluginLoader *getInstance();
-
- /**
- * PluginKey is a string type that is used to identify a plugin
- * uniquely within the scope of "the current system". It consists
- * of the lower-cased base name of the plugin library, a colon
- * separator, and the identifier string for the plugin. It is
- * only meaningful in the context of a given plugin path (the one
- * returned by PluginHostAdapter::getPluginPath()).
- *
- * Use composePluginKey() to construct a plugin key from a known
- * plugin library name and identifier.
- *
- * Note: the fact that the library component of the key is
- * lower-cased implies that library names are matched
- * case-insensitively by the PluginLoader class, regardless of the
- * case sensitivity of the underlying filesystem. (Plugin
- * identifiers _are_ case sensitive, however.) Also, it is not
- * possible to portably extract a working library name from a
- * plugin key, as the result may fail on case-sensitive
- * filesystems. Use getLibraryPathForPlugin() instead.
- */
- typedef std::string PluginKey;
-
- /**
- * PluginKeyList is a sequence of plugin keys, such as returned by
- * listPlugins().
- */
- typedef std::vector<PluginKey> PluginKeyList;
-
- /**
- * PluginCategoryHierarchy is a sequence of general->specific
- * category names, as may be associated with a single plugin.
- * This sequence describes the location of a plugin within a
- * category forest, containing the human-readable names of the
- * plugin's category tree root, followed by each of the nodes down
- * to the leaf containing the plugin.
- *
- * \see getPluginCategory()
- */
- typedef std::vector<std::string> PluginCategoryHierarchy;
-
- /**
- * Search for all available Vamp plugins, and return a list of
- * them in the order in which they were found.
- */
- PluginKeyList listPlugins();
-
- /**
- * AdapterFlags contains a set of values that may be OR'd together
- * to indicate in which circumstances PluginLoader should use a
- * plugin adapter to make a plugin easier to use for a host that
- * does not want to cater for complex features.
- *
- * The available flags are:
- *
- * ADAPT_INPUT_DOMAIN - If the plugin expects frequency domain
- * input, wrap it in a PluginInputDomainAdapter that automatically
- * converts the plugin to one that expects time-domain input.
- * This enables a host to accommodate time- and frequency-domain
- * plugins without needing to do any conversion itself.
- *
- * ADAPT_CHANNEL_COUNT - Wrap the plugin in a PluginChannelAdapter
- * to handle any mismatch between the number of channels of audio
- * the plugin can handle and the number available in the host.
- * This enables a host to use plugins that may require the input
- * to be mixed down to mono, etc., without having to worry about
- * doing that itself.
- *
- * ADAPT_BUFFER_SIZE - Wrap the plugin in a PluginBufferingAdapter
- * permitting the host to provide audio input using any block
- * size, with no overlap, regardless of the plugin's preferred
- * block size (suitable for hosts that read from non-seekable
- * streaming media, for example). This adapter introduces some
- * run-time overhead and also changes the semantics of the plugin
- * slightly (see the PluginBufferingAdapter header documentation
- * for details).
- *
- * ADAPT_ALL_SAFE - Perform all available adaptations that are
- * meaningful for the plugin and "safe". Currently this means to
- * ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input;
- * ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE never.
- *
- * ADAPT_ALL - Perform all available adaptations that are
- * meaningful for the plugin.
- *
- * See PluginInputDomainAdapter, PluginChannelAdapter and
- * PluginBufferingAdapter for more details of the classes that the
- * loader may use if these flags are set.
- */
- enum AdapterFlags {
-
- ADAPT_INPUT_DOMAIN = 0x01,
- ADAPT_CHANNEL_COUNT = 0x02,
- ADAPT_BUFFER_SIZE = 0x04,
-
- ADAPT_ALL_SAFE = 0x03,
-
- ADAPT_ALL = 0xff
- };
-
- /**
- * Load a Vamp plugin, given its identifying key. If the plugin
- * could not be loaded, returns 0.
- *
- * The returned plugin should be deleted (using the standard C++
- * delete keyword) after use.
- *
- * \param adapterFlags a bitwise OR of the values in the AdapterFlags
- * enumeration, indicating under which circumstances an adapter should be
- * used to wrap the original plugin. If adapterFlags is 0, no
- * optional adapters will be used. Otherwise, the returned plugin
- * may be of an adapter class type which will behave identically
- * to the original plugin, apart from any particular features
- * implemented by the adapter itself.
- *
- * \see AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter
- */
- Plugin *loadPlugin(PluginKey key,
- float inputSampleRate,
- int adapterFlags = 0);
-
- /**
- * Given a Vamp plugin library name and plugin identifier, return
- * the corresponding plugin key in a form suitable for passing in to
- * loadPlugin().
- */
- PluginKey composePluginKey(std::string libraryName,
- std::string identifier);
-
- /**
- * Return the category hierarchy for a Vamp plugin, given its
- * identifying key.
- *
- * If the plugin has no category information, return an empty
- * hierarchy.
- *
- * \see PluginCategoryHierarchy
- */
- PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
-
- /**
- * Return the file path of the dynamic library from which the
- * given plugin will be loaded (if available).
- */
- std::string getLibraryPathForPlugin(PluginKey plugin);
-
-protected:
- PluginLoader();
- virtual ~PluginLoader();
-
- class Impl;
- Impl *m_impl;
-
- static PluginLoader *m_instance;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginLoader.h)
-
-#endif
-
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h
deleted file mode 100644
index ba18a9a971..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
-#define _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
-
-#include "hostguard.h"
-#include "PluginWrapper.h"
-
-#include <set>
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginSummarisingAdapter.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginSummarisingAdapter PluginSummarisingAdapter.h <vamp-hostsdk/PluginSummarisingAdapter.h>
- *
- * PluginSummarisingAdapter is a Vamp plugin adapter that provides
- * summarisation methods such as mean and median averages of output
- * features, for use in any context where an available plugin produces
- * individual values but the result that is actually needed is some
- * sort of aggregate.
- *
- * To make use of PluginSummarisingAdapter, the host should configure,
- * initialise and run the plugin through the adapter interface just as
- * normal. Then, after the process and getRemainingFeatures methods
- * have been properly called and processing is complete, the host may
- * call getSummaryForOutput or getSummaryForAllOutputs to obtain
- * summarised features: averages, maximum values, etc, depending on
- * the SummaryType passed to the function.
- *
- * By default PluginSummarisingAdapter calculates a single summary of
- * each output's feature across the whole duration of processed audio.
- * A host needing summaries of sub-segments of the whole audio may
- * call setSummarySegmentBoundaries before retrieving the summaries,
- * providing a list of times such that one summary will be provided
- * for each segment between two consecutive times.
- *
- * PluginSummarisingAdapter is straightforward rather than fast. It
- * calculates all of the summary types for all outputs always, and
- * then returns only the ones that are requested. It is designed on
- * the basis that, for most features, summarising and storing
- * summarised results is far cheaper than calculating the results in
- * the first place. If this is not true for your particular feature,
- * PluginSummarisingAdapter may not be the best approach for you.
- *
- * \note This class was introduced in version 2.0 of the Vamp plugin SDK.
- */
-
-class PluginSummarisingAdapter : public PluginWrapper
-{
-public:
- /**
- * Construct a PluginSummarisingAdapter wrapping the given plugin.
- * The adapter takes ownership of the plugin, which will be
- * deleted when the adapter is deleted.
- */
- PluginSummarisingAdapter(Plugin *plugin);
- virtual ~PluginSummarisingAdapter();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
- void reset();
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
- FeatureSet getRemainingFeatures();
-
- typedef std::set<RealTime> SegmentBoundaries;
-
- /**
- * Specify a series of segment boundaries, such that one summary
- * will be returned for each of the contiguous intra-boundary
- * segments. This function must be called before
- * getSummaryForOutput or getSummaryForAllOutputs.
- *
- * Note that you cannot retrieve results with multiple different
- * segmentations by repeatedly calling this function followed by
- * one of the getSummary functions. The summaries are all
- * calculated at the first call to any getSummary function, and
- * once the summaries have been calculated, they remain
- * calculated.
- */
- void setSummarySegmentBoundaries(const SegmentBoundaries &);
-
- enum SummaryType {
- Minimum = 0,
- Maximum = 1,
- Mean = 2,
- Median = 3,
- Mode = 4,
- Sum = 5,
- Variance = 6,
- StandardDeviation = 7,
- Count = 8,
-
- UnknownSummaryType = 999
- };
-
- /**
- * AveragingMethod indicates how the adapter should handle
- * average-based summaries of features whose results are not
- * equally spaced in time.
- *
- * If SampleAverage is specified, summary types based on averages
- * will be calculated by treating each result individually without
- * regard to its time: for example, the mean will be the sum of
- * all values divided by the number of values.
- *
- * If ContinuousTimeAverage is specified, each feature will be
- * considered to have a duration, either as specified in the
- * feature's duration field, or until the following feature: thus,
- * for example, the mean will be the sum of the products of values
- * and durations, divided by the total duration.
- *
- * Although SampleAverage is useful for many types of feature,
- * ContinuousTimeAverage is essential for some situations, for
- * example finding the result that spans the largest proportion of
- * the input given a feature that emits a new result only when the
- * value changes (the modal value integrated over time).
- */
- enum AveragingMethod {
- SampleAverage = 0,
- ContinuousTimeAverage = 1
- };
-
- /**
- * Return summaries of the features that were returned on the
- * given output, using the given SummaryType and AveragingMethod.
- *
- * The plugin must have been fully run (process() and
- * getRemainingFeatures() calls all made as appropriate) before
- * this function is called.
- */
- FeatureList getSummaryForOutput(int output,
- SummaryType type,
- AveragingMethod method = SampleAverage);
-
- /**
- * Return summaries of the features that were returned on all of
- * the plugin's outputs, using the given SummaryType and
- * AveragingMethod.
- *
- * The plugin must have been fully run (process() and
- * getRemainingFeatures() calls all made as appropriate) before
- * this function is called.
- */
- FeatureSet getSummaryForAllOutputs(SummaryType type,
- AveragingMethod method = SampleAverage);
-
-protected:
- class Impl;
- Impl *m_impl;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginSummarisingAdapter.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h b/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
deleted file mode 100644
index 2cc060548f..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_WRAPPER_H_
-#define _VAMP_PLUGIN_WRAPPER_H_
-
-#include "hostguard.h"
-#include "vamp-hostsdk/Plugin.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginWrapper PluginWrapper.h <vamp-hostsdk/PluginWrapper.h>
- *
- * PluginWrapper is a simple base class for adapter plugins. It takes
- * a pointer to a "to be wrapped" Vamp plugin on construction, and
- * provides implementations of all the Vamp plugin methods that simply
- * delegate through to the wrapped plugin. A subclass can therefore
- * override only the methods that are meaningful for the particular
- * adapter.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginWrapper : public Plugin
-{
-public:
- virtual ~PluginWrapper();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- InputDomain getInputDomain() const;
-
- unsigned int getVampApiVersion() const;
- std::string getIdentifier() const;
- std::string getName() const;
- std::string getDescription() const;
- std::string getMaker() const;
- int getPluginVersion() const;
- std::string getCopyright() const;
-
- ParameterList getParameterDescriptors() const;
- float getParameter(std::string) const;
- void setParameter(std::string, float);
-
- ProgramList getPrograms() const;
- std::string getCurrentProgram() const;
- void selectProgram(std::string);
-
- size_t getPreferredStepSize() const;
- size_t getPreferredBlockSize() const;
-
- size_t getMinChannelCount() const;
- size_t getMaxChannelCount() const;
-
- OutputList getOutputDescriptors() const;
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
- /**
- * Return a pointer to the plugin wrapper of type WrapperType
- * surrounding this wrapper's plugin, if present.
- *
- * This is useful in situations where a plugin is wrapped by
- * multiple different wrappers (one inside another) and the host
- * wants to call some wrapper-specific function on one of the
- * layers without having to care about the order in which they are
- * wrapped. For example, the plugin returned by
- * PluginLoader::loadPlugin may have more than one wrapper; if the
- * host wanted to query or fine-tune some property of one of them,
- * it would be hard to do so without knowing the order of the
- * wrappers. This function therefore gives direct access to the
- * wrapper of a particular type.
- */
- template <typename WrapperType>
- WrapperType *getWrapper() {
- WrapperType *w = dynamic_cast<WrapperType *>(this);
- if (w) return w;
- PluginWrapper *pw = dynamic_cast<PluginWrapper *>(m_plugin);
- if (pw) return pw->getWrapper<WrapperType>();
- return 0;
- }
-
-protected:
- PluginWrapper(Plugin *plugin); // I take ownership of plugin
- Plugin *m_plugin;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginWrapper.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/RealTime.h b/libs/vamp-sdk/vamp-hostsdk/RealTime.h
deleted file mode 100644
index 8992cb5772..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/RealTime.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_HOSTSDK_REALTIME_H_
-#define _VAMP_HOSTSDK_REALTIME_H_
-
-// Do not include vamp-sdk/RealTime.h directly from host code. Always
-// use this header instead.
-
-#include "hostguard.h"
-#include "vamp-sdk/RealTime.h"
-
-#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/hostguard.h b/libs/vamp-sdk/vamp-hostsdk/hostguard.h
deleted file mode 100644
index 3698d84cd7..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/hostguard.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_HOSTSDK_HOSTGUARD_H_
-#define _VAMP_HOSTSDK_HOSTGUARD_H_
-
-#ifdef _VAMP_IN_PLUGINSDK
-#error You have included headers from both vamp-sdk and vamp-hostsdk in the same source file. Please include only vamp-sdk headers in plugin code, and only vamp-hostsdk headers in host code.
-#else
-
-#define _VAMP_IN_HOSTSDK
-
-#ifdef _VAMP_NO_HOST_NAMESPACE
-#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
-#define _VAMP_SDK_HOSTSPACE_END(h)
-#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
-#define _VAMP_SDK_PLUGSPACE_END(h)
-#else
-#define _VAMP_SDK_HOSTSPACE_BEGIN(h) \
- namespace _VampHost {
-
-#define _VAMP_SDK_HOSTSPACE_END(h) \
- } \
- using namespace _VampHost;
-#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
- namespace _VampHost {
-
-#define _VAMP_SDK_PLUGSPACE_END(h) \
- } \
- using namespace _VampHost;
-#endif
-
-#endif
-
-#endif
-
diff --git a/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h b/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h
deleted file mode 100644
index f32583d549..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_HOSTSDK_SINGLE_INCLUDE_H_
-#define _VAMP_HOSTSDK_SINGLE_INCLUDE_H_
-
-#include "PluginBase.h"
-#include "PluginBufferingAdapter.h"
-#include "PluginChannelAdapter.h"
-#include "Plugin.h"
-#include "PluginHostAdapter.h"
-#include "PluginInputDomainAdapter.h"
-#include "PluginLoader.h"
-#include "PluginSummarisingAdapter.h"
-#include "PluginWrapper.h"
-#include "RealTime.h"
-
-#endif
-
-
diff --git a/libs/vamp-sdk/vamp-sdk/Plugin.h b/libs/vamp-sdk/vamp-sdk/Plugin.h
deleted file mode 100644
index 9513671dde..0000000000
--- a/libs/vamp-sdk/vamp-sdk/Plugin.h
+++ /dev/null
@@ -1,446 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_SDK_PLUGIN_H_
-#define _VAMP_SDK_PLUGIN_H_
-
-#include <string>
-#include <vector>
-#include <map>
-
-#include "PluginBase.h"
-#include "RealTime.h"
-
-#include "plugguard.h"
-_VAMP_SDK_PLUGSPACE_BEGIN(Plugin.h)
-
-namespace Vamp {
-
-/**
- * \class Plugin Plugin.h <vamp-sdk/Plugin.h>
- *
- * Vamp::Plugin is a base class for plugin instance classes
- * that provide feature extraction from audio or related data.
- *
- * In most cases, the input will be audio and the output will be a
- * stream of derived data at a lower sampling resolution than the
- * input.
- *
- * Note that this class inherits several abstract methods from
- * PluginBase. These must be implemented by the subclass.
- *
- *
- * PLUGIN LIFECYCLE
- *
- * Feature extraction plugins are managed differently from real-time
- * plugins (such as VST effects). The main difference is that the
- * parameters for a feature extraction plugin are configured before
- * the plugin is used, and do not change during use.
- *
- * 1. Host constructs the plugin, passing it the input sample rate.
- * The plugin may do basic initialisation, but should not do anything
- * computationally expensive at this point. You must make sure your
- * plugin is cheap to construct, otherwise you'll seriously affect the
- * startup performance of almost all hosts. If you have serious
- * initialisation to do, the proper place is in initialise() (step 5).
- *
- * 2. Host may query the plugin's available outputs.
- *
- * 3. Host queries programs and parameter descriptors, and may set
- * some or all of them. Parameters that are not explicitly set should
- * take their default values as specified in the parameter descriptor.
- * When a program is set, the parameter values may change and the host
- * will re-query them to check.
- *
- * 4. Host queries the preferred step size, block size and number of
- * channels. These may all vary depending on the parameter values.
- * (Note however that you cannot make the number of distinct outputs
- * dependent on parameter values.)
- *
- * 5. Plugin is properly initialised with a call to initialise. This
- * fixes the step size, block size, and number of channels, as well as
- * all of the parameter and program settings. If the values passed in
- * to initialise do not match the plugin's advertised preferred values
- * from step 4, the plugin may refuse to initialise and return false
- * (although if possible it should accept the new values). Any
- * computationally expensive setup code should take place here.
- *
- * 6. Host finally checks the number of values, resolution, extents
- * etc per output (which may vary depending on the number of channels,
- * step size and block size as well as the parameter values).
- *
- * 7. Host will repeatedly call the process method to pass in blocks
- * of input data. This method may return features extracted from that
- * data (if the plugin is causal).
- *
- * 8. Host will call getRemainingFeatures exactly once, after all the
- * input data has been processed. This may return any non-causal or
- * leftover features.
- *
- * 9. At any point after initialise was called, the host may
- * optionally call the reset method and restart processing. (This
- * does not mean it can change the parameters, which are fixed from
- * initialise until destruction.)
- *
- * A plugin does not need to handle the case where setParameter or
- * selectProgram is called after initialise has been called. It's the
- * host's responsibility not to do that. Similarly, the plugin may
- * safely assume that initialise is called no more than once.
- */
-
-class Plugin : public PluginBase
-{
-public:
- virtual ~Plugin() { }
-
- /**
- * Initialise a plugin to prepare it for use with the given number
- * of input channels, step size (window increment, in sample
- * frames) and block size (window size, in sample frames).
- *
- * The input sample rate should have been already specified at
- * construction time.
- *
- * Return true for successful initialisation, false if the number
- * of input channels, step size and/or block size cannot be
- * supported.
- */
- virtual bool initialise(size_t inputChannels,
- size_t stepSize,
- size_t blockSize) = 0;
-
- /**
- * Reset the plugin after use, to prepare it for another clean
- * run. Not called for the first initialisation (i.e. initialise
- * must also do a reset).
- */
- virtual void reset() = 0;
-
- enum InputDomain { TimeDomain, FrequencyDomain };
-
- /**
- * Get the plugin's required input domain.
- *
- * If this is TimeDomain, the samples provided to the process()
- * function (below) will be in the time domain, as for a
- * traditional audio processing plugin.
- *
- * If this is FrequencyDomain, the host will carry out a windowed
- * FFT of size equal to the negotiated block size on the data
- * before passing the frequency bin data in to process(). The
- * input data for the FFT will be rotated so as to place the
- * origin in the centre of the block.
- * The plugin does not get to choose the window type -- the host
- * will either let the user do so, or will use a Hanning window.
- */
- virtual InputDomain getInputDomain() const = 0;
-
- /**
- * Get the preferred block size (window size -- the number of
- * sample frames passed in each block to the process() function).
- * This should be called before initialise().
- *
- * A plugin that can handle any block size may return 0. The
- * final block size will be set in the initialise() call.
- */
- virtual size_t getPreferredBlockSize() const { return 0; }
-
- /**
- * Get the preferred step size (window increment -- the distance
- * in sample frames between the start frames of consecutive blocks
- * passed to the process() function) for the plugin. This should
- * be called before initialise().
- *
- * A plugin may return 0 if it has no particular interest in the
- * step size. In this case, the host should make the step size
- * equal to the block size if the plugin is accepting input in the
- * time domain. If the plugin is accepting input in the frequency
- * domain, the host may use any step size. The final step size
- * will be set in the initialise() call.
- */
- virtual size_t getPreferredStepSize() const { return 0; }
-
- /**
- * Get the minimum supported number of input channels.
- */
- virtual size_t getMinChannelCount() const { return 1; }
-
- /**
- * Get the maximum supported number of input channels.
- */
- virtual size_t getMaxChannelCount() const { return 1; }
-
- struct OutputDescriptor
- {
- /**
- * The name of the output, in computer-usable form. Should be
- * reasonably short and without whitespace or punctuation, using
- * the characters [a-zA-Z0-9_-] only.
- * Example: "zero_crossing_count"
- */
- std::string identifier;
-
- /**
- * The human-readable name of the output.
- * Example: "Zero Crossing Counts"
- */
- std::string name;
-
- /**
- * A human-readable short text describing the output. May be
- * empty if the name has said it all already.
- * Example: "The number of zero crossing points per processing block"
- */
- std::string description;
-
- /**
- * The unit of the output, in human-readable form.
- */
- std::string unit;
-
- /**
- * True if the output has the same number of values per sample
- * for every output sample. Outputs for which this is false
- * are unlikely to be very useful in a general-purpose host.
- */
- bool hasFixedBinCount;
-
- /**
- * The number of values per result of the output. Undefined
- * if hasFixedBinCount is false. If this is zero, the output
- * is point data (i.e. only the time of each output is of
- * interest, the value list will be empty).
- */
- size_t binCount;
-
- /**
- * The (human-readable) names of each of the bins, if
- * appropriate. This is always optional.
- */
- std::vector<std::string> binNames;
-
- /**
- * True if the results in each output bin fall within a fixed
- * numeric range (minimum and maximum values). Undefined if
- * binCount is zero.
- */
- bool hasKnownExtents;
-
- /**
- * Minimum value of the results in the output. Undefined if
- * hasKnownExtents is false or binCount is zero.
- */
- float minValue;
-
- /**
- * Maximum value of the results in the output. Undefined if
- * hasKnownExtents is false or binCount is zero.
- */
- float maxValue;
-
- /**
- * True if the output values are quantized to a particular
- * resolution. Undefined if binCount is zero.
- */
- bool isQuantized;
-
- /**
- * Quantization resolution of the output values (e.g. 1.0 if
- * they are all integers). Undefined if isQuantized is false
- * or binCount is zero.
- */
- float quantizeStep;
-
- enum SampleType {
-
- /// Results from each process() align with that call's block start
- OneSamplePerStep,
-
- /// Results are evenly spaced in time (sampleRate specified below)
- FixedSampleRate,
-
- /// Results are unevenly spaced and have individual timestamps
- VariableSampleRate
- };
-
- /**
- * Positioning in time of the output results.
- */
- SampleType sampleType;
-
- /**
- * Sample rate of the output results, as samples per second.
- * Undefined if sampleType is OneSamplePerStep.
- *
- * If sampleType is VariableSampleRate and this value is
- * non-zero, then it may be used to calculate a resolution for
- * the output (i.e. the "duration" of each sample, in time,
- * will be 1/sampleRate seconds). It's recommended to set
- * this to zero if that behaviour is not desired.
- */
- float sampleRate;
-
- /**
- * True if the returned results for this output are known to
- * have a duration field.
- */
- bool hasDuration;
-
- OutputDescriptor() : // defaults for mandatory non-class-type members
- hasFixedBinCount(false), hasKnownExtents(false), isQuantized(false),
- sampleType(OneSamplePerStep), hasDuration(false) { }
- };
-
- typedef std::vector<OutputDescriptor> OutputList;
-
- /**
- * Get the outputs of this plugin. An output's index in this list
- * is used as its numeric index when looking it up in the
- * FeatureSet returned from the process() call.
- */
- virtual OutputList getOutputDescriptors() const = 0;
-
- struct Feature
- {
- /**
- * True if an output feature has its own timestamp. This is
- * mandatory if the output has VariableSampleRate, optional if
- * the output has FixedSampleRate, and unused if the output
- * has OneSamplePerStep.
- */
- bool hasTimestamp;
-
- /**
- * Timestamp of the output feature. This is mandatory if the
- * output has VariableSampleRate or if the output has
- * FixedSampleRate and hasTimestamp is true, and unused
- * otherwise.
- */
- RealTime timestamp;
-
- /**
- * True if an output feature has a specified duration. This
- * is optional if the output has VariableSampleRate or
- * FixedSampleRate, and and unused if the output has
- * OneSamplePerStep.
- */
- bool hasDuration;
-
- /**
- * Duration of the output feature. This is mandatory if the
- * output has VariableSampleRate or FixedSampleRate and
- * hasDuration is true, and unused otherwise.
- */
- RealTime duration;
-
- /**
- * Results for a single sample of this feature. If the output
- * hasFixedBinCount, there must be the same number of values
- * as the output's binCount count.
- */
- std::vector<float> values;
-
- /**
- * Label for the sample of this feature.
- */
- std::string label;
-
- Feature() : // defaults for mandatory non-class-type members
- hasTimestamp(false), hasDuration(false) { }
- };
-
- typedef std::vector<Feature> FeatureList;
-
- typedef std::map<int, FeatureList> FeatureSet; // key is output no
-
- /**
- * Process a single block of input data.
- *
- * If the plugin's inputDomain is TimeDomain, inputBuffers will
- * point to one array of floats per input channel, and each of
- * these arrays will contain blockSize consecutive audio samples
- * (the host will zero-pad as necessary). The timestamp in this
- * case will be the real time in seconds of the start of the
- * supplied block of samples.
- *
- * If the plugin's inputDomain is FrequencyDomain, inputBuffers
- * will point to one array of floats per input channel, and each
- * of these arrays will contain blockSize/2+1 consecutive pairs of
- * real and imaginary component floats corresponding to bins
- * 0..(blockSize/2) of the FFT output. That is, bin 0 (the first
- * pair of floats) contains the DC output, up to bin blockSize/2
- * which contains the Nyquist-frequency output. There will
- * therefore be blockSize+2 floats per channel in total. The
- * timestamp will be the real time in seconds of the centre of the
- * FFT input window (i.e. the very first block passed to process
- * might contain the FFT of half a block of zero samples and the
- * first half-block of the actual data, with a timestamp of zero).
- *
- * Return any features that have become available after this
- * process call. (These do not necessarily have to fall within
- * the process block, except for OneSamplePerStep outputs.)
- */
- virtual FeatureSet process(const float *const *inputBuffers,
- RealTime timestamp) = 0;
-
- /**
- * After all blocks have been processed, calculate and return any
- * remaining features derived from the complete input.
- */
- virtual FeatureSet getRemainingFeatures() = 0;
-
- /**
- * Used to distinguish between Vamp::Plugin and other potential
- * sibling subclasses of PluginBase. Do not reimplement this
- * function in your subclass.
- */
- virtual std::string getType() const { return "Feature Extraction Plugin"; }
-
-protected:
- Plugin(float inputSampleRate) :
- m_inputSampleRate(inputSampleRate) { }
-
- float m_inputSampleRate;
-};
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(Plugin.h)
-
-#endif
-
-
-
diff --git a/libs/vamp-sdk/vamp-sdk/PluginAdapter.h b/libs/vamp-sdk/vamp-sdk/PluginAdapter.h
deleted file mode 100644
index e27f1638c0..0000000000
--- a/libs/vamp-sdk/vamp-sdk/PluginAdapter.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_ADAPTER_H_
-#define _VAMP_PLUGIN_ADAPTER_H_
-
-#include <map>
-#include "vamp/vamp.h"
-
-#include "Plugin.h"
-
-#include "plugguard.h"
-_VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.h)
-
-namespace Vamp {
-
-/**
- * \class PluginAdapterBase PluginAdapter.h <vamp-sdk/PluginAdapter.h>
- *
- * PluginAdapter and PluginAdapterBase provide a wrapper class that a
- * plugin library can use to make its C++ Vamp::Plugin objects
- * available through the Vamp C API.
- *
- * Almost all Vamp plugin libraries will want to make use of this. To
- * do so, all they need to do is declare a PluginAdapter<T> for each
- * plugin class T in their library. It's very simple, and you need to
- * know absolutely nothing about how it works in order to use it.
- * Just cut and paste from an existing plugin's discovery function.
- * \see vampGetPluginDescriptor
- */
-
-class PluginAdapterBase
-{
-public:
- virtual ~PluginAdapterBase();
-
- /**
- * Return a VampPluginDescriptor describing the plugin that is
- * wrapped by this adapter.
- */
- const VampPluginDescriptor *getDescriptor();
-
-protected:
- PluginAdapterBase();
-
- virtual Plugin *createPlugin(float inputSampleRate) = 0;
-
- class Impl;
- Impl *m_impl;
-};
-
-/**
- * \class PluginAdapter PluginAdapter.h <vamp-sdk/PluginAdapter.h>
- *
- * PluginAdapter turns a PluginAdapterBase into a specific wrapper for
- * a particular plugin implementation.
- *
- * See PluginAdapterBase.
- */
-
-template <typename P>
-class PluginAdapter : public PluginAdapterBase
-{
-public:
- PluginAdapter() : PluginAdapterBase() { }
- virtual ~PluginAdapter() { }
-
-protected:
- Plugin *createPlugin(float inputSampleRate) {
- P *p = new P(inputSampleRate);
- Plugin *plugin = dynamic_cast<Plugin *>(p);
- if (!plugin) {
- std::cerr << "ERROR: PluginAdapter::createPlugin: "
- << "Template type is not a plugin!"
- << std::endl;
- delete p;
- return 0;
- }
- return plugin;
- }
-};
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(PluginAdapter.h)
-
-#endif
-
diff --git a/libs/vamp-sdk/vamp-sdk/PluginBase.h b/libs/vamp-sdk/vamp-sdk/PluginBase.h
deleted file mode 100644
index db8987ef8f..0000000000
--- a/libs/vamp-sdk/vamp-sdk/PluginBase.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_SDK_PLUGIN_BASE_H_
-#define _VAMP_SDK_PLUGIN_BASE_H_
-
-#include <string>
-#include <vector>
-
-#define VAMP_SDK_VERSION "3.5"
-#define VAMP_SDK_MAJOR_VERSION 2
-#define VAMP_SDK_MINOR_VERSION 2
-
-#include "plugguard.h"
-_VAMP_SDK_PLUGSPACE_BEGIN(PluginBase.h)
-
-namespace Vamp {
-
-/**
- * A base class for plugins with optional configurable parameters,
- * programs, etc. The Vamp::Plugin is derived from this, and
- * individual Vamp plugins should derive from that.
- *
- * This class does not provide the necessary interfaces to instantiate
- * or run a plugin. It only specifies an interface for retrieving
- * those controls that the host may wish to show to the user for
- * editing. It could meaningfully be subclassed by real-time plugins
- * or other sorts of plugin as well as Vamp plugins.
- */
-
-class PluginBase
-{
-public:
- virtual ~PluginBase() { }
-
- /**
- * Get the Vamp API compatibility level of the plugin.
- */
- virtual unsigned int getVampApiVersion() const { return 2; }
-
- /**
- * Get the computer-usable name of the plugin. This should be
- * reasonably short and contain no whitespace or punctuation
- * characters. It may only contain the characters [a-zA-Z0-9_-].
- * This is the authoritative way for a program to identify a
- * plugin within a given library.
- *
- * This text may be visible to the user, but it should not be the
- * main text used to identify a plugin to the user (that will be
- * the name, below).
- *
- * Example: "zero_crossings"
- */
- virtual std::string getIdentifier() const = 0;
-
- /**
- * Get a human-readable name or title of the plugin. This
- * should be brief and self-contained, as it may be used to
- * identify the plugin to the user in isolation (i.e. without also
- * showing the plugin's "identifier").
- *
- * Example: "Zero Crossings"
- */
- virtual std::string getName() const = 0;
-
- /**
- * Get a human-readable description for the plugin, typically
- * a line of text that may optionally be displayed in addition
- * to the plugin's "name". May be empty if the name has said
- * it all already.
- *
- * Example: "Detect and count zero crossing points"
- */
- virtual std::string getDescription() const = 0;
-
- /**
- * Get the name of the author or vendor of the plugin in
- * human-readable form. This should be a short identifying text,
- * as it may be used to label plugins from the same source in a
- * menu or similar.
- */
- virtual std::string getMaker() const = 0;
-
- /**
- * Get the copyright statement or licensing summary for the
- * plugin. This can be an informative text, without the same
- * presentation constraints as mentioned for getMaker above.
- */
- virtual std::string getCopyright() const = 0;
-
- /**
- * Get the version number of the plugin.
- */
- virtual int getPluginVersion() const = 0;
-
-
- struct ParameterDescriptor
- {
- /**
- * The name of the parameter, in computer-usable form. Should
- * be reasonably short, and may only contain the characters
- * [a-zA-Z0-9_-].
- */
- std::string identifier;
-
- /**
- * The human-readable name of the parameter.
- */
- std::string name;
-
- /**
- * A human-readable short text describing the parameter. May be
- * empty if the name has said it all already.
- */
- std::string description;
-
- /**
- * The unit of the parameter, in human-readable form.
- */
- std::string unit;
-
- /**
- * The minimum value of the parameter.
- */
- float minValue;
-
- /**
- * The maximum value of the parameter.
- */
- float maxValue;
-
- /**
- * The default value of the parameter. The plugin should
- * ensure that parameters have this value on initialisation
- * (i.e. the host is not required to explicitly set parameters
- * if it wants to use their default values).
- */
- float defaultValue;
-
- /**
- * True if the parameter values are quantized to a particular
- * resolution.
- */
- bool isQuantized;
-
- /**
- * Quantization resolution of the parameter values (e.g. 1.0
- * if they are all integers). Undefined if isQuantized is
- * false.
- */
- float quantizeStep;
-
- /**
- * Names for the quantized values. If isQuantized is true,
- * this may either be empty or contain one string for each of
- * the quantize steps from minValue up to maxValue inclusive.
- * Undefined if isQuantized is false.
- *
- * If these names are provided, they should be shown to the
- * user in preference to the values themselves. The user may
- * never see the actual numeric values unless they are also
- * encoded in the names.
- */
- std::vector<std::string> valueNames;
-
- ParameterDescriptor() : // the defaults are invalid: you must set them
- minValue(0), maxValue(0), defaultValue(0), isQuantized(false) { }
- };
-
- typedef std::vector<ParameterDescriptor> ParameterList;
-
- /**
- * Get the controllable parameters of this plugin.
- */
- virtual ParameterList getParameterDescriptors() const {
- return ParameterList();
- }
-
- /**
- * Get the value of a named parameter. The argument is the identifier
- * field from that parameter's descriptor.
- */
- virtual float getParameter(std::string) const { return 0.0; }
-
- /**
- * Set a named parameter. The first argument is the identifier field
- * from that parameter's descriptor.
- */
- virtual void setParameter(std::string, float) { }
-
-
- typedef std::vector<std::string> ProgramList;
-
- /**
- * Get the program settings available in this plugin. A program
- * is a named shorthand for a set of parameter values; changing
- * the program may cause the plugin to alter the values of its
- * published parameters (and/or non-public internal processing
- * parameters). The host should re-read the plugin's parameter
- * values after setting a new program.
- *
- * The programs must have unique names.
- */
- virtual ProgramList getPrograms() const { return ProgramList(); }
-
- /**
- * Get the current program.
- */
- virtual std::string getCurrentProgram() const { return ""; }
-
- /**
- * Select a program. (If the given program name is not one of the
- * available programs, do nothing.)
- */
- virtual void selectProgram(std::string) { }
-
- /**
- * Get the type of plugin. This is to be implemented by the
- * immediate subclass, not by actual plugins. Do not attempt to
- * implement this in plugin code.
- */
- virtual std::string getType() const = 0;
-};
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(PluginBase.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/RealTime.h b/libs/vamp-sdk/vamp-sdk/RealTime.h
deleted file mode 100644
index 297c4ad524..0000000000
--- a/libs/vamp-sdk/vamp-sdk/RealTime.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-/*
- This is a modified version of a source file from the
- Rosegarden MIDI and audio sequencer and notation editor.
- This file copyright 2000-2006 Chris Cannam.
- Relicensed by the author as detailed above.
-*/
-
-#ifndef _VAMP_REAL_TIME_H_
-#define _VAMP_REAL_TIME_H_
-
-#include <iostream>
-#include <string>
-
-#ifndef _WIN32
-struct timeval;
-#endif
-
-#include "plugguard.h"
-_VAMP_SDK_PLUGSPACE_BEGIN(RealTime.h)
-
-namespace Vamp {
-
-/**
- * \class RealTime RealTime.h <vamp-sdk/RealTime.h>
- *
- * RealTime represents time values to nanosecond precision
- * with accurate arithmetic and frame-rate conversion functions.
- */
-
-struct RealTime
-{
- int sec;
- int nsec;
-
- int usec() const { return nsec / 1000; }
- int msec() const { return nsec / 1000000; }
-
- RealTime(): sec(0), nsec(0) {}
- RealTime(int s, int n);
-
- RealTime(const RealTime &r) :
- sec(r.sec), nsec(r.nsec) { }
-
- static RealTime fromSeconds(double sec);
- static RealTime fromMilliseconds(int msec);
-
-#ifndef _WIN32
- static RealTime fromTimeval(const struct timeval &);
-#endif
-
- RealTime &operator=(const RealTime &r) {
- sec = r.sec; nsec = r.nsec; return *this;
- }
-
- RealTime operator+(const RealTime &r) const {
- return RealTime(sec + r.sec, nsec + r.nsec);
- }
- RealTime operator-(const RealTime &r) const {
- return RealTime(sec - r.sec, nsec - r.nsec);
- }
- RealTime operator-() const {
- return RealTime(-sec, -nsec);
- }
-
- bool operator <(const RealTime &r) const {
- if (sec == r.sec) return nsec < r.nsec;
- else return sec < r.sec;
- }
-
- bool operator >(const RealTime &r) const {
- if (sec == r.sec) return nsec > r.nsec;
- else return sec > r.sec;
- }
-
- bool operator==(const RealTime &r) const {
- return (sec == r.sec && nsec == r.nsec);
- }
-
- bool operator!=(const RealTime &r) const {
- return !(r == *this);
- }
-
- bool operator>=(const RealTime &r) const {
- if (sec == r.sec) return nsec >= r.nsec;
- else return sec >= r.sec;
- }
-
- bool operator<=(const RealTime &r) const {
- if (sec == r.sec) return nsec <= r.nsec;
- else return sec <= r.sec;
- }
-
- RealTime operator/(int d) const;
-
- /**
- * Return the ratio of two times.
- */
- double operator/(const RealTime &r) const;
-
- /**
- * Return a human-readable debug-type string to full precision
- * (probably not a format to show to a user directly)
- */
- std::string toString() const;
-
- /**
- * Return a user-readable string to the nearest millisecond
- * in a form like HH:MM:SS.mmm
- */
- std::string toText(bool fixedDp = false) const;
-
- /**
- * Convert a RealTime into a sample frame at the given sample rate.
- */
- static long realTime2Frame(const RealTime &r, unsigned int sampleRate);
-
- /**
- * Convert a sample frame at the given sample rate into a RealTime.
- */
- static RealTime frame2RealTime(long frame, unsigned int sampleRate);
-
- static const RealTime zeroTime;
-};
-
-std::ostream &operator<<(std::ostream &out, const RealTime &rt);
-
-}
-
-_VAMP_SDK_PLUGSPACE_END(RealTime.h)
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/plugguard.h b/libs/vamp-sdk/vamp-sdk/plugguard.h
deleted file mode 100644
index 311dd488e0..0000000000
--- a/libs/vamp-sdk/vamp-sdk/plugguard.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_SDK_PLUGGUARD_H_
-#define _VAMP_SDK_PLUGGUARD_H_
-
-/**
- * Normal usage should be:
- *
- * - Plugins include vamp-sdk/Plugin.h or vamp-sdk/PluginBase.h.
- * These files include this header, which specifies an appropriate
- * namespace for the plugin classes to avoid any risk of conflict
- * with non-plugin class implementations in the host on load.
- *
- * - Hosts include vamp-hostsdk/Plugin.h, vamp-hostsdk/PluginBase.h,
- * vamp-hostsdk/PluginHostAdapter, vamp-hostsdk/PluginLoader.h etc.
- * These files include vamp-hostsdk/hostguard.h, which makes a note
- * that we are in a host. A file such as vamp-hostsdk/Plugin.h
- * then simply includes vamp-sdk/Plugin.h, and this guard header
- * takes notice of the fact that it has been included from a host
- * and leaves the plugin namespace unset.
- *
- * Problems will occur when a host includes files directly from the
- * vamp-sdk directory. There are two reasons this might happen:
- * mistake, perhaps owing to ignorance of the fact that this isn't
- * allowed (particularly since it was the normal mechanism in v1 of
- * the SDK); and a wish to incorporate plugin code directly into the
- * host rather than having to load it.
- *
- * What if the host does include a vamp-sdk header by mistake? We can
- * catch it if it's included before something from vamp-hostsdk. If
- * it's included after something from vamp-hostsdk, it will work OK
- * anyway. The remaining problem case is where nothing from
- * vamp-hostsdk is included in the same file. We can't catch that.
- */
-
-#ifndef _VAMP_IN_HOSTSDK
-
-#define _VAMP_IN_PLUGINSDK 1
-
-#ifdef _VAMP_NO_PLUGIN_NAMESPACE
-#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
-#define _VAMP_SDK_PLUGSPACE_END(h)
-#else
-#ifdef _VAMP_PLUGIN_IN_HOST_NAMESPACE
-#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
- namespace _VampHost {
-
-#define _VAMP_SDK_PLUGSPACE_END(h) \
- } \
- using namespace _VampHost;
-#else
-#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
- namespace _VampPlugin {
-
-#define _VAMP_SDK_PLUGSPACE_END(h) \
- } \
- using namespace _VampPlugin;
-#endif
-#endif
-
-#endif
-
-#endif
-
diff --git a/libs/vamp-sdk/vamp-sdk/vamp-sdk.h b/libs/vamp-sdk/vamp-sdk/vamp-sdk.h
deleted file mode 100644
index 3ac2f8bc05..0000000000
--- a/libs/vamp-sdk/vamp-sdk/vamp-sdk.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_SDK_SINGLE_INCLUDE_H_
-#define _VAMP_SDK_SINGLE_INCLUDE_H_
-
-#include "PluginBase.h"
-#include "Plugin.h"
-#include "RealTime.h"
-
-#endif
-
-
diff --git a/libs/vamp-sdk/vamp/vamp.h b/libs/vamp-sdk/vamp/vamp.h
deleted file mode 100644
index 08a83ee6ac..0000000000
--- a/libs/vamp-sdk/vamp/vamp.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006 Chris Cannam.
-
- 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 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.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef VAMP_HEADER_INCLUDED
-#define VAMP_HEADER_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Plugin API version. This is incremented when a change is made that
- * changes the binary layout of the descriptor records. When this
- * happens, there should be a mechanism for retaining compatibility
- * with older hosts and/or plugins.
- *
- * See also the vampApiVersion field in the plugin descriptor, and the
- * hostApiVersion argument to the vampGetPluginDescriptor function.
- */
-#define VAMP_API_VERSION 2
-
-/**
- * C language API for Vamp plugins.
- *
- * This is the formal plugin API for Vamp. Plugin authors may prefer
- * to use the C++ classes provided in the Vamp plugin SDK, instead of
- * using this API directly. There is an adapter class provided that
- * makes C++ plugins available using this C API with relatively little
- * work, and the C++ headers are more thoroughly documented.
- *
- * IMPORTANT: The comments in this file summarise the purpose of each
- * of the declared fields and functions, but do not provide a complete
- * guide to their permitted values and expected usage. Please refer
- * to the C++ headers in the Vamp plugin SDK for further details and
- * plugin lifecycle documentation.
- */
-
-typedef struct _VampParameterDescriptor
-{
- /** Computer-usable name of the parameter. Must not change. [a-zA-Z0-9_] */
- const char *identifier;
-
- /** Human-readable name of the parameter. May be translatable. */
- const char *name;
-
- /** Human-readable short text about the parameter. May be translatable. */
- const char *description;
-
- /** Human-readable unit of the parameter. */
- const char *unit;
-
- /** Minimum value. */
- float minValue;
-
- /** Maximum value. */
- float maxValue;
-
- /** Default value. Plugin is responsible for setting this on initialise. */
- float defaultValue;
-
- /** 1 if parameter values are quantized to a particular resolution. */
- int isQuantized;
-
- /** Quantization resolution, if isQuantized. */
- float quantizeStep;
-
- /** Human-readable names of the values, if isQuantized. May be NULL. */
- const char **valueNames;
-
-} VampParameterDescriptor;
-
-typedef enum
-{
- /** Each process call returns results aligned with call's block start. */
- vampOneSamplePerStep,
-
- /** Returned results are evenly spaced at samplerate specified below. */
- vampFixedSampleRate,
-
- /** Returned results have their own individual timestamps. */
- vampVariableSampleRate
-
-} VampSampleType;
-
-typedef struct _VampOutputDescriptor
-{
- /** Computer-usable name of the output. Must not change. [a-zA-Z0-9_] */
- const char *identifier;
-
- /** Human-readable name of the output. May be translatable. */
- const char *name;
-
- /** Human-readable short text about the output. May be translatable. */
- const char *description;
-
- /** Human-readable name of the unit of the output. */
- const char *unit;
-
- /** 1 if output has equal number of values for each returned result. */
- int hasFixedBinCount;
-
- /** Number of values per result, if hasFixedBinCount. */
- unsigned int binCount;
-
- /** Names of returned value bins, if hasFixedBinCount. May be NULL. */
- const char **binNames;
-
- /** 1 if each returned value falls within the same fixed min/max range. */
- int hasKnownExtents;
-
- /** Minimum value for a returned result in any bin, if hasKnownExtents. */
- float minValue;
-
- /** Maximum value for a returned result in any bin, if hasKnownExtents. */
- float maxValue;
-
- /** 1 if returned results are quantized to a particular resolution. */
- int isQuantized;
-
- /** Quantization resolution for returned results, if isQuantized. */
- float quantizeStep;
-
- /** Time positioning method for returned results (see VampSampleType). */
- VampSampleType sampleType;
-
- /** Sample rate of returned results, if sampleType is vampFixedSampleRate.
- "Resolution" of result, if sampleType is vampVariableSampleRate. */
- float sampleRate;
-
- /** 1 if the returned results for this output are known to have a
- duration field.
-
- This field is new in Vamp API version 2; it must not be tested
- for plugins that report an older API version in their plugin
- descriptor.
- */
- int hasDuration;
-
-} VampOutputDescriptor;
-
-typedef struct _VampFeature
-{
- /** 1 if the feature has a timestamp (i.e. if vampVariableSampleRate). */
- int hasTimestamp;
-
- /** Seconds component of timestamp. */
- int sec;
-
- /** Nanoseconds component of timestamp. */
- int nsec;
-
- /** Number of values. Must be binCount if hasFixedBinCount. */
- unsigned int valueCount;
-
- /** Values for this returned sample. */
- float *values;
-
- /** Label for this returned sample. May be NULL. */
- char *label;
-
-} VampFeature;
-
-typedef struct _VampFeatureV2
-{
- /** 1 if the feature has a duration. */
- int hasDuration;
-
- /** Seconds component of duratiion. */
- int durationSec;
-
- /** Nanoseconds component of duration. */
- int durationNsec;
-
-} VampFeatureV2;
-
-typedef union _VampFeatureUnion
-{
- // sizeof(featureV1) >= sizeof(featureV2) for backward compatibility
- VampFeature v1;
- VampFeatureV2 v2;
-
-} VampFeatureUnion;
-
-typedef struct _VampFeatureList
-{
- /** Number of features in this feature list. */
- unsigned int featureCount;
-
- /** Features in this feature list. May be NULL if featureCount is
- zero.
-
- If present, this array must contain featureCount feature
- structures for a Vamp API version 1 plugin, or 2*featureCount
- feature unions for a Vamp API version 2 plugin.
-
- The features returned by an API version 2 plugin must consist
- of the same feature structures as in API version 1 for the
- first featureCount array elements, followed by featureCount
- unions that contain VampFeatureV2 structures (or NULL pointers
- if no V2 feature structures are present).
- */
- VampFeatureUnion *features;
-
-} VampFeatureList;
-
-typedef enum
-{
- vampTimeDomain,
- vampFrequencyDomain
-
-} VampInputDomain;
-
-typedef void *VampPluginHandle;
-
-typedef struct _VampPluginDescriptor
-{
- /** API version with which this descriptor is compatible. */
- unsigned int vampApiVersion;
-
- /** Computer-usable name of the plugin. Must not change. [a-zA-Z0-9_] */
- const char *identifier;
-
- /** Human-readable name of the plugin. May be translatable. */
- const char *name;
-
- /** Human-readable short text about the plugin. May be translatable. */
- const char *description;
-
- /** Human-readable name of plugin's author or vendor. */
- const char *maker;
-
- /** Version number of the plugin. */
- int pluginVersion;
-
- /** Human-readable summary of copyright or licensing for plugin. */
- const char *copyright;
-
- /** Number of parameter inputs. */
- unsigned int parameterCount;
-
- /** Fixed descriptors for parameter inputs. */
- const VampParameterDescriptor **parameters;
-
- /** Number of programs. */
- unsigned int programCount;
-
- /** Fixed names for programs. */
- const char **programs;
-
- /** Preferred input domain for audio input (time or frequency). */
- VampInputDomain inputDomain;
-
- /** Create and return a new instance of this plugin. */
- VampPluginHandle (*instantiate)(const struct _VampPluginDescriptor *,
- float inputSampleRate);
-
- /** Destroy an instance of this plugin. */
- void (*cleanup)(VampPluginHandle);
-
- /** Initialise an instance following parameter configuration. */
- int (*initialise)(VampPluginHandle,
- unsigned int inputChannels,
- unsigned int stepSize,
- unsigned int blockSize);
-
- /** Reset an instance, ready to use again on new input data. */
- void (*reset)(VampPluginHandle);
-
- /** Get a parameter value. */
- float (*getParameter)(VampPluginHandle, int);
-
- /** Set a parameter value. May only be called before initialise. */
- void (*setParameter)(VampPluginHandle, int, float);
-
- /** Get the current program (if programCount > 0). */
- unsigned int (*getCurrentProgram)(VampPluginHandle);
-
- /** Set the current program. May only be called before initialise. */
- void (*selectProgram)(VampPluginHandle, unsigned int);
-
- /** Get the plugin's preferred processing window increment in samples. */
- unsigned int (*getPreferredStepSize)(VampPluginHandle);
-
- /** Get the plugin's preferred processing window size in samples. */
- unsigned int (*getPreferredBlockSize)(VampPluginHandle);
-
- /** Get the minimum number of input channels this plugin can handle. */
- unsigned int (*getMinChannelCount)(VampPluginHandle);
-
- /** Get the maximum number of input channels this plugin can handle. */
- unsigned int (*getMaxChannelCount)(VampPluginHandle);
-
- /** Get the number of feature outputs (distinct sets of results). */
- unsigned int (*getOutputCount)(VampPluginHandle);
-
- /** Get a descriptor for a given feature output. Returned pointer
- is valid only until next call to getOutputDescriptor for this
- handle, or releaseOutputDescriptor for this descriptor. Host
- must call releaseOutputDescriptor after use. */
- VampOutputDescriptor *(*getOutputDescriptor)(VampPluginHandle,
- unsigned int);
-
- /** Destroy a descriptor for a feature output. */
- void (*releaseOutputDescriptor)(VampOutputDescriptor *);
-
- /** Process an input block and return a set of features. Returned
- pointer is valid only until next call to process,
- getRemainingFeatures, or cleanup for this handle, or
- releaseFeatureSet for this feature set. Host must call
- releaseFeatureSet after use. */
- VampFeatureList *(*process)(VampPluginHandle,
- const float *const *inputBuffers,
- int sec,
- int nsec);
-
- /** Return any remaining features at the end of processing. */
- VampFeatureList *(*getRemainingFeatures)(VampPluginHandle);
-
- /** Release a feature set returned from process or getRemainingFeatures. */
- void (*releaseFeatureSet)(VampFeatureList *);
-
-} VampPluginDescriptor;
-
-
-/** Get the descriptor for a given plugin index in this library.
- Return NULL if the index is outside the range of valid indices for
- this plugin library.
-
- The hostApiVersion argument tells the library code the highest
- Vamp API version supported by the host. The function should
- return a plugin descriptor compatible with the highest API version
- supported by the library that is no higher than that supported by
- the host. Provided the descriptor has the correct vampApiVersion
- field for its actual compatibility level, the host should be able
- to do the right thing with it: use it if possible, discard it
- otherwise.
-
- This is the only symbol that a Vamp plugin actually needs to
- export from its shared object; all others can be hidden. See the
- accompanying documentation for notes on how to achieve this with
- certain compilers.
-*/
-const VampPluginDescriptor *vampGetPluginDescriptor
- (unsigned int hostApiVersion, unsigned int index);
-
-
-/** Function pointer type for vampGetPluginDescriptor. */
-typedef const VampPluginDescriptor *(*VampGetPluginDescriptorFunction)
- (unsigned int, unsigned int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libs/vamp-sdk/vamp/vamp.pc.in b/libs/vamp-sdk/vamp/vamp.pc.in
deleted file mode 100644
index 82d4decd34..0000000000
--- a/libs/vamp-sdk/vamp/vamp.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=%PREFIX%
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: vamp
-Version: 1.0
-Description: An API for audio analysis and feature extraction plugins
-Libs:
-Cflags: -I${includedir}
diff --git a/libs/vamp-sdk/wscript b/libs/vamp-sdk/wscript
deleted file mode 100644
index aa4dfdc1da..0000000000
--- a/libs/vamp-sdk/wscript
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-from waflib.extras import autowaf as autowaf
-import os
-
-# Version of this package (even if built as a child)
-LIBVAMP_VERSION = '0.0.0'
-
-# Library version (UNIX style major, minor, micro)
-# major increment <=> incompatible changes
-# minor increment <=> compatible changes (additions)
-# micro increment <=> no interface changes
-LIBVAMP_LIB_VERSION = '0.0.0'
-
-# Variables for 'waf dist'
-APPNAME = 'libvamp'
-VERSION = LIBVAMP_VERSION
-
-# Mandatory variables
-top = '.'
-out = 'build'
-
-def options(opt):
- autowaf.set_options(opt)
-
-def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
- autowaf.check_pkg(conf, 'fftw3', uselib_store='FFTW3', mandatory=True)
- autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
- conf.env.append_value('CXXFLAGS', '-DHAVE_FFTW3')
-
-def build(bld):
- # Host Library
- obj = bld(features = 'cxx cxxshlib')
- obj.source = '''
- src/vamp-hostsdk/PluginHostAdapter.cpp
- src/vamp-hostsdk/PluginBufferingAdapter.cpp
- src/vamp-hostsdk/PluginChannelAdapter.cpp
- src/vamp-hostsdk/PluginInputDomainAdapter.cpp
- src/vamp-hostsdk/PluginLoader.cpp
- src/vamp-hostsdk/PluginWrapper.cpp
- src/vamp-hostsdk/RealTime.cpp
- '''
- obj.export_includes = ['.']
- obj.includes = ['.']
- obj.name = 'libvamphost'
- obj.target = 'vamphost'
- obj.uselib = 'FFTW3 FFTW3F'
- obj.vnum = LIBVAMP_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
-
- # Plugin Library
- obj = bld(features = 'cxx cxxshlib')
- obj.source = '''
- src/vamp-sdk/PluginAdapter.cpp
- src/vamp-sdk/RealTime.cpp
- '''
- obj.export_includes = ['.']
- obj.includes = ['.']
- obj.name = 'libvampplugin'
- obj.target = 'vampplugin'
- obj.uselib = 'FFTW3 FFTW3F'
- obj.vnum = LIBVAMP_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
-
-def shutdown():
- autowaf.shutdown()