[Cvs-annodex] commit (annodex): AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/ +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Build +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Configure.cygwin +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Makefile.am +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/configure.ac +AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/nsISupportsUtils.h +AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/ +AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Build +AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Configure.linux +AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Makefile.am +AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/ +AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Build +AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Configure.darwin +AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.moz.am +AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.src.am +AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ +AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ogg.c

cchiu nobody at lists.annodex.net
Thu Jun 1 15:00:57 UTC 2006


Update of /var/local/lib/svn/annodex (new revision 2317)

Added files:
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Build
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Configure.cygwin
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Makefile.am
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/configure.ac
   AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/nsISupportsUtils.h
   AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/
   AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Build
   AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Configure.linux
   AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Makefile.am
   AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/
   AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Build
   AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Configure.darwin
   AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.moz.am
   AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.src.am
   AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/
   AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ogg.c

Modified files:
   AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html

Log Message:
Updated documents for Cygwin, MacOS & Linux, added Makefile.am script files and configure scripts.

Included modified ogg.c file to support Annodex version 3 format.

Modified: AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html	2006-06-01 15:00:55 UTC (rev 2317)
@@ -24,367 +24,245 @@
   </tr>
   <tr>
     <td width="100%"><a href="#3.0_Linux">3.0 
-	Building the Annodex Firefox Extension in Debian GNU/Linux</a></td>
+	Building the Annodex Firefox Extension in GNU/Linux</a></td>
   </tr>
-  <tr>
-    <td width="100%"><a href="#4.0_Compilation_Flags">4.0 Specific Compilation 
-    Flags used when developing Media Engine</a></td>
-  </tr>
   </table>
 
-<p><b>Note:</b> These additional steps are only to be completed if the <b>
-DevDoc_MediaEngine.html </b>instructions does not correctly compile the Mozilla 
-plug-in as desired. These steps walkthrough the process of compilation to 
-address issues covered in the relevant sections for each operating system.</p>
+<p>These steps give a walkthrough in the process of compilation, to 
+address issues covered in the relevant sections for each operating system when 
+compiled using current system environments. The compiled Mozilla plug-in will be located in the 
+  <font face="Courier New">/src</font> directory under the following file 
+types/linked libraries:</p>
 
 
+<ul>
+  <li><b>Cygwin:</b> <font face="Courier New">libvlc.dll</font> (Dynamic Linked 
+  Library - *.dll)</li>
+  <li><b>MacOS:</b> <font face="Courier New">VLC Plugin.plugin</font> (System 
+  folder containing VLC Plugin binary and dynamic libraries - *.dylib)</li>
+  <li><b>Linux: </b><font face="Courier New">libvlc.so</font> (Dynamic Shared 
+  Object - *.so)</li>
+</ul>
+
+<p>
+<b>Development Advice: </b>The subversion <font face="Courier New">patch</font> script was developed for VLC version 
+0.8.2. Any other versions of VLC may run into version conflicts in the patch 
+process. These issues will be resolved in the upcoming development of the VLC 
+Media Engine plug-in for version 0.8.5. The development was made on the 
+following operating environments:</p>
+
+
+<ul>
+  <li><b>Cygwin:</b> Windows XP on Cywin version 1.5.19-4</li>
+  <li><b>MacOS:</b> version 10.4 (Codename Tiger)</li>
+  <li><b>Linux: </b>Ubuntu version 0.6 (Codename Dapper)</li>
+</ul>
+<p><b>Further Information: </b>For VLC Plug-in development, the following 
+websites are recommended:</p>
+<ul>
+  <li> <a href="http://www.firstmiletv.nl/vlc/developers/howto.txt">VLC Developer's Guide</a>: 
+  A general reference guide for development in the VLC Player.</li>
+  <li>
+  <a href="http://developers.videolan.org/vlc/vlc/doc/developer/html/manual.html">
+  VLC API Documentation</a>: A background behind the VLC components and their 
+  functional dependencies.</li>
+  <li>
+  <a href="http://developers.videolan.org/vlc/mozilla-plugin-compile.html">VLC 
+  Plug-in Compile Guide</a>: General compiler guide to Mozilla Plug-in for Cywin 
+  and Linux environments.</li>
+  <li>
+  <a href="http://www.via.ecp.fr/via/ml/vlc-devel/2004-04/msg00019.html">VLC 
+  Compilation Tips</a>: To compile MediaEngine plug-in using Mozilla's console 
+  function to print diagnostics and debug messages.</li>
+</ul>
+
+
 <h2><a name="1.0_Cygwin">1.0 Installation of the Annodex Firefox Extension in 
 Cygwin</a></h2>
 
 
-<p>The following pre-compilation issues have been identified to cause problems, 
-and the following walkthrough steps solves the identified problem(s):</p>
+<p>The following the following walkthrough steps identifies the current build problem(s):</p>
 <ul>
   <li><b>Steps 1-2:</b> General Cygwin setup process to install dependencies 
   required by VLC compilation process.</li>
-  <li><b>Steps 3-7: </b>The general compilation process will only accept 
-  absolute paths to identify SDK library paths. Relative paths are removed.</li>
-  <li><b>Step 8: </b>The Mozilla IDL Compiler (XPIDL.exe) only allows forward 
+  <li><b>Steps 4-5: </b>The general compilation process will only accept 
+  absolute paths to identify SDK library. Relative paths are removed.</li>
+  <li><b>Steps 6-7: </b>The Mozilla IDL Compiler (XPIDL.exe) only allows forward 
   slash pathnames; but the native pathname syntax in Unix is backslash paths.</li>
-  <li><b>Step 9: </b>The constant NS_SPECIALIZE_TEMPLATE cannot be resolved.</li>
+  <li><b>Step 8: </b>The constant NS_SPECIALIZE_TEMPLATE cannot be resolved.</li>
 </ul>
-The following assumptions will need to be observed while reading this document:<ul>
-  <li>Note that the compiled Mozilla plug-in will be located in the 
-  <font face="Courier New">/src</font> directory</li>
-    <li><i>Add</i> means to include the new string on that line followed by a 
-    new line.</li>
-    <li><i>Replace</i> means to delete the current string on the line and enter 
-    the new values as required.</li>
-</ul>
-<h3>General Cygwin Configuration:</h3>
+<h3>Cygwin Configuration Changes for VLC Version 0.8.2:</h3>
 <ol>
-  <li>Ensure the following categories are all selected when installing Cygwin. 
-  Refer to section 2.1.1 in DevDoc_MediaEngine.html for details:<br>
-  Admin, Archive, Base, Devel, Libs, Mingw, System, Utils.<br>
-&nbsp;</li>
+  <li>Ensure the following categories are all selected when using Cygwin for 
+  basic system dependencies to be fulfilled:<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3" height="71">
+    <tr>
+      <td width="50%" height="71">
+      <ul>
+        <li>Admin</li>
+        <li>Archive</li>
+        <li>Base</li>
+        <li>Devel</li>
+      </ul>
+      </td>
+      <td width="50%" height="71">
+      <ul>
+        <li>Libs</li>
+        <li>Mingw</li>
+        <li>System</li>
+        <li>Utils.</li>
+      </ul>
+      </td>
+    </tr>
+  </table>
+  </li>
   <li>Setup the latest win32 pre-assembled libraries for VLC by extracting the 
-  archive and copying to <font face="Courier New">/cygwin</font> directory.
+  archive and copying it to the root <font face="Courier New">cygwin</font> directory.
   <br>The <font face="Courier New">contrib</font> tarball archive can be found 
   in the following location:
   <a href="http://download.videolan.org/pub/testing/win32/contrib-20060428-win32-bin-gcc-3.4.5-only.tar.bz2">
   http://download.videolan.org/pub/testing/win32/</a><br>&nbsp;</li>
-  <li>In the <font face="Courier New">/MediaEngines/VLC</font> directory run the script: <font face="Courier New">./Patch</font></ol>
-<p><b>Note:</b> For further information on VLC Plug-in development, the 
-following websites are recommended to visit:</p>
+  <li>In the <font face="Courier New">/MediaEngines/VLC</font> directory run the script: <font face="Courier New">./Patch<br>
+&nbsp;</font><li>Copy the file <font face="Courier New">./Modified-Cygwin/Build</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
+  &nbsp;</li>
+  <li>Copy the file <font face="Courier New">./Modified-Cygwin/Configure.cygwin</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
+  <br>
+  The developer is required to changes these lines to make it the <i>absolute</i> 
+  path of the location of the dependencies and Gecko SDK:<br>
+  Line 9: <font face="Courier New">export CPPFLAGS=&quot;-I/usr/win32/include 
+  -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include&quot;<br>
+  </font>Line 10: <font face="Courier New">&quot;-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib&quot;</font><br>
+  Line 12: <font face="Courier New">XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br>
+  </font>Line 13: <font face="Courier New">XPIDL_INCL=&quot;-Ic:\Cygwin/usr/win32/gecko-sdk/idl&quot;<br>
+  </font>Line 73: <font face="Courier New">--enable-mozilla --with-mozilla-sdk-path=/cygdrive/c/Cygwin/MediaEngines/GeckoSDK/gecko-sdk-win32 
+  \<br>
+&nbsp;</font></li>
+  <li>Copy the file <font face="Courier New">./Modified-Cygwin/Configure.ac</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
+  &nbsp;</li>
+  <li>Copy the file <font face="Courier New">./Modified-Cygwin/Makefile.am</font> 
+  into the Mozilla source directory <font face="Courier New">/MediaEngines/VLC/src/mozilla/<br>
+  <br>
+  </font>Modify the line to make it the absolute path of <font face="Courier New">
+  vlcintf.idl:<br>
+  </font>Line 10: <font face="Courier New">VLCIDL_FILE = &quot;c:\Cygwin/MediaEngines/VLC/src/mozilla/vlcintf.idl&quot;<br>
+&nbsp;</font></li>
+  <li>Copy the file <font face="Courier New">./Modified-Cygwin/nsISupportsUtils.h</font> 
+  into the Contribution dependency directory <font face="Courier New">/usr/win32/gecko-sdk/include/<br>
+&nbsp;</font></li>
+  <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
+  the following script <font face="Courier New">./Build</font></li></ol>
+<h2><a name="2.0_MacOS">2.0 Installation of the Annodex Firefox Extension in 
+MacOS</a></h2>
+
+
+<p>The following the following walkthrough steps identifies the current build problem(s):</p>
 <ul>
-  <li> <a href="http://www.firstmiletv.nl/vlc/developers/howto.txt">VLC Developer's Guide</a></li>
-  <li>
-  <a href="http://developers.videolan.org/vlc/vlc/doc/developer/html/manual.html">
-  VLC API Documentation</a></li>
-  <li>
-  <a href="http://developers.videolan.org/vlc/mozilla-plugin-compile.html">VLC 
-  Plug-in Compile Guide</a></li>
-  <li>
-  <a href="http://www.via.ecp.fr/via/ml/vlc-devel/2004-04/msg00019.html">VLC 
-  Compilation Tips</a></li>
+  <li><b>Steps 1, 3:</b> General MacOS setup process to install dependencies 
+  required by VLC compilation process.</li>
+  <li><b>Steps 4-5: </b>The general compilation process accepts 
+  absolute paths to identify SDK library. Relative paths are removed.</li>
+  <li><b>Step 6: </b>The Mozilla IDL Compiler (XPIDL) has to be assigned the 
+  resource dependencies.</li>
 </ul>
-<h3>Specific Compilation Configuration Changes for VLC Version 0.8.2:</h3>
+<h3>MacOS Configuration Changes for VLC Version 0.8.2:</h3>
 <ol>
-  <li>Copy the following script files from <font face="Courier New">/MediaEngines/VLC/build</font> 
-  to <font face="Courier New">/MediaEngines/VLC/src</font>:<br>
+  <li>Setup the contribution dependencies for MacOS. As there are no binary 
+  dependencies that can be downloaded, they will need to be compiled from source 
+  at the following location in the source directory:<br>
   <font face="Courier New"><br>
-  Build<br>
-  Configure.cygwin</font><br>
-  <b><br>
-  Optional:</b> It is safe to remove the
-  <font face="Courier New">/MediaEngines/VLC/build</font> directory after step 1 
-  is completed.<br>
+  \MediaEngines\VLC\src\extras\contrib\<br>
+  </font>Enter the command <font face="Courier New">./bootstrap</font> and
+  <font face="Courier New">./make src</font><br>
 &nbsp;</li>
-  <li>Modify <font face="Courier New">/MediaEngines/VLC/src/Configure.cygwin</font> 
-  as follows:<br>
+  <li>In the <font face="Courier New">/MediaEngines/VLC</font> directory run the script: <font face="Courier New">./Patch<br>
+&nbsp;</font><li>Copy the file <font face="Courier New">./Modified-MacOS/Build</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
+  &nbsp;</li>
+  <li>Copy the file <font face="Courier New">./Modified-MacOS/Configure.darwin</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
   <br>
-  Replace Line 14: <font face="Courier New">[ -x ./configure ] || (./bootstrap )</font><br>
-  Replace Line 16: <font face="Courier New">exec ./configure \</font><br>
-  Replace Line 17: Set the Gecko-SDK directory location to be absolute path, for 
-  example:<br>
-  <b>Example:</b> <font face="Courier New">--enable-mozilla 
-  --with-mozilla-sdk-path=/cygdrive/c/Cygwin/Annodex/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32 
+  The developer is required to changes these lines to make it the <i>absolute</i> 
+  path of the location of the dependencies and Gecko SDK:<br>
+  Line 9: <font face="Courier New">CPPFLAGS=&quot;-I/Users/root/VLC/contrib/include 
+  -I/Users/root/VLC/gecko-sdk/include&quot;</font><br>
+  Line 10: <font face="Courier New">LDFLAGS=&quot;-L/Users/root/VLC/contrib/lib 
+  -L/Users/root/VLC/gecko-sdk/lib&quot;</font><br>
+  Line 11: <font face="Courier New">PATH=&quot;/bin:/usr/bin:/Users/root/VLC/contrib/bin:/Users/root/VLC/gecko-sdk/bin&quot;</font><br>
+  Line 12: <font face="Courier New">PKG_CONFIG_PATH=&quot;/Users/root/VLC/src/contrib/lib/pkgconfig&quot;<br>
+  </font>Line 15: <font face="Courier New">XPIDL=/Users/root/VLC/gecko-sdk/bin/xpidl<br>
+  </font>Line 16: <font face="Courier New">XPIDL_INCL=&quot;-I/Users/root/VLC/gecko-sdk/idl&quot;<br>
+  </font>Line 74: <font face="Courier New">--enable-mozilla --with-mozilla-sdk-path=/Users/root/VLC/gecko-sdk 
   \<br>
-  <br>
-  </font>Add the following after Line 11 (Please take note of the respective 
-  drive of your Cygwin installation and the drive in which it is located):<font face="Courier New"><br>
-  <br>
-  export CPPFLAGS=&quot;-I/usr/win32/include -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include&quot;<br>
-  export LDFLAGS=&quot;-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib&quot;<br>
-  XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br>
-  XPIDL_INCL=&quot;-Ic:\Cygwin/usr/win32/gecko-sdk/idl&quot;<br>
-  <br>
-  </font><b>Optional: </b>You can remove the old <font face="Courier New">
-  CPPFLAGS</font> and <font face="Courier New">LDFLAGS</font> constants in line 
-  7 and 8 once step 2 is completed.<br>
-&nbsp;</li>
-  <li>Modify <font face="Courier New">/MediaEngines/VLC/src/Build</font> as 
-  follows:<br>
-  <br>
-  Replace Line 6: <font face="Courier New">! [ -x ./configure ] &amp;&amp; (./bootstrap)<br>
 &nbsp;</font></li>
-  <li>Modify <font face="Courier New">/MediaEngines/VLC/src/Configure.ac</font> 
-  as follows:<br>
-  <br>
-  Replace Line 4127: Set the Gecko-SDK directory location to be absolute path, 
-  for example:<br>
-  <b>Example:</b> <font face="Courier New">real_mozilla_sdk=&quot;/cygdrive/c/Cygwin/Annodex/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32&quot;<br>
-&nbsp;</font></li>
-  <li>Modify <font face="Courier New">/MediaEngines/VLC/src/mozilla/Makefile.am</font> 
-  as follows:<br>
-  <br>
-  Add after Line 9: Set the <font face="Courier New">vlcintf.idl</font> file 
-  location to be absolute path (i.e. forward slash for drive, back slash for 
-  subdirectories):<br>
-  <b>Example:</b> <font face="Courier New">VLCIDL_FILE = &quot;c:\Cygwin/Annodex/trunk/MediaEngines/VLC/src/mozilla/vlcintf.idl&quot;</font><br>
-  Replace the string in Line 89: <font face="Courier New">$(srcdir)/vlcintf.idl 
-  --to--&gt; $(VLCIDL_FILE)</font><br>
-  Replace the string in Line 93: <font face="Courier New">$(srcdir)/vlcintf.idl 
-  --to--&gt; $(VLCIDL_FILE)</font><br>
+  <li>Copy the file <font face="Courier New">./Modified-Linux/Makefile.src.am</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font> 
+  and rename to <font face="Courier New">Makefile.am</font><br>
 &nbsp;</li>
-  <li>Modify <font face="Courier New">/usr/win32/gecko-sdk/include/nslSupportsUtils.h</font> 
-  as follows:<br>
+  <li>Copy the file <font face="Courier New">./Modified-Linux/Makefile.moz.am</font> 
+  into the Mozilla source directory <font face="Courier New">/MediaEngines/VLC/src/mozilla/</font> 
+  and rename to <font face="Courier New">Makefile.am<br>
   <br>
-  Replace line 205: <font face="Courier New">template &lt;&gt;<br>
+  </font>Modify the line to make it the absolute path of the Mozilla SDK 
+  resources: <font face="Courier New"><br>
+  </font>Line 10: <font face="Courier New">XPIDL=/Users/root/VLC/gecko-sdk/bin/xpidl<br>
+  </font>Line 11: <font face="Courier New">VLCIDL_FILE = &quot;/Users/root/VLC/src/mozilla/vlcintf.idl&quot;<br>
 &nbsp;</font></li>
   <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
-  the following script <font face="Courier New">./Build</font></li>
-</ol>
-<h3>Additional Compilation Configuration for the latest VLC Version 0.8.5:</h3>
-<p><b>Note:</b> The modification of source code is required as the
-<font face="Courier New">./Patch</font> script was developed for VLC version 
-0.8.2. Any other versions of VLC may run into version conflicts in the patch 
-process, thus failing to patch the <font face="Courier New">Makefile.am</font> 
-file correctly as desired. In these circumstances, the following instructions 
-also need to be completed:</p>
+  the following script <font face="Courier New">./Build</font></li></ol>
+<h2><a name="3.0_Linux">3.0 Installation of the Annodex Firefox Extension in  
+GNU/Linux</a></h2>
+
+
+<p>The following the following walkthrough steps identifies the current build problem(s):</p>
+<ul>
+  <li><b>Steps 1-2:</b> General Linux setup process to install dependencies 
+  required by VLC compilation process.</li>
+  <li><b>Steps 4-5: </b>The general compilation process accepts 
+  absolute paths to identify SDK library. Relative paths are removed.</li>
+  <li><b>Step 6: </b>The Mozilla IDL Compiler (XPIDL) has to be assigned the 
+  resource dependencies.</li>
+</ul>
+<h3>Linux Configuration Changes for VLC Version 0.8.2:</h3>
 <ol>
-  <li>Follow the instructions as stated in the above section.<br>
+  <li>Make sure the following dependencies are installed (Development using 
+  Ubuntu Dapper 0.6):
+  <ul>
+    <li>x11proto-xext-dev </li>
+    <li>libtheora-dev </li>
+    <li>mozilla-dev <br>
 &nbsp;</li>
-  <li>Modify <font face="Courier New">/src/misc/charset.c</font> as follows:<br>
+  </ul>
+  </li>
+  <li>Download the stable Mozilla SDK from Mozilla.org at this location:
+  <a class="ext-link" href="http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7rc3/gecko-sdk-i686-pc-linux-gnu-1.7rc3.tar.gz">
+  http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7rc3/gecko-sdk-i686-pc-linux-gnu-1.7rc3.tar.gz</a>.<br>
+  It is recommended to extract the file within the same relative path of the 
+  source directory (<font face="Courier New">/MediaEngines/VLC/</font>).<br>&nbsp;</li>
+  <li>In the <font face="Courier New">/MediaEngines/VLC</font> directory run the script: <font face="Courier New">./Patch<br>
+&nbsp;</font><li>Copy the file <font face="Courier New">./Modified-Linux/Build</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
+  &nbsp;</li>
+  <li>Copy the file <font face="Courier New">./Modified-Linux/Configure.linux</font> 
+  into the source directory <font face="Courier New">/MediaEngines/VLC/src/</font><br>
   <br>
-  Add after Line 54: <font face="Courier New">#define LC_ALL &quot;C&quot;</font><br>
-&nbsp;</li>
-  <li>Modify <font face="Courier New">/mozilla/Makefile.am</font> as follows:<br>
-  Add after Line 18:<br>
-  <font face="Courier New">vlcstreaminfo.c \<br>
-  vlcstreaminfo.h \<br>
-  support/classinfo.h<br>
-  $(SOURCES_win32) \<br>
-  $(SOURCES_macosx) \<br>
-  $(SOURCES_unix) \<br>
-  $(NULL)</font><br>
-  <br>
-  Add after Line 144:<br>
-  <font face="Courier New">plugin_DATA = $(LIBRARIES_mozilla) $(BUNDLE_mozilla)<br>
-  plugindir = $(libdir)/mozilla/plugins<br>
-  $(LIBRARIES_mozilla): $(libplugin_a_OBJECTS) \<br>
-  $(libplugin_a_DEPENDENCIES) stamp-pic<br>
-  [ `uname` = &quot;Linux&quot; ] \<br>
-  &amp;&amp; ln -sf `$(CXX) --print-file-name=libstdc++.a` . \<br>
-  || true<br>
-  $(CXXLINK) -L. $(libplugin_a_OBJECTS) $(DATA_npvlc_rc) \<br>
-  $(LIBRARIES_libvlc) -shared \<br>
-  `$(VLC_CONFIG) --libs vlc mozilla builtin $(pic)`<br>
-  [ `uname` = &quot;Linux&quot; ] \<br>
-  &amp;&amp; rm libstdc++.a \<br>
-  || true<br>
+  The developer is required to changes these lines to make it the <i>absolute</i> 
+  path of the location of the Gecko SDK:<br>
+  Line 19: <font face="Courier New">CPPFLAGS=&quot;-I/usr/include -I/usr/include/ebml 
+  -I/home/root/MediaEngines/gecko-sdk/include&quot;</font><br>
+  Line 20: <font face="Courier New">LDFLAGS=&quot;-L/usr/lib -L/home/root/MediaEngines/gecko-sdk/lib&quot;</font><br>
+  Line 21: <font face="Courier New">XPIDL=/home/root/MediaEngines/gecko-sdk/bin/xpidl</font><br>
+  Line 22: <font face="Courier New">XPIDL_INCL=&quot;-I/home/root/MediaEngines/gecko-sdk/idl&quot;<br>
+  </font>Line 81: <font face="Courier New">--enable-mozilla --with-mozilla-sdk-path=/home/root/MediaEngines/gecko-sdk 
+  \<br>
 &nbsp;</font></li>
-  <li>Modify XUL Core: <font face="Courier New">MediaEngine.js</font>. Replace 
-  all references of <font face="Courier New">&quot;vlcview&quot;</font> and
-  <font face="Courier New">&quot;VLC Annodex viewer plugin&quot;</font> with
-  <font face="Courier New">&quot;VLC multimedia plugin&quot;</font>. There are still 
-  pending issues with the plug-in, and hence this development feature is 
-  considered highly unstable.</li>
-</ol>
-<h2><a name="2.0_MacOS">2.0 Installation of the Annodex Firefox Extension in 
-MacOS</a></h2>
-<p><i>No compilation issues have been identified as of time of writing.</i></p>
-<h2><a name="3.0_Linux">3.0 Installation of the Annodex Firefox Extension in Debian 
-GNU/Linux</a></h2>
-<p><i>No compilation issues have been identified as of time of writing.</i></p>
+  <li>Copy the file <font face="Courier New">./Modified-Linux/Makefile.am</font> 
+  into the Mozilla source directory <font face="Courier New">/MediaEngines/VLC/src/mozilla/<br>
+&nbsp;</font></li>
+  <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
+  the following script <font face="Courier New">./Build</font></li></ol>
 
-<p><b><font size="5"><a name="4.0_Compilation_Flags">4.0 Specific Compilation 
-Flags used when developing Media Engine</a></font></b></p>
-
-<p>The compiler flags that are used in this section refer to compiling the 
-plug-in in Windows platforms for VLC 0.8.2. The flags are sorted in alphabetical 
-order.<br>
-This section will be updated with all of VLC's supported platforms as 
-development progresses.</p>
-
-<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
-  <tr>
-    <td width="50%"><b>For Final Release and Optimisation:</b></td>
-    <td width="50%"><b>For Testing and Debugging:</b></td>
-  </tr>
-  <tr>
-    <td width="50%"><font face="Courier New" size="2">#!/bin/sh -x<br>
-    <br>
-    set -e<br>
-    <br>
-    CC=&quot;ccache gcc -mno-cygwin&quot;<br>
-    CXX=&quot;ccache g++ -mno-cygwin&quot;<br>
-    CFLAGS=&quot;-g&quot;<br>
-    CXXFLAGS=&quot;-g&quot;<br>
-    CPPFLAGS=&quot;-I/usr/win32/include -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include&quot;<br>
-    LDFLAGS=&quot;-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib&quot;<br>
-    <br>
-    XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br>
-    XPIDL_INCL=&quot;-Ic:\Cygwin/usr/win32/gecko-sdk/idl&quot;<br>
-    <br>
-    export CC CXX CPPFLAGS LDFLAGS CFLAGS CXXFLAGS<br>
-    <br>
-    [ -x ./configure ] || (./bootstrap )<br>
-    <br>
-    exec ./configure \<br>
-    &nbsp;--disable-a52 \<br>
-    &nbsp;--disable-caca \<br>
-    &nbsp;--disable-cdda \<br>
-    &nbsp;--disable-cddax \<br>
-    &nbsp;--disable-debug \<br>
-    &nbsp;--disable-dshow \<br>
-    &nbsp;--disable-dts \<br>
-    &nbsp;--disable-dvb \<br>
-    &nbsp;--disable-dvbpsi \<br>
-    &nbsp;--disable-dvdnav \<br>
-    &nbsp;--disable-dvdread \<br>
-    &nbsp;--disable-faad \<br>
-    &nbsp;--disable-ffmpeg \<br>
-    &nbsp;--disable-flac \<br>
-    &nbsp;--disable-freetype \<br>
-    &nbsp;--disable-fribidi \<br>
-    &nbsp;--disable-glx \<br>
-    &nbsp;--disable-gtk \<br>
-    &nbsp;--disable-hd1000v \<br>
-    &nbsp;--disable-httpd \<br>
-    &nbsp;--disable-libcddb \<br>
-    &nbsp;--disable-libcdio \<br>
-    &nbsp;--disable-libmpeg2 \<br>
-    &nbsp;--disable-libxml2 \<br>
-    &nbsp;--disable-livedotcom \<br>
-    &nbsp;--disable-mad \<br>
-    &nbsp;--disable-mkv \<br>
-    &nbsp;--disable-mod \<br>
-    &nbsp;--disable-nls \<br>
-    &nbsp;--disable-opengl \<br>
-    &nbsp;--disable-qte \<br>
-    &nbsp;--disable-satellite \<br>
-    &nbsp;--disable-sdl \<br>
-    &nbsp;--disable-skins2 \<br>
-    &nbsp;--disable-sout \<br>
-    &nbsp;--disable-speex \<br>
-    &nbsp;--disable-svg \<br>
-    &nbsp;--disable-tarkin \<br>
-    &nbsp;--disable-toolame \<br>
-    &nbsp;--disable-tremor \<br>
-    &nbsp;--disable-v4l \<br>
-    &nbsp;--disable-vcd \<br>
-    &nbsp;--disable-vcdx \<br>
-    &nbsp;--disable-vlm \<br>
-    &nbsp;--disable-waveout \<br>
-    &nbsp;--disable-wingdi \<br>
-    &nbsp;--disable-wxwindows \<br>
-    &nbsp;--disable-x11 \<br>
-    &nbsp;--disable-x264 \<br>
-    &nbsp;--disable-xvideo \<br>
-&nbsp;--enable-cmml \<br>
-    &nbsp;--enable-directx \<br>
-    &nbsp;--enable-mostly-builtin \<br>
-    &nbsp;--enable-mozilla --with-mozilla-sdk-path={Absolute Path of Mozilla SDK} \<br>
-    &nbsp;--enable-ogg \<br>
-    &nbsp;--enable-release \<br>
-    &nbsp;--enable-theora \<br>
-    &nbsp;--enable-vorbis \<br>
-    &quot;$@&quot; \<br>
-    2&gt;&amp;1 | tee configure.output</font></td>
-    <td width="50%"><font face="Courier New" size="2">#!/bin/sh -x<br>
-    <br>
-    set -e<br>
-    <br>
-    CC=&quot;ccache gcc -mno-cygwin&quot;<br>
-    CXX=&quot;ccache g++ -mno-cygwin&quot;<br>
-    CFLAGS=&quot;-g&quot;<br>
-    CXXFLAGS=&quot;-g&quot;<br>
-    CPPFLAGS=&quot;-I/usr/win32/include -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include&quot;<br>
-    LDFLAGS=&quot;-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib&quot;<br>
-    <br>
-    XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br>
-    XPIDL_INCL=&quot;-Ic:\Cygwin/usr/win32/gecko-sdk/idl&quot;<br>
-    <br>
-    export CC CXX CPPFLAGS LDFLAGS CFLAGS CXXFLAGS<br>
-    <br>
-    [ -x ./configure ] || (./bootstrap )<br>
-    <br>
-    exec ./configure \<br>
-    &nbsp;--disable-a52 \<br>
-    &nbsp;--disable-caca \<br>
-    &nbsp;--disable-cdda \<br>
-    &nbsp;--disable-cddax \<br>
-    &nbsp;--disable-debug \<br>
-    &nbsp;--disable-dshow \<br>
-    &nbsp;--disable-dts \<br>
-    &nbsp;--disable-dvb \<br>
-    &nbsp;--disable-dvbpsi \<br>
-    &nbsp;--disable-dvdnav \<br>
-    &nbsp;--disable-dvdread \<br>
-    &nbsp;--disable-ffmpeg \<br>
-    &nbsp;--disable-glx \<br>
-    &nbsp;--disable-gtk \<br>
-    &nbsp;--disable-hd1000v \<br>
-    &nbsp;--disable-httpd \<br>
-    &nbsp;--disable-libcddb \<br>
-    &nbsp;--disable-libcdio \<br>
-    &nbsp;--disable-libxml2 \<br>
-    &nbsp;--disable-mkv \<br>
-    &nbsp;--disable-mod \<br>
-    &nbsp;--disable-nls \<br>
-    &nbsp;--disable-opengl \<br>
-    &nbsp;--disable-qte \<br>
-    &nbsp;--disable-satellite \<br>
-    &nbsp;--disable-sdl \<br>
-    &nbsp;--disable-sdl \<br>
-    &nbsp;--disable-skins2 \<br>
-    &nbsp;--disable-sout \<br>
-    &nbsp;--disable-svg \<br>
-    &nbsp;--disable-tarkin \<br>
-    &nbsp;--disable-toolame \<br>
-    &nbsp;--disable-tremor \<br>
-    &nbsp;--disable-v4l \<br>
-    &nbsp;--disable-vcd \<br>
-    &nbsp;--disable-vcdx \<br>
-    &nbsp;--disable-vlm \<br>
-    &nbsp;--disable-waveout \<br>
-    &nbsp;--disable-x11 \<br>
-    &nbsp;--disable-x264 \<br>
-    &nbsp;--disable-xvideo \<br>
-    &nbsp;--enable-cmml \<br>
-    &nbsp;--enable-directx \<br>
-    &nbsp;--enable-faad \<br>
-    &nbsp;--enable-flac \<br>
-    &nbsp;--enable-freetype --with-freetype-config-path=/usr/win32/bin \<br>
-    &nbsp;--enable-fribidi --with-fribidi-config-path=/usr/win32/bin \<br>
-    &nbsp;--enable-libmpeg2 \<br>
-    &nbsp;--enable-livedotcom --with-livedotcom-tree=/usr/win32/live.com \<br>
-    &nbsp;--enable-mad \<br>
-    &nbsp;--enable-mostly-builtin \<br>
-    &nbsp;--enable-ogg \<br>
-    &nbsp;--enable-release \<br>
-    &nbsp;--enable-speex \<br>
-    &nbsp;--enable-theora \<br>
-    &nbsp;--enable-vorbis \<br>
-    &nbsp;--enable-wingdi \<br>
-    &nbsp;--enable-wxwindows --with-wx-config-path=/usr/win32/bin \<br>
-&nbsp;--enable-mozilla --with-mozilla-sdk-path={Absolute Path of Mozilla SDK} \<br>
-    &quot;$@&quot; \<br>
-    2&gt;&amp;1 | tee configure.output</font></td>
-  </tr>
-</table>
-
 </body>
 
 </html>
\ No newline at end of file

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Build
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Build	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Build	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+
+! [ -x ./configure ] && (./bootstrap)
+
+SYSTEM=`uname | tr A-Z a-z | sed -e s'/_.*$//'`
+
+./Configure.$SYSTEM
+
+# build it!
+make
+
+# ( cd mozilla && make )
+

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Configure.cygwin
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Configure.cygwin	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Configure.cygwin	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,79 @@
+#!/bin/sh -x
+
+set -e
+
+CC="ccache gcc -mno-cygwin"
+CXX="ccache g++ -mno-cygwin"
+CFLAGS="-g"
+CXXFLAGS="-g"
+CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include"
+LDFLAGS="-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib"
+
+XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe
+XPIDL_INCL="-Ic:\Cygwin/usr/win32/gecko-sdk/idl"
+
+export CC CXX CPPFLAGS LDFLAGS CFLAGS CXXFLAGS
+
+[ -x ./configure ] || (./bootstrap )
+
+exec ./configure \
+ --disable-a52 \
+ --disable-caca \
+ --disable-cdda \
+ --disable-cddax \
+ --disable-debug \
+ --disable-dshow \
+ --disable-dts \
+ --disable-dvb \
+ --disable-dvbpsi \
+ --disable-dvdnav \
+ --disable-dvdread \
+ --disable-faad \
+ --disable-ffmpeg \
+ --disable-flac \
+ --disable-freetype \
+ --disable-fribidi \
+ --disable-glx \
+ --disable-gtk \
+ --disable-hd1000v \
+ --disable-httpd \
+ --disable-libcddb \
+ --disable-libcdio \
+ --disable-libmpeg2 \
+ --disable-libxml2 \
+ --disable-livedotcom \
+ --disable-mad \
+ --disable-mkv \
+ --disable-mod \
+ --disable-nls \
+ --disable-opengl \
+ --disable-qte \
+ --disable-satellite \
+ --disable-sdl \
+ --disable-skins2 \
+ --disable-sout \
+ --disable-speex \
+ --disable-svg \
+ --disable-tarkin \
+ --disable-toolame \
+ --disable-tremor \
+ --disable-v4l \
+ --disable-vcd \
+ --disable-vcdx \
+ --disable-vlm \
+ --disable-waveout \
+ --disable-wingdi \
+ --disable-wxwindows \
+ --disable-x11 \
+ --disable-x264 \
+ --disable-xvideo \
+ --enable-cmml \
+ --enable-directx \
+ --enable-mostly-builtin \
+ --enable-mozilla --with-mozilla-sdk-path=/cygdrive/c/Cygwin/MediaEngines/GeckoSDK/gecko-sdk-win32 \
+ --enable-ogg \
+ --enable-release \
+ --enable-theora \
+ --enable-vorbis \
+ "$@" \
+ 2>&1 | tee configure.output

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Makefile.am
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Makefile.am	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/Makefile.am	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,143 @@
+###############################################################################
+# Building the Mozilla plugin
+###############################################################################
+
+noinst_LIBRARIES = $(noinst_LIBRARIES_mozilla)
+	                                     
+MOSTLYCLEANFILES = $(LIBRARIES_mozilla)
+EXTRA_DIST = $(SOURCES_mozilla) $(DIST_rsrc) vlcintf.idl
+BUILT_SOURCES = $(BUILT_SOURCES_mozilla)
+VLCIDL_FILE = "c:\Cygwin/MediaEngines/VLC/src/mozilla/vlcintf.idl"
+
+SOURCES_mozilla = \
+	vlcshell.cpp \
+	vlcplugin.cpp \
+	vlcplugin.h \
+	vlcpeer.cpp \
+	vlcpeer.h \
+	vlcstreaminfo.c \
+	vlcstreaminfo.h \
+	support/classinfo.h \
+	$(SOURCES_win32) \
+	$(SOURCES_macosx) \
+	$(SOURCES_unix) \
+	$(NULL)
+
+DIST_rsrc = \
+	npvlc_rc.rc \
+	$(NULL)
+
+# Under Win32, Mozilla plugins need to be named NP******.DLL, but under Unix
+# the common naming scheme is lib******plugin.so. Also, we need npwin.cpp
+# under Win32 and npunix.c under Unix.
+if HAVE_WIN32
+LIBRARIES_mozilla = npvlc$(LIBEXT)
+SOURCES_win32 = support/npwin.cpp
+CPPFLAGS_mozilla_EXTRA = -DXP_WIN -DXP_WIN32
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc.a
+else
+if HAVE_DARWIN
+# We don't define LIBRARIES_mozilla because we'll be using project builder, or not...
+BUNDLE_mozilla = VLC\ Plugin.plugin
+vlc_moz_FLAGS = `$(VLC_CONFIG) --libs vlc builtin pic mozilla`
+moz_CFLAGS = `$(MOZILLA_CONFIG) --cflags plugin java nspr/obsolete nspr oji xpcom xpconnect`
+moz_plugin_FLAGS = -I. -I$(top_builddir) -I$(srcdir)/../include -c -F/System/Library/Frameworks/CoreFoundation.framework $(moz_CFLAGS) -I/Developer/Headers/FlatCarbon -arch ppc -fno-common -fpascal-strings -O0 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -DXP_MACOSX=1 -DNO_X11=1 -DUSE_SYSTEM_CONSOLE=1 -pipe -fmessage-length=0 -g -include mozilla-config.h
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+
+else
+LIBRARIES_mozilla = libvlcplugin$(LIBEXT)
+SOURCES_unix = support/npunix.c
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+endif
+endif
+
+if BUILD_MOZILLA
+if UNTRUE
+noinst_LIBRARIES_mozilla = libplugin.a
+endif
+
+libplugin_a_SOURCES = $(SOURCES_mozilla)
+libplugin_a_CFLAGS = `$(VLC_CONFIG) --cflags mozilla $(pic)` \
+	             $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags mozilla $(pic)` \
+	               $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_DEPENDENCIES = $(DATA_npvlc_rc)
+
+BUILT_SOURCES_mozilla = vlcintf.h
+$(SOURCES_mozilla): vlcintf.h
+
+plugin_DATA = $(LIBRARIES_mozilla) $(BUNDLE_mozilla)
+plugindir = $(libdir)/mozilla/plugins
+$(LIBRARIES_mozilla): $(libplugin_a_OBJECTS) \
+	              $(libplugin_a_DEPENDENCIES) stamp-pic
+	[ `uname` = "Linux" ] \
+	 && ln -sf `$(CXX) --print-file-name=libstdc++.a` . \
+	 || true
+	$(CXXLINK) -L. $(libplugin_a_OBJECTS) $(DATA_npvlc_rc) \
+	  $(LIBRARIES_libvlc) -shared \
+	  `$(VLC_CONFIG) --libs vlc mozilla builtin $(pic)`
+	[ `uname` = "Linux" ] \
+	 && rm libstdc++.a \
+	 || true
+
+vlcintf_xpt_DATA = vlcintf.xpt
+vlcintf_xptdir = $(libdir)/mozilla/components
+vlcintf.xpt: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m typelib -o vlcintf $(VLCIDL_FILE)
+
+vlcintf.h: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m header -o vlcintf $(VLCIDL_FILE)
+
+if HAVE_WIN32
+DATA_npvlc_rc = $(noinst_npvlc_rc_DATA)
+noinst_npvlc_rc_DATA = npvlc_rc.$(OBJEXT)
+noinst_npvlc_rcdir = $(libdir)
+npvlc_rc.$(OBJEXT): npvlc_rc.rc
+	$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@
+endif
+if HAVE_DARWIN
+VLC\ Plugin.plugin:
+	rm -rf ./VLC\ Plugin.plugin
+	mkdir -p ./VLC\ Plugin.plugin/Contents/MacOS
+	mkdir -p ./VLC\ Plugin.plugin/Contents/Resources
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcplugin.cpp -o ./libplugin_a-vlcplugin.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcshell.cpp -o ./libplugin_a-vlcshell.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcpeer.cpp -o ./libplugin_a-vlcpeer.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/support/npmac.cpp -o ./libplugin_a-npmac.o
+	/usr/bin/g++3 ./libplugin_a-vlcplugin.o ./libplugin_a-vlcshell.o ./libplugin_a-vlcpeer.o ./libplugin_a-npmac.o -o ./VLC\ Plugin.plugin/Contents/MacOS/VLC\ Plugin -L/usr/lib -F/System/Library/Frameworks/CoreFoundation.framework -framework CoreFoundation -arch ppc -bundle -read_only_relocs suppress $(LIBRARIES_libvlc) -dylib $(vlc_moz_FLAGS)
+	cp $(top_srcdir)/extras/MacOSX/plugin/Info.plist ./VLC\ Plugin.plugin/Contents/Info.plist
+	cp $(top_srcdir)/extras/MacOSX/plugin/pbdevelopment.plist ./VLC\ Plugin.plugin/Contents/pbdevelopment.plist
+	cp -r $(top_srcdir)/extras/MacOSX/plugin/English.lproj ./VLC\ Plugin.plugin/Contents/Resources/
+	Rez /Developer/Headers/FlatCarbon/Types.r $(srcdir)/vlc.r -o ./VLC\ Plugin.plugin/Contents/Resources/Vlc\ Plugin.rsrc
+	mkdir ./VLC\ Plugin.plugin/Contents/MacOS/modules
+	cp -r $(top_builddir)/VLC.app/Contents/MacOS/modules/* ./VLC\ Plugin.plugin/Contents/MacOS/modules/
+endif
+endif
+
+###############################################################################
+# Stamp rules
+###############################################################################
+clean: clean-stamp clean-bundle
+clean-stamp:
+	rm -f stamp-pic
+
+stamp-pic: FORCE
+	@for dep in "" `$(VLC_CONFIG) --target builtin $(pic)`; do \
+	  if test "$${dep}" -nt "$(LIBRARIES_mozilla)"; then \
+	    rm -f $@; \
+	    break; \
+	  fi; \
+	done
+	@if test ! -f $@; then printf "" > $@; fi
+
+clean-bundle:
+	rm -rf ./VLC\ Plugin.plugin
+
+###############################################################################
+# Force rule
+###############################################################################
+FORCE:

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/configure.ac
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/configure.ac	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/configure.ac	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,4438 @@
+dnl Autoconf settings for vlc
+dnl $Id: configure.ac 11524 2005-06-25 10:23:06Z dionoea $
+ 
+AC_INIT(vlc,0.8.2-annodex)
+
+CONFIGURE_LINE="$0 $*"
+CODENAME="Janus"
+
+AC_PREREQ(2.50)
+AC_CONFIG_SRCDIR(src/libvlc.c)
+AC_CONFIG_AUX_DIR(autotools)
+AC_CANONICAL_SYSTEM
+
+dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
+dnl them. And we need the comma otherwize automake will choke on it.
+AM_INIT_AUTOMAKE(vlc,0.8.2-annodex)
+AM_CONFIG_HEADER(config.h)
+
+dnl
+dnl  Save *FLAGS
+dnl
+VLC_SAVE_FLAGS
+
+dnl
+dnl Check for tools
+dnl
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_CPP
+AC_PROG_CXX
+eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
+if test "${CXX}" != ""; then
+  AC_PROG_CXXCPP
+fi
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+
+dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
+dnl now otherwise it might be set in an obscure if statement.
+AC_EGREP_CPP(foo,foo)
+
+dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
+AC_MSG_CHECKING(for an Objective-C compiler)
+OBJC="${CXX}"
+AC_SUBST(OBJC)
+OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
+AC_SUBST(OBJCFLAGS)
+dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
+#OBJCDEPMODE="depmode=gcc3"
+#AC_SUBST(OBJCDEPMODE)
+_AM_DEPENDENCIES(OBJC)
+AC_MSG_RESULT(not implemented yet)
+
+dnl Find the right ranlib, even when cross-compiling
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+AC_CHECK_TOOL(AR, ar, :)
+AC_CHECK_TOOL(LD, ld, :)
+
+dnl Sam, if you think I didn't see that... --Meuuh
+dnl AM_PROG_LIBTOOL
+AC_PROG_INSTALL
+
+dnl Check for compiler properties
+AC_C_CONST
+AC_C_INLINE
+
+dnl
+dnl  Check for the contrib directory
+dnl
+topdir="`pwd`"
+if test -d ${topdir}/extras/contrib/lib; then
+  export PATH=${topdir}/extras/contrib/bin:$PATH
+  CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
+  CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
+  CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
+  CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
+  CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
+  CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
+  OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
+  OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
+  if test -d ${topdir}/extras/contrib/vlc-lib; then
+    LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
+    LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
+  fi
+  LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
+  LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
+  with_livedotcom_tree=${topdir}/extras/contrib/src/live
+  with_goom_tree=${topdir}/extras/contrib/src/goom
+  if test ".`uname -s`" = ".Darwin"; then
+    export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
+    export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
+  elif test ".`uname -s`" = ".BeOS"; then
+    export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
+    export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
+  fi
+fi
+
+dnl
+dnl  Set default values
+dnl
+LDFLAGS_vlc="${LDFLAGS}"
+
+dnl
+dnl  Check the operating system
+dnl
+case "${target_os}" in
+  "")
+    SYS=unknown
+    ;;
+  linux*)
+    SYS=linux
+    ;;
+  bsdi*)
+    SYS=bsdi
+    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
+    VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
+    ;;
+  *bsd*)
+    SYS="${target_os}"
+    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
+    ;;
+  darwin*)
+    SYS=darwin
+    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
+    VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
+    VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
+    VLC_ADD_CFLAGS([libvlc],[-x objective-c])
+    VLC_ADD_CFLAGS([vlc],[-x objective-c])
+    VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
+    ;;
+  *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
+    AC_CHECK_TOOL(WINDRES, windres, :)
+
+    case "${target_os}" in
+      *mingw32*)
+        SYS=mingw32
+        ;;
+      *cygwin*)
+        dnl Check if we are using the mno-cygwin mode in which case we are
+        dnl actually dealing with a mingw32 compiler.
+        AC_EGREP_CPP(yes,
+            [#ifdef WIN32
+             yes
+             #endif],
+            SYS=mingw32, SYS=cygwin)
+        ;;
+      *wince* | *mingwce* | *pe*)
+        SYS=mingwce
+        ;;
+    esac
+
+    if test "${SYS}" = "mingw32"; then
+        # add ws2_32 for closesocket, select, recv
+        CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
+        VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
+        VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
+        VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard telnet netsync],[-lws2_32])
+    fi
+    if test "${SYS}" = "mingwce"; then
+        # add ws2 for closesocket, select, recv
+        CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
+        VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
+        VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
+        VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
+    fi
+    ;;
+  *nto*)
+    SYS=nto
+    VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
+    ;;
+  solaris*)
+    SYS=solaris
+    # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
+    # Perhaps it is useful other places as well? 
+    CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
+    ;;
+  hpux*)
+    SYS=hpux
+    ;;
+  beos)
+    SYS=beos
+    CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
+    VLC_ADD_CXXFLAGS([beos],[])
+    VLC_ADD_LDFLAGS([vlc beos],[-lbe])
+    VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
+    VLC_ADD_LDFLAGS([access_file access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
+
+    dnl Ugly check for Zeta
+    if test -f /boot/beos/system/lib/libzeta.so; then
+        VLC_ADD_LDFLAGS([beos],[-lzeta])
+    fi
+    ;;
+  *)
+    SYS="${target_os}"
+    ;;
+esac
+AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
+AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
+AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
+AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
+
+dnl
+dnl Gettext stuff
+dnl
+ALL_LINGUAS="ca da de en_GB es fr it ja nl pt_BR ru tr zh_TW"
+AM_GNU_GETTEXT_VERSION(0.11.5)
+AM_GNU_GETTEXT
+if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
+  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
+  INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
+else
+  AC_CHECK_FUNCS(textdomain,,[
+    AC_CHECK_LIB(intl,textdomain,
+      VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]),,
+      ${LIBINTL}
+    )
+  ])
+fi
+AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
+XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
+
+AC_ARG_ENABLE(utf8,
+  [  --enable-utf8           unicode utf8 support (default enabled on darwin/beos/win32)])
+if test "${enable_utf8}" = "yes" || (test "${enable_utf8}" != "no" && (test "${SYS}" = "mingw32" || test "${SYS}" = "beos" || test "${SYS}" = "darwin" ) )
+then
+  AC_DEFINE(ENABLE_UTF8, 1,
+            Define if you want utf8 support)
+fi
+
+dnl
+dnl Iconv stuff
+dnl
+VLC_ADD_CFLAGS([vlc],[${INCICONV}])
+VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
+
+dnl Check for the need to include the mingwex lib for mingw32
+if test "${SYS}" = "mingw32"
+then
+    AC_CHECK_LIB(mingwex,opendir,
+        AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
+            [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
+    )
+fi
+
+dnl Check for fnative-struct or mms-bitfields support for mingw32
+if test "${SYS}" = "mingw32"
+then
+    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
+        [ac_cv_c_mms_bitfields],
+        [CFLAGS="${CFLAGS_save} -mms-bitfields"
+         AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
+    if test "${ac_cv_c_mms_bitfields}" != "no"; then
+        CFLAGS_save="${CFLAGS_save} -mms-bitfields";
+        CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
+    else
+        AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
+            [ac_cv_c_fnative_struct],
+            [CFLAGS="${CFLAGS_save} -fnative-struct"
+             AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
+        if test "${ac_cv_c_fnative_struct}" != "no"; then
+            CFLAGS_save="${CFLAGS_save} -fnative-struct";
+            CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
+        fi
+    fi
+
+    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+fi
+
+dnl Check for fvtable-thunks support for mingw32
+if test "${SYS}" = "mingw32" -a "${CXX}" != ""
+then
+AC_LANG_PUSH(C++)
+    AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
+        [ac_cv_cxx_fvtable_thunks],
+        [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
+         AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
+                        ac_cv_cxx_fvtable_thunks=no)])
+    if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
+        CXXFLAGS_mingw32_special="-fvtable-thunks"
+    fi
+
+    CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
+AC_LANG_POP(C++)
+fi
+
+dnl Plugin compilation stuff
+
+VLC_LIBRARY_SUFFIX
+
+case "${SYS}" in
+  mingw32|cygwin)
+    VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
+    VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
+    VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
+    ;;
+  mingwce)
+    ;;
+  *)
+    VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
+    VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
+    VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
+    VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
+    ;;
+esac
+
+dnl The -DSYS_FOO flag
+CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
+
+dnl Check for system libs needed
+need_libc=false
+
+AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon)
+
+dnl Check for usual libc functions
+AC_CHECK_FUNCS(strdup strndup atof)
+AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
+AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
+AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
+
+dnl Check for setlocal and langinfo
+AC_CHECK_FUNCS(setlocale)
+AC_CHECK_HEADERS(langinfo.h)
+AC_CHECK_FUNCS(nl_langinfo)
+
+AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
+  [AC_TRY_LINK([#include <langinfo.h>],
+    [char* cs = nl_langinfo(CODESET);],
+    ac_cv_langinfo_codeset=yes,
+    ac_cv_langinfo_codeset=no)
+  ])
+if test ${ac_cv_langinfo_codeset} = yes; then
+  AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+    [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+fi
+
+AC_CHECK_FUNCS(connect,,[
+  AC_CHECK_LIB(socket,connect,[
+    VLC_ADD_LDFLAGS([vlc ipv4 cddax],-lsocket)
+  ])
+])
+
+AC_CHECK_FUNCS(send,,[
+  AC_CHECK_LIB(socket,send,[
+    VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard],[-lsocket])
+  ])
+])
+
+AC_CHECK_FUNCS(gethostbyname,,[
+  AC_CHECK_LIB(nsl,gethostbyname,[
+    VLC_ADD_LDFLAGS([cddax ipv4 vlc],[-lnsl])
+  ],[
+    AC_CHECK_LIB(bind,gethostbyname,[
+      VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
+    ])
+  ])
+])
+
+dnl Check for socklen_t
+AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
+  [AC_TRY_COMPILE(
+     [#include <sys/types.h>
+      #include <sys/socket.h>],
+     [socklen_t len = 42; return len;],
+     ac_cv_type_socklen_t=yes,
+     ac_cv_type_socklen_t=no)])
+if test "${ac_cv_type_socklen_t}" != "no"; then
+  AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
+fi
+
+dnl Check for struct sockaddr_storage
+AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
+AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
+AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
+  [AC_TRY_COMPILE(
+    [#include <sys/types.h>
+     #if defined( UNDER_CE )
+     # include <winsock.h>
+     #elif defined( WIN32 )
+     # include <winsock2.h>
+     #else
+     # include <sys/socket.h>
+     #endif], [struct sockaddr_storage addr;],
+     ac_cv_struct_sockaddr_storage=yes,
+     ac_cv_struct_sockaddr_storage=no)])
+if test $ac_cv_struct_sockaddr_storage = no; then
+  AC_DEFINE(sockaddr_storage, sockaddr)
+  AC_DEFINE(ss_family, sa_family)
+fi
+
+dnl getaddrinfo, getnameinfo and gai_strerror check
+dnl  -lresolv is NOT needed on Solaris
+dnl  we purposedly make the test fail on Windows
+AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror])
+AH_TEMPLATE(HAVE_ADDRINFO, [Define to `1' if <netdb.h> defines struct addrinfo.])
+AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
+[#include <sys/types.h>
+#if defined( UNDER_CE )
+# include <winsock.h>
+#elif defined( WIN32 )
+# include <winsock2.h>
+# include <ws2tcpip.h>
+#else
+# include <netdb.h>
+#endif])
+
+dnl Check for va_copy
+AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
+  AC_TRY_LINK(
+    [#include <stdarg.h>],
+    [va_list ap1, ap2; va_copy(ap1,ap2);],
+    [ac_cv_c_va_copy="yes"],
+    [ac_cv_c_va_copy="no"]))
+if test "${ac_cv_c_va_copy}" = "yes"; then
+  AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
+fi
+AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
+  AC_TRY_LINK(
+    [#include <stdarg.h>],
+    [va_list ap1, ap2; __va_copy(ap1,ap2);],
+    [ac_cv_c___va_copy="yes"],
+    [ac_cv_c___va_copy="no"]))
+if test "${ac_cv_c___va_copy}" = "yes"; then
+  AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
+fi
+
+AC_CHECK_FUNCS(inet_aton,,[
+  AC_CHECK_LIB(resolv,inet_aton,[
+    VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
+  ])
+])
+
+dnl Check for getopt (always use builtin one on win32)
+if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
+need_getopt=:
+else
+need_getopt=false
+AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
+[ # FreeBSD has a gnugetopt library for this:
+  AC_CHECK_LIB([gnugetopt],[getopt_long],
+    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
+     VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
+    [need_getopt=:])])
+fi
+AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
+
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+AC_TYPE_SIGNAL
+AC_CHECK_LIB(m,cos,[
+  VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
+])
+AC_CHECK_LIB(m,pow,[
+  VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer vlc freetype],[-lm])
+])
+AC_CHECK_LIB(m,sqrt,[
+  VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
+])
+AC_CHECK_LIB(mx,sqrtf,[
+  VLC_ADD_LDFLAGS([x264],[-lmx])
+])
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+dnl Check for dynamic plugins
+ac_cv_have_plugins=no
+
+# OS X style
+AC_CHECK_HEADERS(mach-o/dyld.h,
+  [AC_CHECK_FUNCS(NSLinkModule,
+    [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
+     ac_cv_have_plugins=yes])])
+
+# HP-UX style
+if test "${ac_cv_have_plugins}" = "no"; then
+  AC_CHECK_HEADERS(dl.h)
+  ac_cv_my_have_shl_load=no
+  AC_CHECK_FUNC(shl_load,
+   [ac_cv_my_have_shl_load=yes,
+    AC_CHECK_LIB(dld, shl_load,
+     [ac_cv_my_have_shl_load=yes
+      VLC_ADD_LDFLAGS([vlc],[-ldld])])])
+  if test "${ac_cv_my_have_shl_load}" = "yes"; then
+    AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
+    ac_cv_have_plugins=yes
+  fi
+fi
+
+# Whatever style
+if test "${ac_cv_have_plugins}" = "no"; then
+  AC_CHECK_LIB(dld, dld_link,
+   [VLC_ADD_LDFLAGS([vlc],[-ldld])
+    AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
+    ac_cv_have_plugins=yes])
+fi
+
+# Win32 style
+if test "${ac_cv_have_plugins}" = "no"; then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
+    AC_CHECK_LIB(kernel32, main,
+     [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
+      AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
+      ac_cv_have_plugins=yes])
+  fi
+fi
+
+# WinCE style
+if test "${ac_cv_have_plugins}" = "no"; then
+  if test "${SYS}" = "mingwce"; then
+    AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
+    ac_cv_have_plugins=yes
+  fi
+fi
+
+# BeOS style
+if test "${ac_cv_have_plugins}" = "no"; then
+  AC_CHECK_HEADERS(image.h)
+  AC_CHECK_FUNCS(load_add_on,
+   [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
+    ac_cv_have_plugins=yes])
+fi
+
+# Only test for dlopen() if the others didn't work
+if test "${ac_cv_have_plugins}" = "no"; then
+  AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
+  ac_cv_my_have_dlopen=no
+  AC_CHECK_FUNC(dlopen,
+    ac_cv_my_have_dlopen=yes,
+    AC_CHECK_LIB(dl, dlopen,
+      ac_cv_my_have_dlopen=yes
+      VLC_ADD_LDFLAGS([vlc],[-ldl]),
+      AC_CHECK_LIB(svld, dlopen,
+        ac_cv_my_have_dlopen=yes
+        VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
+  if test "${ac_cv_my_have_dlopen}" = "yes"; then
+    AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
+    ac_cv_have_plugins=yes
+  fi
+fi
+
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+dnl Check for pthreads - borrowed from XMMS
+THREAD_LIB=error
+if test "${THREAD_LIB}" = "error"; then
+  AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
+fi
+if test "${THREAD_LIB}" = "error"; then
+  AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
+fi
+if test "${THREAD_LIB}" = "error"; then
+  AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
+fi
+if test "${THREAD_LIB}" = "error"; then
+  AC_CHECK_FUNCS(pthread_mutex_lock)
+  THREAD_LIB=""
+fi
+
+dnl Check for cthreads under GNU/Hurd for instance
+AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
+
+dnl
+dnl  GNU portable threads
+dnl
+AC_ARG_ENABLE(pth,
+  [  --enable-pth            GNU Pth support (default disabled)],
+  [ if test "${enable_pth}" = "yes"; then
+    AC_CHECK_LIB(pth,pth_init)
+    AC_MSG_CHECKING(for pth_init in pth.h)
+    AC_EGREP_HEADER(pth_init,pth.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
+                Define if <pth.h> defines pth_init)
+      THREAD_LIB="-lpth"
+    ],[
+      AC_MSG_RESULT(no)
+    ])
+    fi
+])
+
+dnl
+dnl  State Threads
+dnl
+AC_ARG_ENABLE(st,
+  [  --enable-st             State Threads (default disabled)],
+  [ if test "${enable_st}" = "yes"; then
+    AC_CHECK_LIB(st,st_init)
+    AC_MSG_CHECKING(for st_init in st.h)
+    AC_EGREP_HEADER(st_init,st.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(ST_INIT_IN_ST_H, 1,
+                Define if <st.h> defines st_init)
+      THREAD_LIB="-lst"
+    ],[
+      AC_MSG_RESULT(yes)
+    ])
+    fi
+])
+
+VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
+
+dnl Don't link with rt when using GNU-pth
+if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
+  dnl HP/UX port
+  AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
+
+  have_nanosleep=false
+  AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
+    AC_CHECK_LIB(rt,nanosleep,
+      [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
+      [AC_CHECK_LIB(posix4,nanosleep,
+          [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
+    )
+  ])
+  if ${have_nanosleep}; then
+    AC_DEFINE(HAVE_NANOSLEEP, 1,
+              Define if nanosleep is available.)
+  fi
+fi
+
+dnl Check for misc headers
+AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
+AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
+            Define if <pthread.h> defines pthread_cond_t.)],[
+  AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for pthread_once in pthread.h)
+AC_EGREP_HEADER(pthread_once,pthread.h,[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
+            Define if <pthread.h> defines pthread_once.)],[
+  AC_MSG_RESULT(no)])
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+AC_MSG_CHECKING(for strncasecmp in strings.h)
+AC_EGREP_HEADER(strncasecmp,strings.h,[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
+            Define if <strings.h> defines strncasecmp.)],[
+  AC_MSG_RESULT(no)])
+
+dnl Check for headers
+AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
+AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
+AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+AC_CHECK_HEADERS(machine/param.h sys/shm.h altivec.h)
+AC_CHECK_HEADERS(linux/version.h)
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+AC_HEADER_TIME
+
+dnl Check for dirent
+need_dirent=false
+AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
+AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
+
+dnl Mac OS X and other OSes don't have declaration for nanosleep
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+AC_MSG_CHECKING(for nanosleep in time.h)
+AC_EGREP_HEADER(nanosleep,time.h,[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
+            Define if <time.h> defines nanosleep.)
+],[
+  AC_MSG_RESULT(no)
+])
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+dnl Make sure we have timespecs
+AC_MSG_CHECKING(for timespec in sys/time.h)
+AC_EGREP_HEADER(timespec,sys/time.h,[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
+            Define if <sys/time.h> defines struct timespec.)
+],[
+  AC_MSG_RESULT(no)
+])
+
+dnl Check for threads library
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+dnl Default X headers and libraries
+if test "${x_includes}" = "NONE"; then
+  x_includes="/usr/X11R6/include"
+fi
+if test "${x_libraries}" = "NONE"; then
+  x_libraries="/usr/X11R6/lib"
+fi
+
+dnl Check for hal
+AC_ARG_ENABLE(hal,
+  [  --enable-hal            Linux HAL services discovery (default enabled)])
+ 
+if test "${enable_hal}" != "no"
+then
+  PKG_CHECK_MODULES(HAL, hal >= 0.2.97,
+    [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
+     VLC_ADD_PLUGINS([hal])
+     VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
+     VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
+    [AC_MSG_WARN(HAL library not found)])
+fi
+
+dnl Build the gtk_main plugins?
+NEED_GTK_MAIN=no
+NEED_GNOME_MAIN=no
+NEED_GTK2_MAIN=no
+NEED_GNOME2_MAIN=no
+
+dnl build the qte plugin ?
+NEED_QTE_MAIN=no
+
+dnl Check for ntohl, etc.
+AC_CACHE_CHECK([for ntohl in sys/param.h],
+    [ac_cv_c_ntohl_sys_param_h],
+    [CFLAGS="${CFLAGS_save} -Wall -Werror"
+     AC_TRY_COMPILE([#include <sys/param.h>],
+        [void foo() { int meuh; ntohl(meuh); }],
+        ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
+if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
+    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
+fi
+
+# XXX: do this with an M4 macro?
+#dnl Check for various -W flags
+#for flag in "" all unreachable-code conversion sign-compare disabled-optimization
+#do
+#    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
+#        [ac_cv_c_W${flag}],
+#        [CFLAGS="-W${flag} ${CFLAGS_save}"
+#         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
+#    if test "${ac_cv_c_W${flag}}" != "no"; then
+#        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+#        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+#        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+#    fi
+#done
+
+AC_CACHE_CHECK([if \$CC accepts -Wall],
+    [ac_cv_c_Wall],
+    [CFLAGS="-Wall ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
+
+AC_CACHE_CHECK([if \$CC accepts -Wconversion],
+    [ac_cv_c_Wconversion],
+    [CFLAGS="-Wconversion ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
+
+AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
+    [ac_cv_c_Wunreachable_code],
+    [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
+
+AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
+    [ac_cv_c_Wsign_compare],
+    [CFLAGS="-Wsign-compare ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
+
+if test "${ac_cv_c_Wall}" != "no"; then
+    CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+if test "${ac_cv_c_Wsign_compare}" != "no"; then
+    CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+dnl Check for -pipe
+AC_CACHE_CHECK([if \$CC accepts -pipe],
+    [ac_cv_c_pipe],
+    [CFLAGS="${CFLAGS_save} -pipe"
+     AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
+if test "${ac_cv_c_pipe}" != "no"; then
+    CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+dnl Check for various optimization flags
+AC_CACHE_CHECK([if \$CC accepts -Os],
+    [ac_cv_c_os],
+    [CFLAGS="${CFLAGS_save} -Os"
+     AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
+if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -O3],
+    [ac_cv_c_o3],
+    [CFLAGS="${CFLAGS_save} -O3"
+     AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
+if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -O2],
+    [ac_cv_c_o2],
+    [CFLAGS="${CFLAGS_save} -O2"
+     AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
+if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
+    if test "${ac_cv_c_o3}" = "no"; then
+        CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
+    fi
+    CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
+else 
+    AC_CACHE_CHECK([if \$CC accepts -O],
+        [ac_cv_c_o],
+        [CFLAGS="${CFLAGS_save} -O"
+         AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
+    if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
+        if test "${ac_cv_c_o3}" = "no"; then
+            CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
+	fi
+        CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
+    fi
+fi
+
+dnl Check for -ffast-math
+AC_CACHE_CHECK([if \$CC accepts -ffast-math],
+    [ac_cv_c_fast_math],
+    [CFLAGS="${CFLAGS_save} -ffast-math"
+     AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
+if test "${ac_cv_c_fast_math}" != "no"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
+fi
+
+dnl Check for -funroll-loops
+dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
+if test "${SYS}" != "beos"
+then
+  AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
+      [ac_cv_c_unroll_loops],
+      [CFLAGS="${CFLAGS_save} -funroll-loops"
+       AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
+  if test "${ac_cv_c_unroll_loops}" != "no"; then
+      CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
+  fi
+fi
+
+dnl Check for -fomit-frame-pointer
+AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
+    [ac_cv_c_omit_frame_pointer],
+    [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
+     AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
+if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
+    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
+    # this plugin does not compile without -fomit-frame-pointer, damn gcc!
+    VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
+fi
+
+dnl Check for -mdynamic-no-pic
+AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
+    [ac_cv_c_dynamic_no_pic],
+    [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
+     AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
+if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
+    VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
+    VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
+fi
+
+dnl Check for Darwin plugin linking flags
+AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
+    [ac_cv_ld_darwin],
+    [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
+     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
+if test "${ac_cv_ld_darwin}" != "no"; then
+    VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
+    AC_CHECK_LIB(cc_dynamic, main,[
+      VLC_ADD_LDFLAGS([plugin],[-lcc_dynamic])
+    ])
+fi
+
+dnl Check for standard plugin linking flags
+dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
+if test "${SYS}" = "beos"; then
+  VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
+else
+  AC_CACHE_CHECK([if \$CC accepts -shared],
+      [ac_cv_ld_plugins],
+      [CFLAGS="${CFLAGS_save} -shared"
+       AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
+  if test "${ac_cv_ld_plugins}" != "no"; then
+    VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
+  fi
+fi
+
+dnl Check for variadic macros
+AC_CACHE_CHECK([for variadic cpp macros],
+    [ac_cv_cpp_variadic_macros],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(
+         [#include <stdio.h>
+          #define a(b,c...) printf(b,##c)],
+         [a("foo");a("%s","bar");a("%s%s","baz","quux");],
+         ac_cv_cpp_variadic_macros=yes,
+         ac_cv_cpp_variadic_macros=no)])
+if test "${ac_cv_cpp_variadic_macros}" != "no"; then
+    AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
+fi
+
+dnl Checks for __attribute__(aligned()) directive
+AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
+    [ac_cv_c_attribute_aligned],
+    [ac_cv_c_attribute_aligned=0
+        CFLAGS="${CFLAGS_save} -Werror"
+    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
+        AC_TRY_COMPILE([],
+        [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
+        [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
+    done
+        CFLAGS="${CFLAGS_save}"])
+if test "${ac_cv_c_attribute_aligned}" != "0"; then
+    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
+        [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
+fi
+
+dnl Checks for __attribute__(format()) directive
+AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
+    [ac_cv_c_attribute_format],
+    [ac_cv_c_attribute_format=no
+        CFLAGS="${CFLAGS_save} -Werror"
+        AC_TRY_COMPILE([],
+        [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
+        [ac_cv_c_attribute_format=yes])
+        CFLAGS="${CFLAGS_save}"])
+if test "${ac_cv_c_attribute_format}" != "no"; then
+    AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
+fi
+
+dnl Check for __attribute__(())
+AC_CACHE_CHECK([for __attribute__((packed))],
+  [ac_cv_c_attribute_packed],
+  [ac_cv_c_attribute_packed=no
+   AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
+                    [ac_cv_c_attribute_packed=yes])])
+if test "${ac_cv_c_attribute_packed}" != "no"; then
+  AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
+fi
+
+dnl
+dnl  Check the CPU
+dnl
+case "${target_cpu}" in
+  "")
+    ARCH=unknown
+    ;;
+  *)
+    ARCH="${target_cpu}"
+    ;;
+esac
+
+dnl
+dnl  Enable profiling
+dnl
+AC_ARG_ENABLE(gprof,
+[  --enable-gprof          gprof profiling (default disabled)])
+AC_ARG_ENABLE(cprof,
+[  --enable-cprof          cprof profiling (default disabled)])
+test "${enable_gprof}" != "yes" && enable_gprof="no"
+test "${enable_cprof}" != "yes" && enable_cprof="no"
+
+dnl
+dnl  default modules
+dnl
+VLC_ADD_PLUGINS([dummy logger memcpy])
+VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
+VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
+VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur])
+VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
+VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
+VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
+VLC_ADD_PLUGINS([playlist export sgimb m3u xtag])
+VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo])
+VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
+VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
+VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
+VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
+VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
+
+if test "${SYS}" != "mingwce"; then
+dnl  VLC_ADD_PLUGINS([externrun])
+  VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
+  VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout])
+  VLC_ADD_PLUGINS([mosaic wall motiondetect clone crop])
+  VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
+  VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
+  VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
+  VLC_ADD_PLUGINS([headphone_channel_mixer normvol equalizer])
+  VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
+fi
+
+dnl
+dnl  Switch to enable a version of VLC where most modules will be builtin
+dnl
+AC_ARG_ENABLE(mostly-builtin,
+[  --enable-mostly-builtin most modules will be built-in (default disabled)])
+if test "${enable_mostly_builtin}" = "yes"; then
+  VLC_ADD_BUILTINS([${PLUGINS}])
+  PLUGINS=""
+fi
+
+dnl
+dnl Some plugins aren't useful on some platforms
+dnl
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+    VLC_ADD_PLUGINS([screensaver])
+elif test "${SYS}" != "mingwce"; then
+    VLC_ADD_PLUGINS([ntservice access_smb dmo])
+    VLC_ADD_LDFLAGS([dmo],[-lole32])
+else
+    VLC_ADD_PLUGINS([win32text])
+fi
+
+dnl
+dnl  Accelerated modules
+dnl
+MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
+#MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
+MMXEXT_MODULES="memcpymmxext"
+#MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
+THREEDNOW_MODULES="memcpy3dn"
+SSE_MODULES=""
+ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
+#ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
+
+if test "${enable_gprof}" != "yes"
+then
+  MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
+fi
+
+AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
+    [ac_cv_mmx_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
+if test "${ac_cv_mmx_inline}" != "no"; then
+  AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
+  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
+    [ac_cv_mmxext_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
+if test "${ac_cv_mmxext_inline}" != "no"; then
+  AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
+  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
+    [ac_cv_3dnow_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
+if test "${ac_cv_3dnow_inline}" != "no"; then
+  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
+  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
+    [ac_cv_sse_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
+                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
+if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
+  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
+  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
+fi
+
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
+    [ac_cv_altivec_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
+         ac_cv_altivec_inline=yes,
+         [CFLAGS="${CFLAGS_save} -Wa,-m7400"
+          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
+            [ac_cv_altivec_inline="-Wa,-m7400"],
+            ac_cv_altivec_inline=no)
+         ])])
+if test "${ac_cv_altivec_inline}" != "no"; then
+  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
+  if test "${ac_cv_altivec_inline}" != "yes"; then
+    VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
+    VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
+    VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
+    VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
+    VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
+  fi
+  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
+    [ac_cv_c_altivec],
+    [# Darwin test
+     CFLAGS="${CFLAGS_save} -faltivec"
+     AC_TRY_COMPILE([],
+       [vec_ld(0, (unsigned char *)0);],
+       [ac_cv_c_altivec="-faltivec"],
+       [# Linux/PPC test (no flags)
+        CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -maltivec -mabi=altivec"
+        AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
+                        #include <altivec.h>
+                        #endif],
+          [vec_ld(0, (unsigned char *)0);],
+          [ac_cv_c_altivec=""
+           ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
+          [# Linux/PPC test (old GCC versions)
+           CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
+           AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
+                           #include <altivec.h>
+                           #endif],
+             [vec_ld(0, (unsigned char *)0);],
+             [ac_cv_c_altivec="-fvec"],
+             [ac_cv_c_altivec=no])
+           ])
+        ])
+     CFLAGS="${CFLAGS_save}"])
+if test "${ac_cv_c_altivec}" != "no"; then
+  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
+  VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
+  VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
+  VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
+  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
+fi
+
+AC_CACHE_CHECK([if linker needs -framework vecLib],
+    [ac_cv_ld_altivec],
+    [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
+     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
+     LDFLAGS="${LDFLAGS_save}"
+    ])
+if test "${ac_cv_ld_altivec}" != "no"; then
+  VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
+fi
+fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+
+AC_ARG_WITH(,[])
+AC_ARG_WITH(,[Optimization options:])
+
+dnl
+dnl  Special arch tuning
+dnl
+AC_ARG_WITH(tuning,
+[  --with-tuning=ARCH      enable special tuning for an architecture
+                          (default i686 on IA-32 and 750 on PPC)])
+if test -n "${with_tuning}"; then
+    if test "${target_cpu}" = "powerpc"; then
+        CFLAGS_TUNING="-mtune=${with_tuning}"
+    else
+        CFLAGS_TUNING="-mcpu=${with_tuning}"
+    fi
+else
+    if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
+        CFLAGS_TUNING="-mcpu=pentiumpro"
+    elif test "${target_cpu}" = "x86_64"; then
+        CFLAGS_TUNING="-mtune=opteron"
+    elif test "${target_cpu}" = "powerpc"; then
+        CFLAGS_TUNING="-mtune=750";
+    fi
+fi
+
+dnl
+dnl  x86 accelerations
+dnl
+if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
+then
+    ARCH="${ARCH} mmx"
+    VLC_ADD_BUILTINS([${ACCEL_MODULES}])
+fi
+
+dnl
+dnl  Memory usage
+dnl
+AC_ARG_ENABLE(optimize-memory,
+[  --enable-optimize-memory      optimize memory usage over performance])
+if test "${enable_optimize_memory}" = "yes"; then
+  AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
+fi
+
+dnl
+dnl  Enable/disable optimizations
+dnl
+AC_ARG_ENABLE(optimizations,
+[  --disable-optimizations disable compiler optimizations (default enabled)])
+test "${enable_optimizations}" != "no" && enable_optimizations="yes"
+
+dnl
+dnl  AltiVec acceleration
+dnl
+AC_ARG_ENABLE(altivec,
+[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
+[ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
+    VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
+[ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
+    VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
+
+dnl
+dnl  Debugging mode
+dnl
+AC_ARG_ENABLE(debug,
+[  --enable-debug          debug mode (default disabled)])
+test "${enable_debug}" != "yes" && enable_debug="no"
+
+dnl
+dnl  Enable release-specific flags
+dnl
+AC_ARG_ENABLE(release,
+[  --enable-release        activate extra optimizations (default disabled)])
+test "${enable_release}" != "yes" && enable_release="no"
+
+dnl
+dnl Stream output
+dnl
+AC_ARG_ENABLE(sout,
+  [  --enable-sout           Stream output modules (default enabled)])
+if test "${enable_sout}" != "no"
+then
+  VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
+  VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
+  VLC_ADD_PLUGINS([packetizer_copy])
+
+  VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
+  VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
+#  VLC_ADD_PLUGINS([stream_out_transrate])
+
+  AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
+fi
+
+dnl
+dnl HTTP daemon
+dnl
+AC_ARG_ENABLE(httpd,
+  [  --enable-httpd          HTTP daemon (default enabled)])
+if test "${enable_httpd}" != "no"
+then
+  VLC_ADD_PLUGINS([http])
+  AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
+fi
+
+dnl
+dnl VideoLAN manager
+dnl
+AC_ARG_ENABLE(vlm,
+  [  --enable-vlm            VideoLAN manager (default enabled)])
+if test "${enable_vlm}" != "no"
+then
+  AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
+fi
+
+dnl
+dnl TLS/SSL
+dnl
+AC_ARG_ENABLE(gnutls,
+  [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
+AS_IF([test "${enable_gnutls}" != "no"], [
+
+  gcrypt_LIBS="-lgpg-error"
+  AS_IF([test "${SYS}" = "mingw32"],
+    [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
+     VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
+  )
+
+  gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
+
+  AC_CHECK_HEADER(gcrypt.h,
+    [AC_CHECK_LIB(gcrypt, gcry_control,
+      [AC_CHECK_HEADER(gnutls/gnutls.h,
+        [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
+	  [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
+     ${gcrypt_LIBS})])
+
+  AS_IF([test "${have_gnutls}" = "yes"], [
+    VLC_ADD_PLUGINS([gnutls])
+    VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
+  ], [
+    AS_IF([test "${enable_gnutls}" = "yes"], [
+      AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
+    )]
+  )]
+)
+
+
+dnl
+dnl  Input plugins
+dnl
+
+AC_ARG_WITH(,[Input plugins:])
+
+dnl  live.com input
+dnl
+AC_ARG_ENABLE(livedotcom,
+[  --enable-livedotcom     live.com input plugin (default disabled)])
+if test "${enable_livedotcom}" = "yes"; then
+  AC_ARG_WITH(livedotcom-tree,
+    [    --with-livedotcom-tree=PATH live.com tree for static linking])
+
+  dnl
+  dnl test for --with-livedotcom-tree
+  dnl
+  if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
+    AC_LANG_PUSH(C++)
+    CPPFLAGS_save="${CPPFLAGS}"
+    CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
+    AC_CHECK_HEADERS(liveMedia.hh, [
+      VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
+      AC_CHECK_LIB(liveMedia_pic, main, [
+        # We have -lliveMedia_pic, build plugins
+        VLC_ADD_PLUGINS([livedotcom])
+        VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
+      ], [
+        AC_CHECK_LIB(liveMedia, main, [
+          # We only have -lliveMedia, do builtins
+          VLC_ADD_BUILTINS([livedotcom])
+          VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
+        ])
+      ])
+      if test "${SYS}" = "mingw32"; then
+        # add ws2_32 for closesocket, select, recv
+        VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
+      fi
+    ])
+    CPPFLAGS="${CPPFLAGS_save}"
+    AC_LANG_POP(C++)
+  else
+    AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
+    real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
+    if test -z "${real_livedotcom_tree}"; then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
+    fi
+    if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
+      AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
+
+      VLC_ADD_BUILTINS([livedotcom])
+
+      if test "${SYS}" = "mingw32"; then
+        # add ws2_32 for closesocket, select, recv
+        VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
+      fi
+
+      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
+      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
+      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
+      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
+
+      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
+      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
+      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
+      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
+    else
+      dnl  The given live.com wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
+    fi
+  fi
+fi
+
+
+dnl
+dnl dvdread module: check for libdvdread
+dnl
+AC_ARG_ENABLE(dvdread,
+[  --enable-dvdread        dvdread input module (default disabled)])
+if test "${enable_dvdread}" != "no"
+then
+  AC_ARG_WITH(dvdread,
+  [    --with-dvdread=PATH   libdvdread headers and libraries])
+  AC_ARG_WITH(dvdread-tree,
+  [    --with-dvdread-tree=PATH libdvdread tree for static linking])
+
+  dnl Temporary hack (yeah, sure ;)
+  if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
+      VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
+  fi
+
+  if test -z "${with_dvdread}"
+  then
+    if test -z "${with_dvdread_tree}"
+    then
+      AC_CHECK_HEADERS(dvdread/dvd_reader.h,
+        [ VLC_ADD_PLUGINS([dvdread])
+          VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
+        ],[
+          if test -n "${enable_dvdread}"
+          then
+            AC_MSG_ERROR([cannot find libdvdread headers])
+          fi
+        ])
+    else
+      AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
+      real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
+      if test -z "${real_dvdread_tree}"
+      then
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
+      fi
+      if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
+      then
+        dnl  Use a custom libdvdread
+        AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
+        VLC_ADD_BUILTINS([dvdread])
+        VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
+        VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
+      else
+        dnl  The given libdvdread wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
+      fi
+    fi
+  else
+    AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
+    if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
+    then
+      dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
+      AC_MSG_RESULT(yes)
+      VLC_ADD_PLUGINS([dvdread])
+      VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
+      VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
+    else
+      dnl  No libdvdread could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
+    fi
+  fi
+fi
+
+dnl
+dnl  libdvdnav plugin
+dnl
+AC_ARG_ENABLE(dvdnav,
+  [  --enable-dvdnav         dvdnav input module (default enabled)])
+if test "${enable_dvdnav}" != "no"
+then
+  dnl Same hack than dvdread
+  if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
+      VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
+  fi
+
+  DVDNAV_PATH="${PATH}"
+  AC_ARG_WITH(dvdnav-config-path,
+    [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
+    [ if test "${with_dvdnav_config_path}" != "no"
+      then
+        DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
+  if test "${DVDNAV_CONFIG}" != "no"
+  then
+    VLC_ADD_PLUGINS([dvdnav])
+    VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
+  fi
+fi
+
+dnl
+dnl  Windows DirectShow access module
+dnl
+AC_ARG_ENABLE(dshow,
+  [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
+if test "${enable_dshow}" != "no"
+then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
+  then
+      AC_CHECK_HEADERS(dshow.h,
+      [ VLC_ADD_PLUGINS([dshow])
+        VLC_ADD_CXXFLAGS([dshow],[])
+        VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
+  fi
+fi
+
+dnl
+dnl  libsmbclient plugin
+dnl
+AC_ARG_ENABLE(smb,
+  [  --enable-smb         smb input module (default enabled)])
+if test "${enable_smb}" != "no"; then
+  AC_CHECK_HEADERS(libsmbclient.h,
+    [ VLC_ADD_PLUGINS([access_smb])
+      VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
+    [ if test -n "${enable_smb}"; then
+        AC_MSG_ERROR([cannot find libsmbclient headers])
+     fi ])
+fi
+
+dnl
+dnl  libdvbpsi ts demux/mux
+dnl
+AC_ARG_ENABLE(dvbpsi,
+[  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
+if test "${enable_dvbpsi}" != "no"
+then
+  AC_ARG_WITH(dvbpsi,
+  [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
+  AC_ARG_WITH(dvbpsi,
+  [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
+  case "${with_dvbpsi}" in
+  ""|yes)
+    if test -z "${with_dvbpsi_tree}"
+    then
+      AC_CHECK_HEADERS(dvbpsi/dr.h,
+        [ VLC_ADD_PLUGINS([ts])
+          if test "${enable_sout}" != "no"; then
+            VLC_ADD_BUILTINS([mux_ts])
+          fi
+          VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
+        [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
+        [#if defined( HAVE_STDINT_H )
+#   include <stdint.h>
+#elif defined( HAVE_INTTYPES_H )
+#   include <inttypes.h>
+#endif
+#include <dvbpsi/dvbpsi.h>
+#include <dvbpsi/descriptor.h>
+#include <dvbpsi/pat.h>
+#include <dvbpsi/pmt.h>])
+    else
+      AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
+      real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
+      if test -z "${real_dvbpsi_tree}"
+      then
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
+      fi
+      if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
+      then
+        dnl  Use a custom libdvbpsi
+        AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
+        VLC_ADD_BUILTINS([ts])
+        if test "${enable_sout}" != "no"; then
+          VLC_ADD_BUILTINS([mux_ts])
+        fi
+        VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
+        VLC_ADD_LDFLAGS([mux_ts ts dvb],[-L${real_dvbpsi_tree}/src/.libs -ldvbpsi])
+      else
+        dnl  The given libdvbpsi wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
+      fi
+    fi
+  ;;
+  no)
+    dnl  Compile without dvbpsi
+  ;;
+  *)
+    AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
+    if test -z "${with_dvbpsi}"
+    then
+      LDFLAGS_test=""
+      CPPFLAGS_test=""
+    else
+      LDFLAGS_test="-L${with_dvbpsi}/lib"
+      CPPFLAGS_test="-I${with_dvbpsi}/include"
+    fi
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
+    AC_CHECK_HEADERS([dvbpsi/dr.h],[
+      VLC_ADD_PLUGINS([ts])
+      if test "${enable_sout}" != "no"; then
+        VLC_ADD_PLUGINS([mux_ts])
+      fi
+      VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
+      VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
+
+    ],[
+      if test -n "${enable_dvbpsi}"
+      then
+        AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
+      fi
+    ])
+    CPPFLAGS="${CPPFLAGS_save}"
+  ;;
+  esac
+fi
+
+dnl
+dnl  Video4Linux plugin
+dnl
+AC_ARG_ENABLE(v4l,
+  [  --enable-v4l            Video4Linux input support (default disabled)])
+if test "${enable_v4l}" = "yes"
+then
+  AC_ARG_WITH(v4l,
+    [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
+  if test "${with_v4l}" != "no" -a -n "${with_v4l}"
+  then
+    VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
+  fi
+
+  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
+  AC_CHECK_HEADERS(linux/videodev.h, [
+    VLC_ADD_PLUGINS([v4l])
+  ],[])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  special access module for Hauppauge PVR cards
+dnl
+AC_ARG_ENABLE(pvr,
+  [  --enable-pvr            PVR cards access module (default disabled)])
+if test "${enable_pvr}" = "yes"
+then
+  VLC_ADD_PLUGINS([pvr])
+fi
+
+dnl
+dnl  VCDX and CDDAX modules
+dnl
+AC_ARG_ENABLE(libcdio,
+  [  --enable-libcdio        CDDA support via libcdio (default enabled)])
+ 
+AC_ARG_ENABLE(libcddb,
+  [  --enable-libcddb        CDDB support for CDDAX (default enabled)])
+ 
+AC_ARG_ENABLE(vcdx,
+  [  --enable-vcdx           VCD support with Navigation (default disabled)])
+ 
+AC_ARG_ENABLE(cdda,           
+  [  --enable-cdda           CDDA plugin support (default enabled)])
+ 
+AC_ARG_ENABLE(cddax,
+  [  --enable-cddax          CDDA plugin with CD Text and possibly CDDB and paranoia support (default disabled)])
+ 
+if test "${enable_cddax}" = "yes"
+then
+  PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71,
+   [
+    AC_DEFINE(HAVE_CDDAX, [], [Define for the CD-DA plugin using libcdio])
+    VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
+    VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
+    VLC_ADD_PLUGINS([cddax])], 
+    [AC_MSG_WARN(libcdio library not found)
+    HAVE_CDDAX=no])
+
+  PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
+  VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])], 
+  HAVE_CDDAX=no)
+
+  if test "$enable_libcddb" != "no"; then
+    PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
+      HAVE_LIBCDDB=yes 
+      AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
+      VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
+      VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
+      ],
+      [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
+      HAVE_LIBCDDB=no])
+  fi
+ 
+fi
+
+if test "${enable_vcdx}" = "yes"
+then
+  PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
+   [VLC_ADD_LDFLAGS([vcdx],[$LIBCDIO_LIBS])
+    VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
+    [AC_MSG_WARN(libcdio library not found)
+    HAVE_VCDX=no])
+
+  PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
+   [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
+    VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
+    [AC_MSG_WARN(libiso9660 library not found)
+    HAVE_VCDX=no])
+
+  PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
+   [AC_DEFINE(HAVE_VCDX, [], 
+    [Define for the VCD plugin using libcdio/libvcdinfo])
+    VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
+    VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
+    VLC_ADD_PLUGINS([vcdx])], 
+   [AC_MSG_WARN(vcdinfo library not found)
+   HAVE_VCDX=no])
+fi
+
+dnl
+dnl  VCD module
+dnl
+AC_ARG_ENABLE(vcd,
+  [  --enable-vcd            VCD support for Linux, FreeBSD, MacOS X and Win32 (default enabled)])
+
+if test "${enable_vcd}" != "no"
+then
+  AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
+  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
+    AC_MSG_RESULT(yes)
+    VLC_ADD_PLUGINS([vcd cdda])
+  ],[
+    AC_MSG_RESULT(no)
+  ])
+
+  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
+  AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
+    AC_MSG_RESULT(yes)
+    VLC_ADD_PLUGINS([vcd cdda])
+    AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
+  ])
+
+  AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
+  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
+    AC_MSG_RESULT(yes)
+    VLC_ADD_PLUGINS([vcd cdda])
+    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
+  ])
+
+  if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
+  then
+    VLC_ADD_PLUGINS([vcd cdda])
+  fi
+
+  if test "${SYS}" = "darwin"
+  then
+    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
+    VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
+  fi
+fi
+
+dnl
+dnl  Satellite input module
+dnl
+AC_ARG_ENABLE(satellite,
+  [  --enable-satellite      satellite card support (default disabled)],
+  [ if test "${enable_satellite}" = "yes"
+    then
+      AC_DEFINE(HAVE_SATELLITE, [], 
+      [Define for the VCD plugin using libcdio/libvcdinfo])
+      VLC_ADD_PLUGINS([satellite])
+    fi])
+
+dnl
+dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
+dnl
+AC_ARG_ENABLE(dvb,
+  [  --enable-dvb            DVB-S/T/C card support (default disabled)])
+
+if test "${enable_dvb}" = "yes"
+then
+  AC_ARG_WITH(dvb,
+  [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
+  if test "${with_dvb}" != "no" -a -n "${with_dvb}"
+  then
+    VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
+  fi
+  CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
+  AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
+    if test -z "${with_dvbpsi_tree}"
+    then
+      VLC_ADD_PLUGINS([dvb])
+    else
+      VLC_ADD_BUILTINS([dvb])
+    fi
+  ],[])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  Screen capture module
+dnl
+AC_ARG_ENABLE(screen,
+  [  --enable-screen         Screen capture support (default enabled)])
+if test "${enable_screen}" != "no"; then
+  if test "${SYS}" = "darwin"; then
+    AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
+      VLC_ADD_PLUGINS([screen])
+      VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
+    ])
+  elif test "${SYS}" = "mingw32"; then
+    VLC_ADD_PLUGINS([screen])
+    VLC_ADD_LDFLAGS([screen],[-lgdi32])
+  elif test "${SYS}" = "mingwce"; then
+    CPPFLAGS="${CPPFLAGS_save}"
+  elif test "${SYS}" = "beos"; then
+    VLC_ADD_PLUGINS([screen])
+    VLC_ADD_CXXFLAGS([screen],[])
+    VLC_ADD_LDFLAGS([screen],[-lbe])
+  else
+    CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+    AC_CHECK_HEADERS(X11/Xlib.h, [
+      VLC_ADD_PLUGINS([screen])
+      VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
+      VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
+    ])
+    CPPFLAGS="${CPPFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl  ipv6 plugin - not for QNX yet
+dnl
+if test "${SYS}" != "nto" &&
+   test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+then
+  have_ipv6=false
+  AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[
+    AC_CHECK_LIB(resolv,inet_pton,
+      [have_ipv6=:
+       VLC_ADD_LDFLAGS([ipv6],[-lresolv])])
+  ])
+  AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
+  AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
+    [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) have_ipv6=false])
+  if ${have_ipv6}; then
+    VLC_ADD_PLUGINS([ipv6])
+  fi
+fi
+if test "${SYS}" = "mingw32"
+then
+  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
+  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
+    VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
+fi
+
+dnl
+dnl  ogg demux plugin
+dnl
+AC_ARG_ENABLE(ogg,
+  [  --enable-ogg            Ogg demux support (default enabled)])
+if test "${enable_ogg}" != "no"
+then
+  AC_CHECK_HEADERS(ogg/ogg.h, [
+    AC_CHECK_LIB( ogg, oggpack_read, [
+      VLC_ADD_BUILTINS([ogg])
+      if test "${enable_sout}" != "no"; then
+        VLC_ADD_PLUGINS([mux_ogg])
+      fi
+      VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
+   ],[])
+fi
+
+dnl
+dnl  matroska demux plugin
+dnl
+AC_ARG_ENABLE(mkv,
+  [  --enable-mkv            Matroska demux support (default enabled)])
+if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
+  AC_LANG_PUSH(C++)
+  AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
+    AC_MSG_CHECKING(for libebml version >= 0.7.3)
+    AC_EGREP_CPP(yes,
+      [#include <ebml/EbmlVersion.h>
+       #ifdef LIBEBML_VERSION
+       #if LIBEBML_VERSION >= 0x000703
+       yes
+       #endif
+       #endif],
+      [AC_MSG_RESULT([yes])
+        AC_CHECK_HEADERS(matroska/KaxVersion.h, [
+          AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
+          AC_EGREP_CPP(yes,
+            [#include <matroska/KaxVersion.h>
+             #ifdef LIBMATROSKA_VERSION
+             #if LIBMATROSKA_VERSION >= 0x000705
+             yes
+             #endif
+             #endif],
+            [AC_MSG_RESULT([yes])
+              AC_CHECK_HEADERS(matroska/KaxAttachments.h)
+              VLC_ADD_CXXFLAGS([mkv],[])
+              if test "${SYS}" = "darwin"; then
+                VLC_ADD_CXXFLAGS([mkv],[-O1])
+              fi
+              AC_CHECK_LIB(ebml_pic, main, [
+                # We have ebml_pic, that's good, we can build an mkv.so plugin !
+                VLC_ADD_PLUGINS([mkv])
+                VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
+              ], [
+                AC_CHECK_LIB(ebml, main, [
+                  # We only have libebml, make mkv.a a builtin
+                  VLC_ADD_BUILTINS([mkv])
+                  VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
+                ])
+              ])
+            ],
+            [AC_MSG_RESULT([no])
+              AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
+          ])
+        ])
+      ],
+      [AC_MSG_RESULT([no])
+        AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
+    ])
+  ])
+  AC_LANG_POP(C++)
+fi
+
+dnl
+dnl  modplug demux plugin
+dnl
+AC_ARG_ENABLE(mod,
+  [  --enable-mod            Mod demux support (default enabled)])
+if test "${enable_mod}" != "no"
+then
+  AC_CHECK_HEADERS(libmodplug/modplug.h, [
+    VLC_ADD_PLUGINS([mod])
+    VLC_ADD_CXXFLAGS([mod],[])
+    VLC_ADD_LDFLAGS([mod],[-lmodplug])])
+fi
+
+dnl
+dnl  Codec plugins
+dnl
+
+AC_ARG_WITH(,[Codec plugins:])
+
+dnl
+dnl  mad plugin
+dnl
+AC_ARG_ENABLE(mad,
+  [  --enable-mad            libmad module (default enabled)])
+if test "${enable_mad}" != "no"
+then
+  AC_ARG_WITH(mad,
+    [    --with-mad=PATH       path to libmad],[],[])
+  if test "${with_mad}" != "no" -a -n "${with_mad}"
+  then
+    VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
+    VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
+  fi
+
+  AC_ARG_WITH(mad-tree,
+    [    --with-mad-tree=PATH  mad tree for static linking],[],[])
+  if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
+  then
+    real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
+    if test -z "${real_mad_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom libmad
+    AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
+    if test -f ${real_mad_tree}/mad.h
+    then
+      AC_MSG_RESULT(yes)
+      VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
+      VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
+      AC_CHECK_LIB(mad, mad_bit_init, [
+        VLC_ADD_BUILTINS([mpgatofixed32])
+        VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
+        ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
+      ],[])
+      LDFLAGS="${LDFLAGS_save}"
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have mad.h])
+    fi
+  else
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
+    AC_CHECK_HEADERS(mad.h, ,
+      [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
+    AC_CHECK_LIB(mad, mad_bit_init, [
+      VLC_ADD_PLUGINS([mpgatofixed32])
+      VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
+      [ AC_MSG_ERROR([Cannot find libmad library...]) ])
+    CPPFLAGS="${CPPFLAGS_save}"
+    LDFLAGS="${LDFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl   libid3tag support (FIXME!!! doesn't work with new input)
+dnl
+AC_CHECK_HEADERS(id3tag.h, [
+  AC_CHECK_HEADERS(zlib.h, [
+    VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
+    VLC_ADD_PLUGINS([id3tag])]) ])
+
+dnl
+dnl  ffmpeg decoder/demuxer plugin
+dnl
+AC_ARG_ENABLE(ffmpeg,
+[  --enable-ffmpeg         ffmpeg codec (default enabled)])
+if test "${enable_ffmpeg}" != "no"
+then
+  FFMPEG_PATH="${PATH}"
+  AC_ARG_WITH(ffmpeg-config-path,
+    [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
+    [ if test "${with_ffmpeg_config_path}" != "no"
+      then
+        FFMPEG_PATH="${with_ffmpeg_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
+  if test "${FFMPEG_CONFIG}" != "no"
+  then
+    AC_CHECK_HEADERS(ffmpeg/avcodec.h)
+    AC_CHECK_HEADERS(postproc/postprocess.h)
+    VLC_ADD_PLUGINS([ffmpeg])
+    if test "${enable_sout}" != "no"; then
+        VLC_ADD_PLUGINS([stream_out_switcher])
+    fi
+    VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
+  else
+    AC_ARG_WITH(ffmpeg-mp3lame,
+      [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
+      [
+        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
+
+    AC_ARG_WITH(ffmpeg-faac,
+      [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
+      [
+        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
+
+    AC_ARG_WITH(ffmpeg-dts,
+      [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
+      [
+        VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
+
+    AC_ARG_WITH(ffmpeg-zlib,
+      [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
+      [
+        VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
+
+    AC_ARG_WITH(ffmpeg-tree,
+      [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
+
+    dnl
+    dnl test for !(--with-ffmpeg-tree)
+    dnl
+    if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
+      CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
+      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
+      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
+      AC_CHECK_LIB(avcodec, avcodec_init, [
+        VLC_ADD_BUILTINS([ffmpeg])
+        VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
+        if test "${enable_sout}" != "no"; then
+            VLC_ADD_BUILTINS([stream_out_switcher])
+        fi],
+         [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ])
+      AC_CHECK_LIB(avformat, av_open_input_stream, [
+        AC_DEFINE(HAVE_LIBAVFORMAT, 1,
+        [Define if you have ffmpeg's libavformat.])
+        VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz])
+      LDFLAGS="${LDFLAGS_save}"
+      CPPFLAGS="${CPPFLAGS_save}"
+    fi
+
+    dnl
+    dnl test for --with-ffmpeg-tree
+    dnl
+    if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
+      AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
+      real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
+      if test -z "${real_ffmpeg_tree}"; then
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
+      fi
+      if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
+        dnl  The given libavcodec wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
+      fi
+      if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
+        dnl  The given libavcodec wasn't built with --enable-pp
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
+      fi
+      dnl  Use a custom libffmpeg
+      AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
+
+      if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
+        if test "${with_ffmpeg_zlib}" != "yes"; then
+          VLC_ADD_LDFLAGS([ffmpeg],[-lz])
+        fi
+      fi
+      if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
+        if test "${with_ffmpeg_mp3lame}" != "yes"; then
+          VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
+        fi
+      fi
+      if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
+        if test "${with_ffmpeg_faac}" != "yes"; then
+          VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
+        fi
+      fi
+      if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
+        if test "${with_ffmpeg_dts}" != "yes"; then
+          VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
+        fi
+      fi
+      if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
+        VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
+      fi
+      if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
+        VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
+      fi
+      if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
+        VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
+      fi
+
+      VLC_ADD_BUILTINS([ffmpeg])
+      if test "${enable_sout}" != "no"; then
+          VLC_ADD_BUILTINS([stream_out_switcher])
+      fi
+      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
+      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
+
+      if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
+        AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
+        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
+        VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
+      fi
+    fi
+  fi
+fi
+
+dnl
+dnl  ffmpeg decoder/demuxer plugin
+dnl
+AC_ARG_ENABLE(ffmpegaltivec,
+[  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
+if test "${enable_ffmpegaltivec}" == "yes"
+then
+  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
+    AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
+    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
+    if test -z "${real_ffmpeg_tree}"; then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
+    fi
+    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
+      dnl  The given libavcodecaltivec wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
+    fi
+    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
+      dnl  The given libavcodecaltivec wasn't built with --enable-pp
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
+    fi
+    dnl  Use a custom libffmpeg
+    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
+    VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
+    VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
+    VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
+
+    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
+      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
+      VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
+      VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
+    fi
+    VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
+    VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
+  fi
+fi
+
+dnl
+dnl  faad decoder plugin
+dnl
+AC_ARG_ENABLE(faad,
+[  --enable-faad           faad codec (default disabled)])
+if test "${enable_faad}" = "yes"
+then
+  AC_ARG_WITH(faad-tree,
+  [    --with-faad-tree=PATH faad tree for static linking])
+  if test -n "${with_faad_tree}"
+  then
+    AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
+    real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
+    if test -z "${real_faad_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
+    fi
+    if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
+    then
+      dnl  Use a custom faad
+      AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
+      VLC_ADD_BUILTINS([faad])
+      VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
+      VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
+    else
+      dnl  The given libfaad wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
+    fi
+  else
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
+    AC_CHECK_HEADERS(faad.h, ,
+      [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
+    AC_CHECK_LIB(faad, faacDecOpen, [
+      VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
+      AC_CHECK_LIB(faad, NeAACDecOpen, [
+        VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
+        [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
+    LDFLAGS="${LDFLAGS_save}"
+    CPPFLAGS="${CPPFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl twolame encoder plugin
+dnl
+AC_ARG_ENABLE(twolame,
+[  --enable-twolame        twolame codec (default disabled)])
+if test "${enable_twolame}" = "yes"
+then
+  AC_ARG_WITH(twolame-tree,
+  [    --with-twolame-tree=PATH twolame tree for static linking])
+  if test -n "${with_twolame_tree}"
+  then
+    AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
+    real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
+    if test -z "${real_twolame_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
+    fi
+    if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
+    then
+      dnl  Use a custom twolame
+      AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
+      VLC_ADD_BUILTINS([twolame])
+      VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
+      VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
+    else
+      dnl  The given libtwolame wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
+    fi
+  else
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
+    AC_CHECK_HEADERS(twolame.h, ,
+      [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
+    AC_CHECK_LIB(twolame, twolame_init, [
+      VLC_ADD_PLUGINS([twolame])
+      VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
+        [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
+    LDFLAGS="${LDFLAGS_save}"  
+    CPPFLAGS="${CPPFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl  QuickTime plugin
+dnl
+AC_ARG_ENABLE(quicktime,
+  [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
+if test "${enable_quicktime}" != "no" &&
+  (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
+then
+  if test "${SYS}" = "mingw32"; then
+    : # do nothing
+  else
+  AC_CHECK_HEADERS(QuickTime/QuickTime.h,
+    [ VLC_ADD_BUILTINS([quicktime])
+      VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
+    ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
+  fi
+fi
+
+dnl
+dnl MP4 module
+dnl
+AC_CHECK_HEADERS(zlib.h, [
+  VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
+] )
+
+AC_CHECK_HEADERS(sysfs/libsysfs.h, [
+  VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
+] )
+
+dnl
+dnl skins2 module
+dnl
+AC_CHECK_HEADERS(libtar.h, [
+  VLC_ADD_LDFLAGS([skins2],[-ltar])
+] )
+
+
+
+dnl
+dnl A52/AC3 decoder plugin
+dnl
+AC_ARG_ENABLE(a52,
+  [  --enable-a52            A/52 support with liba52 (default enabled)])
+if test "${enable_a52}" != "no"
+then
+  AC_ARG_WITH(a52,
+    [    --with-a52=PATH       a52 headers and libraries])
+  AC_ARG_WITH(a52-tree,
+    [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
+  if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
+  then
+    real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
+    if test -z "${real_a52_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom a52dec
+    AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
+    if test -f ${real_a52_tree}/include/a52.h
+    then
+      AC_MSG_RESULT(yes)
+      VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
+      VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
+      AC_CHECK_LIB(a52, a52_free, [
+        VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
+        VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
+        ],[
+        if test -f ${real_a52_tree}/liba52/.libs/liba52.a
+        then
+          AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
+        else
+          AC_MSG_ERROR([the specified tree hasn't been compiled])
+        fi
+      ])
+      LDFLAGS="${LDFLAGS_save}"
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have a52.h])
+    fi
+  else
+    if test -z "${with_a52}"
+    then
+      LDFLAGS_test=""
+      CPPFLAGS_test=""
+    else
+      LDFLAGS_test="-L${with_a52}/lib"
+      CPPFLAGS_test="-I${with_a52}/include"
+    fi
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
+    AC_CHECK_HEADERS(a52dec/a52.h, [
+      AC_CHECK_LIB(a52, a52_free, [
+        VLC_ADD_PLUGINS([a52tofloat32])
+        VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
+        VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
+      ],[
+        AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
+      ])
+    ])
+    CPPFLAGS="${CPPFLAGS_save}"
+    LDFLAGS="${LDFLAGS_save}"
+  fi
+fi
+
+AC_ARG_WITH(a52-fixed,
+      [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
+      [
+        VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
+
+dnl
+dnl DTS Coherent Acoustics decoder plugin
+dnl
+AC_ARG_ENABLE(dts,
+  [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
+if test "${enable_dts}" != "no"; then
+  AC_ARG_WITH(dts-tree,
+    [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
+  if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
+  then
+    real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
+    if test -z "${real_dts_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom libdts
+    AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
+    if test -f ${real_dts_tree}/include/dts.h
+    then
+      AC_MSG_RESULT(yes)
+      VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
+      VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
+      AC_CHECK_LIB(dts_pic, dts_free, [
+        VLC_ADD_PLUGINS([dtstofloat32])
+        VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
+        ],[
+        AC_CHECK_LIB(dts, dts_free, [
+          VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
+          ],[
+          if test -f ${real_dts_tree}/libdts/libdts.a
+          then
+            AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
+          else
+            AC_MSG_ERROR([the specified tree hasn't been compiled])
+          fi
+        ])
+      ])
+      LDFLAGS="${LDFLAGS_save}"
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have dts.h])
+    fi
+  else
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
+    AC_CHECK_HEADERS(dts.h, [
+      AC_CHECK_LIB(dts_pic, dts_free, [
+        VLC_ADD_PLUGINS([dtstofloat32])
+        VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
+      ],[
+        AC_CHECK_LIB(dts, dts_free, [
+          VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
+        ],[
+          if test "${enable_dts}" = "yes"; then
+            AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
+          fi
+        ])
+      ])
+    ])
+    LDFLAGS="${LDFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl  Flac plugin
+dnl
+AC_ARG_ENABLE(flac,
+  [  --enable-flac           flac decoder support (default disabled)])
+if test "${enable_flac}" = "yes"
+then
+  AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
+    VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
+   ],[])
+fi
+
+dnl
+dnl  Libmpeg2 plugin
+dnl
+AC_ARG_ENABLE(libmpeg2,
+  [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
+if test "${enable_libmpeg2}" != "no"
+then
+  AC_ARG_WITH(libmpeg2-tree,
+  [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
+  if test -n "${with_libmpeg2_tree}"
+  then
+    AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
+    real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
+    if test -z "${real_libmpeg2_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
+    fi
+    if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
+    then
+      dnl  Use a custom libmpeg2
+      AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
+      VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
+      VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
+      eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
+    else
+      dnl  The given libmpeg2 wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
+      AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
+      AC_EGREP_CPP(yes,
+        [#include <mpeg2dec/mpeg2.h>
+         #ifdef MPEG2_RELEASE
+         #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
+         yes
+         #endif
+         #endif],
+        [AC_MSG_RESULT([yes])
+	 VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
+        [AC_MSG_RESULT([no])
+          AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
+
+      [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
+    )
+  fi
+fi
+
+dnl
+dnl  Vorbis plugin
+dnl
+AC_ARG_ENABLE(vorbis,
+  [  --enable-vorbis         Vorbis decoder support (default enabled)])
+if test "${enable_vorbis}" != "no"
+then
+  AC_CHECK_HEADERS(vorbis/codec.h, [
+    VLC_ADD_BUILTINS([vorbis])
+    VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
+
+  AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
+    VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
+fi
+
+dnl
+dnl  Tremor plugin
+dnl
+AC_ARG_ENABLE(tremor,
+  [  --enable-tremor         Tremor decoder support (default disabled)])
+if test "${enable_tremor}" = "yes"
+then
+  AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
+    VLC_ADD_PLUGINS([tremor])
+    VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
+   ],[])
+fi
+
+dnl
+dnl  Speex plugin
+dnl
+AC_ARG_ENABLE(speex,
+  [  --enable-speex          Speex decoder support (default enabled)])
+if test "${enable_speex}" != "no"
+then
+  AC_CHECK_HEADERS(speex/speex.h, [
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
+    AC_CHECK_LIB(speex, speex_decode_int, [
+      VLC_ADD_BUILTINS([speex])
+      VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
+      [ AC_MSG_RESULT([no])
+        AC_MSG_WARN([Your libspeex is too old, please get the development
+                     version.]) ],[])
+    LDFLAGS="${LDFLAGS_save}"
+    ],[])
+fi
+
+dnl
+dnl  tarkin decoder plugin
+dnl
+AC_ARG_ENABLE(tarkin,
+[  --enable-tarkin         experimental tarkin codec (default disabled)])
+if test "${enable_tarkin}" = "yes"
+then
+  AC_ARG_WITH(tarkin-tree,
+  [    --with-tarkin-tree=PATH tarkin tree for static linking])
+  if test -n "${with_tarkin_tree}"
+  then
+    AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
+    real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
+    if test -f "${real_tarkin_tree}/tarkin.o"
+    then
+      VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
+      VLC_ADD_LDFLAGS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
+      AC_MSG_RESULT(yes)
+    else
+      dnl  The given tarkin tree wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
+                    make sure you compiled tarkin in ${with_tarkin_tree}])
+    fi
+  fi
+fi
+
+dnl
+dnl  theora decoder plugin
+dnl
+AC_ARG_ENABLE(theora,
+[  --enable-theora         experimental theora codec (default disabled)])
+if test "${enable_theora}" = "yes"
+then
+  AC_CHECK_HEADERS(theora/theora.h, [
+    AC_CHECK_LIB(theora, theora_granule_time, [
+      if test "${SYS}" = "mingw32" -o test "${SYS}" = "linux"; then
+	VLC_ADD_BUILTINS([theora])
+      else
+        VLC_ADD_BUILTINS([theora])
+      fi
+      theora_libs="-ltheora -logg"
+      VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
+      AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
+You also need to check that you have a libogg posterior to the 1.0 release.])],
+      [-logg])
+  ])
+fi
+
+dnl
+dnl  dirac decoder plugin
+dnl
+AC_ARG_ENABLE(dirac,
+[  --enable-dirac          experimental dirac codec (default disabled)])
+if test "${enable_dirac}" = "yes"; then
+  AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
+    AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
+      VLC_ADD_PLUGINS([dirac])
+      VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -ldirac_motionest -ldirac_common]) ],[
+      AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
+      [-ldirac_common])
+  ])
+fi
+
+dnl
+dnl  PNG decoder module
+dnl
+AC_ARG_ENABLE(png,
+  [  --enable-png            PNG support (default enabled)])
+if test "${enable_png}" != "no"; then
+AC_CHECK_HEADERS(png.h, [
+  LDFLAGS="${LDFLAGS_save} -lz"
+  AC_CHECK_LIB(png, png_set_rows, [
+    VLC_ADD_LDFLAGS([png],[-lpng -lz])
+    AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
+    [],[-lz])
+  LDFLAGS="${LDFLAGS_save}"
+  ])
+fi
+
+dnl
+dnl H264 encoder plugin (using libx264)
+dnl
+AC_ARG_ENABLE(x264,
+  [  --enable-x264           H264 encoding support with libx264 (default enabled)])
+if test "${enable_x264}" != "no"; then
+  AC_ARG_WITH(x264-tree,
+    [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
+  if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
+  then
+    real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
+    if test -z "${real_x264_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom libx264
+    AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
+    if test -f ${real_x264_tree}/x264.h
+    then
+      AC_MSG_RESULT(yes)
+      VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
+      VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
+      AC_CHECK_LIB(x264, x264_encoder_open, [
+        VLC_ADD_LDFLAGS([x264],[-lx264])
+      ],[
+        AC_MSG_ERROR([the specified tree hasn't been compiled])
+      ])
+      LDFLAGS="${LDFLAGS_save}"
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have x264.h])
+    fi
+  else
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
+    AC_CHECK_HEADERS(x264.h, [
+      AC_CHECK_LIB(x264, x264_encoder_open, [
+        VLC_ADD_PLUGINS([x264])
+        VLC_ADD_LDFLAGS([x264],[-lx264])
+      ],[
+        if test "${enable_x264}" = "yes"; then
+            AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
+          fi
+      ])
+    ])
+    LDFLAGS="${LDFLAGS_save}"
+  fi
+fi
+
+dnl
+dnl  CMML plugin
+dnl
+AC_ARG_ENABLE(cmml,
+  [  --enable-cmml           CMML support (default enabled)])
+if test "${enable_cmml}" != "no"
+then
+  VLC_ADD_BUILTINS([cmml])
+fi
+
+
+dnl
+dnl  Video plugins
+dnl
+
+AC_ARG_WITH(,[Video plugins:])
+
+dnl Check for DPMS
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  AC_CHECK_HEADERS(X11/extensions/dpms.h, [
+    AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
+    AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
+                Define if <X11/extensions/dpms.h> defines DPMSInfo.)
+    ],[
+      AC_MSG_RESULT(no)
+    ])
+  ],,[
+    #include <X11/Xlib.h>
+  ])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  X11 module
+dnl  (enabled by default except on win32)
+dnl
+AC_ARG_ENABLE(x11,
+  [  --enable-x11            X11 support (default enabled)])
+if test "${enable_x11}" != "no" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_x11}" = "yes"); then
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  AC_CHECK_HEADERS(X11/Xlib.h, [
+    VLC_ADD_PLUGINS([x11])
+    VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
+    VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
+  ])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  XVideo module
+dnl  (enabled by default except on win32)
+dnl
+AC_ARG_ENABLE(xvideo,
+  [  --enable-xvideo         XVideo support (default enabled)])
+if test "${enable_xvideo}" != "no" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_xvideo}" = "yes"); then
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  AC_CHECK_HEADERS(X11/extensions/Xv.h, [
+    CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
+    AC_CHECK_LIB(Xv,XvPutImage,[
+      # If libXv.so is available, xvideo can be a plugin. Otherwise, we
+      # test for libXv_pic.
+      if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
+        VLC_ADD_PLUGINS([xvideo])
+        VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
+        VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
+      else
+        AC_CHECK_LIB(Xv_pic,XvPutImage,[
+          VLC_ADD_PLUGINS([xvideo])
+          VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
+          VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
+        ],[
+          VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
+          VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
+        ])
+      fi
+    ])
+    CFLAGS="${CFLAGS_save}"
+  ]
+  CPPFLAGS="${CPPFLAGS_save}")
+fi
+
+dnl
+dnl  GLX module
+dnl  (enabled by default except on win32)
+dnl
+AC_ARG_ENABLE(glx,
+  [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
+if test "${enable_glx}" != "no" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_glx}" = "yes"); then
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  AC_CHECK_HEADERS(X11/Xlib.h, [
+    AC_CHECK_HEADERS(GL/glx.h, [
+      VLC_ADD_PLUGINS([glx])
+      VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
+      VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
+  ]) ])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  Check for the Xinerama extension
+dnl
+if test "${enable_xvideo}" != "no" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_xvideo}" = "yes"); then
+  ac_cv_have_xinerama="no"
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
+  AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
+    AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
+      VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
+      VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
+      VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
+      ac_cv_have_xinerama="yes"
+    ],[
+      AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
+        VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
+        VLC_ADD_LDFLAGS([x11],[-lXinerama])
+        VLC_ADD_LDFLAGS([glx],[-lXinerama])
+        ac_cv_have_xinerama="yes"
+      ])
+    ])
+  ])
+  if test "${ac_cv_have_xinerama}" = "yes"; then
+    AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
+  fi
+  CFLAGS="${CFLAGS_save}"
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  OpenGL module
+dnl  (enabled by default except on beos)
+dnl
+AC_ARG_ENABLE(opengl,
+  [  --enable-opengl         OpenGL support (default enabled)])
+if test "${enable_opengl}" != "no" &&
+   test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
+  if test "${SYS}" != "darwin"; then
+    AC_CHECK_HEADERS(GL/gl.h, [
+      VLC_ADD_PLUGINS([opengl])
+      if test "${SYS}" != "mingw32"; then
+        VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
+      else
+        VLC_ADD_LDFLAGS([opengl],[-lopengl32])
+      fi
+    ])
+  else
+    dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
+    VLC_ADD_PLUGINS([opengl])
+    VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
+  fi
+fi
+
+dnl
+dnl  SDL module
+dnl
+AC_ARG_ENABLE(sdl,
+  [  --enable-sdl            SDL support (default enabled)])
+if test "${enable_sdl}" != "no"
+then
+  SDL_PATH="${PATH}"
+  AC_ARG_WITH(sdl-config-path,
+    [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
+    [ if test "${with_sdl_config_path}" != "no"
+      then
+        SDL_PATH="${with_sdl_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
+  SDL_CONFIG="${SDL12_CONFIG}"
+  SDL_HEADER="SDL12/SDL.h"
+  if test "${SDL_CONFIG}" = "no"
+  then
+    AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
+    SDL_CONFIG=${SDL11_CONFIG}
+    SDL_HEADER="SDL11/SDL.h"
+  fi
+  if test "${SDL_CONFIG}" = "no"
+  then
+    AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
+    SDL_HEADER="SDL/SDL.h"
+  fi
+  # check for cross-compiling
+  SDL_PREFIX=
+  AC_ARG_WITH(sdl-prefix,
+    [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
+                               e.g use as:
+                               --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
+  if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
+  then
+    SDL_PREFIX="--prefix=${with_sdl_prefix}"
+  fi
+  if test "${SDL_CONFIG}" != "no"
+  then
+    VLC_ADD_PLUGINS([vout_sdl aout_sdl])
+    VLC_ADD_CFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
+    VLC_ADD_LDFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
+    CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
+    AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
+      <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
+      [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
+          As a last resort we also test for SDL.h presence),
+      [ AC_MSG_ERROR([The development package for SDL is not installed.
+Please install it and try again. Alternatively you can also configure with
+--disable-sdl.])
+      ])])
+    CPPFLAGS="${CPPFLAGS_save}"
+    if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
+    then
+      AC_MSG_ERROR([The development package for SDL is not installed.
+Please install it and try again. Alternatively you can also configure with
+--disable-sdl.])
+    fi
+  elif test "${enable_sdl}" =  "yes"
+  then
+    AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
+from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
+    ])
+  fi
+fi
+
+dnl
+dnl  freetype module
+dnl
+AC_ARG_ENABLE(freetype,
+  [  --enable-freetype       freetype support (default enabled)])
+AC_ARG_ENABLE(fribidi,
+  [  --enable-fribidi        fribidi support (default enabled)])
+if test "${enable_freetype}" != "no"
+then
+  FREETYPE_PATH="${PATH}"
+  AC_ARG_WITH(freetype-config-path,
+    [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
+    [ if test "${with_freetype_config_path}" != "no"
+      then
+        FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
+
+  if test "${FREETYPE_CONFIG}" != "no"
+  then
+    VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
+    AC_CHECK_HEADERS(Carbon/Carbon.h,
+      [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
+  elif test "${enable_freetype}" =  "yes"
+  then
+    AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
+from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
+    ])
+  fi
+
+  dnl fribidi support
+  if test "${enable_fribidi}" != "no"
+  then
+    FRIBIDI_PATH="${PATH}"
+    AC_ARG_WITH(fribidi-config-path,
+      [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
+      [ if test "${with_fribidi_config_path}" != "no"
+        then
+          FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
+        fi ])
+    AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
+
+    if test "${FRIBIDI_CONFIG}" != "no"
+    then
+      VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
+      VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
+      VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
+      VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
+    fi
+  fi
+fi
+
+dnl
+dnl  libxml2 module
+dnl
+AC_ARG_ENABLE(libxml2,
+  [  --enable-libxml2        libxml2 support (default enabled)])
+if test "${enable_libxml2}" != "no"
+then
+  XML2_PATH="${PATH}"
+  AC_ARG_WITH(xml2-config-path,
+    [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
+    [ if test "${with_xml2_config_path}" != "no"; then
+        XML2_PATH="${with_xml2_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
+  if test "${XML2_CONFIG}" != "no"; then
+    VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
+    dnl depends on the xmlTextReader extension
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
+    AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
+      AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
+        VLC_ADD_PLUGINS([xml]) ],[
+          AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
+          if test "${enable_xml2}" = "yes"; then
+            AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
+          fi])
+       ],[
+      AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
+      if test "${enable_xml2}" = "yes"; then
+        AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
+      fi])
+    LDFLAGS="${LDFLAGS_save}"
+    CPPFLAGS="${CPPFLAGS_save}"
+  else
+    if test "${enable_xml2}" = "yes"; then
+      AC_MSG_ERROR([Could not find libxml2])
+    fi
+  fi
+fi
+
+dnl
+dnl  SVG module
+dnl
+AC_ARG_ENABLE(svg,
+  [  --enable-svg            SVG support (default disabled)])
+if test "${enable_svg}" == "yes"
+then
+  PKG_CHECK_MODULES(SVG, 
+	librsvg-2.0 >= 2.5.0,
+	[
+ 	  VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
+      	  VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
+          VLC_ADD_PLUGINS([svg]) ],
+        [AC_MSG_WARN(SVG library not found)])
+fi
+
+dnl
+dnl  Qt Embedded module
+dnl  (disabled by default)
+dnl
+AC_ARG_ENABLE(qte,
+  [  --enable-qte            QT Embedded support (default disabled)])
+if test "${enable_qte}" = "yes"
+then
+  AC_ARG_WITH(qte,
+  [    --with-qte=PATH       Qt Embedded headers and libraries])
+  if test "${with_qte}" != "no" -a -n "${with_qte}"
+  then
+    VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
+    VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
+  else
+    VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
+    VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
+  fi
+  VLC_ADD_PLUGINS([qte])
+  NEED_QTE_MAIN=yes
+  CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
+  AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
+    AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
+  ] )
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
+dnl
+dnl  Qt Video output module
+dnl  (disabled by default)
+dnl
+dnl AC_ARG_ENABLE(qt_video,
+dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
+dnl if test "${enable_qt_video}" = "yes"
+dnl then
+dnl  VLC_ADD_PLUGINS([qt_video])
+dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
+dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
+dnl   AC_CHECK_LIB(qt-mt,main,[
+dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
+dnl  ],[
+dnl    AC_CHECK_LIB(qt,main,[
+dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
+dnl    ])
+dnl  ])
+dnl  NEED_QTE_MAIN=yes
+dnl  LDFLAGS="${LDFLAGS_save}"
+dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
+dnl fi
+
+dnl
+dnl Roku HD1000 Video output module
+dnl
+AC_ARG_ENABLE(hd1000v,
+  [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
+if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_hd1000v}" = "yes"); then
+  AC_LANG_PUSH([C++])
+  AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
+  [
+    can_build_roku="yes"
+  ],
+  [
+    can_build_roku="no"
+    AC_MSG_WARN([Not building Roku HD1000 compatible video output])
+  ])
+  if test "$can_build_roku" = "yes"
+  then
+    VLC_ADD_PLUGINS([hd1000v])
+    VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
+  fi
+  AC_LANG_POP([C++])
+fi
+
+dnl
+dnl  Windows DirectX module
+dnl
+AC_ARG_ENABLE(directx,
+  [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
+if test "${enable_directx}" != "no"
+then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
+  then
+    AC_ARG_WITH(directx,
+    [    --with-directx=PATH   Win32 DirectX headers])
+    if test -z "${with_directx}"
+    then
+      AC_CHECK_HEADERS(ddraw.h,
+      [ VLC_ADD_BUILTINS([vout_directx aout_directx])
+        VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
+        dnl to be moved when dependance is removed
+        AC_CHECK_HEADERS(GL/gl.h, [
+            VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
+        ]) ])
+    else
+      AC_MSG_CHECKING(for directX headers in ${with_directx})
+      if test -f ${with_directx}/ddraw.h
+      then
+	VLC_ADD_BUILTINS([vout_directx aout_directx])
+        VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
+        VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
+        AC_MSG_RESULT(yes)
+      else
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
+      fi
+    fi
+  fi
+fi
+
+dnl
+dnl  Linux framebuffer module
+dnl
+AC_ARG_ENABLE(fb,
+  [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
+    if test "${enable_fb}" != "no"
+    then
+      AC_CHECK_HEADERS(linux/fb.h, [
+        VLC_ADD_PLUGINS([fb])
+      ])
+    fi
+
+dnl
+dnl  Linux MGA module
+dnl
+AC_ARG_ENABLE(mga,
+  [  --enable-mga            Linux kernel Matrox support (default disabled)],
+  [ if test "${enable_mga}" = "yes"
+    then
+      VLC_ADD_PLUGINS([mga])
+    fi ])
+
+dnl
+dnl  SVGAlib module
+dnl
+AC_ARG_ENABLE(svgalib,
+  [  --enable-svgalib        SVGAlib support (default disabled)])
+if test "${enable_svgalib}" = "yes"
+then
+  VLC_ADD_PLUGINS([svgalib])
+  VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
+fi
+
+dnl
+dnl  GGI module
+dnl
+AC_ARG_ENABLE(ggi,
+  [  --enable-ggi            GGI support (default disabled)])
+if test "${enable_ggi}" = "yes"
+then
+  VLC_ADD_PLUGINS([ggi])
+  VLC_ADD_LDFLAGS([ggi],[-lggi])
+  AC_ARG_WITH(ggi,
+    [    --with-ggi=PATH       path to libggi],
+    [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
+      then
+        VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
+        VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
+      fi ])
+fi
+
+dnl
+dnl  Glide module
+dnl
+AC_ARG_ENABLE(glide,
+  [  --enable-glide          Glide (3dfx) support (default disabled)])
+if test "${enable_glide}" = "yes"
+then
+  VLC_ADD_PLUGINS([glide])
+  VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
+  VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
+  AC_ARG_WITH(glide,
+    [    --with-glide=PATH     path to libglide],
+    [ if test "${with_glide}" != "no" -a -n "${with_glide}"
+      then
+        VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
+        VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
+      fi ])
+fi
+
+dnl
+dnl  AA plugin
+dnl
+AC_ARG_ENABLE(aa,
+  [  --enable-aa             aalib output (default disabled)])
+if test "${enable_aa}" = "yes"
+then
+  AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
+  if test "${have_aa}" = "true"
+  then
+    VLC_ADD_PLUGINS([aa])
+    VLC_ADD_LDFLAGS([aa],[-laa])
+  fi
+fi
+
+dnl
+dnl  libcaca plugin
+dnl
+AC_ARG_ENABLE(caca,
+  [  --enable-caca           libcaca output (default disabled)])
+if test "${enable_caca}" = "yes"
+then
+  CACA_PATH="${PATH}"
+  AC_ARG_WITH(caca-config-path,
+    [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
+    [ if test "${with_caca_config_path}" != "no"
+      then
+        CACA_PATH="${with_caca_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
+  if test "${CACA_CONFIG}" != "no"
+  then
+    VLC_ADD_PLUGINS([caca])
+    VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
+  fi
+fi
+
+dnl
+dnl  win32 GDI plugin
+dnl
+AC_ARG_ENABLE(wingdi,
+  [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
+if test "${enable_wingdi}" != "no"; then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
+    VLC_ADD_BUILTINS([wingdi])
+    VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
+  fi
+  if test "${SYS}" = "mingwce"; then
+    VLC_ADD_PLUGINS([wingdi wingapi])
+  fi
+fi
+
+dnl
+dnl  Audio plugins
+dnl
+
+AC_ARG_WITH(,[Audio plugins:])
+
+dnl
+dnl  OSS /dev/dsp module (enabled by default except on win32)
+dnl
+AC_ARG_ENABLE(oss,
+  [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
+
+if test "${enable_oss}" != "no" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_oss}" = "yes")
+then
+  AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
+    VLC_ADD_PLUGINS([oss])
+    AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
+  ])
+fi
+
+dnl
+dnl  Esound module
+dnl
+AC_ARG_ENABLE(esd,
+  [  --enable-esd            Esound library support (default disabled)],
+  [if test "${enable_esd}" = "yes"
+   then
+     AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+     if test "${ESD_CONFIG}" != "no"
+     then
+       VLC_ADD_PLUGINS([esd])
+       VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
+       VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
+     fi
+   fi])
+
+dnl
+dnl  Portaudio module
+dnl
+AC_ARG_ENABLE(portaudio,
+  [  --enable-portaudio      Portaudio library support (default disabled)],
+  [if test "${enable_portaudio}" = "yes"
+   then
+     VLC_ADD_PLUGINS([portaudio])
+     VLC_ADD_CXXFLAGS([portaudio],[])
+     if test "${SYS}" = "mingw32"; then
+        VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
+     else
+        VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
+     fi
+   fi])
+
+dnl
+dnl  aRts module
+dnl
+AC_ARG_ENABLE(arts,
+  [  --enable-arts           aRts sound server (default disabled)],
+  [if test "${enable_arts}" = "yes"
+   then
+     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
+     if test "${ARTS_CONFIG}" != "no"
+     then
+       VLC_ADD_PLUGINS([arts])
+       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
+       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
+     fi
+   fi])
+
+dnl
+dnl  ALSA module
+dnl
+AC_ARG_ENABLE(alsa,
+  [  --enable-alsa           ALSA sound support for Linux (default enabled)])
+if test "${enable_alsa}" != "no"
+then
+  AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
+  if test "${have_alsa}" = "true"
+  then
+    AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
+                    #define ALSA_PCM_NEW_SW_PARAMS_API
+                    #include <alsa/asoundlib.h>],
+       [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
+        AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
+    VLC_ADD_PLUGINS([alsa])
+    VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
+  else
+    if test "${enable_alsa}" = "yes"; then
+      AC_MSG_ERROR([Could not find ALSA development headers])
+    fi
+  fi
+fi
+
+dnl
+dnl  win32 waveOut plugin
+dnl
+AC_ARG_ENABLE(waveout,
+  [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
+if test "${enable_waveout}" != "no"; then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
+    VLC_ADD_PLUGINS([waveout])
+    VLC_ADD_LDFLAGS([waveout],[-lwinmm])
+  fi
+  if test "${SYS}" = "mingwce"; then
+    VLC_ADD_PLUGINS([waveout])
+  fi
+fi
+
+dnl
+dnl  CoreAudio plugin
+dnl
+AC_ARG_ENABLE(coreaudio,
+  [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
+if test "${enable_coreaudio}" != "no" &&
+  (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
+then
+  AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
+    [ VLC_ADD_BUILTINS([coreaudio auhal])
+      VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
+    ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
+fi
+
+dnl
+dnl  Roku HD1000 audio
+dnl
+AC_ARG_ENABLE(hd1000a,
+  [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
+if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
+  (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
+   test "${enable_hd1000a}" = "yes")
+then
+  AC_LANG_PUSH([C++])
+  AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
+    VLC_ADD_PLUGINS([hd1000a])
+    AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
+  AC_LANG_POP([C++])
+fi
+
+dnl
+dnl  Interface plugins
+dnl
+
+AC_ARG_WITH(,[Interface plugins:])
+
+dnl special case for BeOS
+if test "${SYS}" = "beos"
+then
+    VLC_ADD_BUILTINS([beos])
+fi
+
+dnl
+dnl Skins2 module
+dnl
+AC_ARG_ENABLE(skins2,
+  [  --enable-skins2         Skins2 interface module (experimental)])
+if test "${enable_skins2}" = "yes" ||
+  (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
+   test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
+
+  dnl test for the required libraries
+  skins2_missing_lib="no"
+
+  dnl freetype
+  if test "${FREETYPE_CONFIG}" != "no"; then
+    VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
+  else
+    skins2_missing_lib="yes"
+    if test "${enable_skins2}" = "yes"; then
+      AC_MSG_ERROR([Could not find freetype (required for skins2)])
+    fi
+  fi
+
+  if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
+    VLC_ADD_PLUGINS([skins2])
+    ALIASES="${ALIASES} svlc"
+    VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
+    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
+    VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
+
+  else if test "${skins2_missing_lib}" = "no"; then
+    VLC_ADD_PLUGINS([skins2])
+    ALIASES="${ALIASES} svlc"
+    VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
+    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
+    VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
+  fi fi
+fi
+
+
+dnl dnl
+dnl dnl  Gtk+ module
+dnl dnl
+dnl AC_ARG_ENABLE(gtk,
+dnl   [  --enable-gtk            Gtk+ support (default enabled)])
+dnl if test "${enable_gtk}" != "no"
+dnl then
+dnl   GTK_PATH="${PATH}"
+dnl   AC_ARG_WITH(gtk-config-path,
+dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
+dnl     [ if test "${with_gtk_config_path}" != "no"
+dnl       then
+dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
+dnl       fi ])
+dnl   # look for gtk-config
+dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
+dnl   GTK_CONFIG=${GTK12_CONFIG}
+dnl   if test "${GTK_CONFIG}" = "no"
+dnl   then
+dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
+dnl   fi
+dnl   if test "${GTK_CONFIG}" != "no"
+dnl   then
+dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
+dnl     then
+dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
+dnl     fi
+dnl     if test "${SYS}" != "mingw32"; then
+dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
+dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
+dnl     else
+dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
+dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
+dnl     fi
+dnl     # now look for the gtk.h header
+dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
+dnl     ac_cv_gtk_headers=yes
+dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
+dnl       ac_cv_gtk_headers=no
+dnl       echo "Cannot find gtk development headers."
+dnl     ])
+dnl     if test "${ac_cv_gtk_headers}" = "yes"
+dnl     then
+dnl       VLC_ADD_PLUGINS([gtk])
+dnl       if test "${SYS}" != "mingw32"; then
+dnl         NEED_GTK_MAIN=yes
+dnl       fi
+dnl       ALIASES="${ALIASES} gvlc"
+dnl     fi
+dnl     CPPFLAGS="${CPPFLAGS_save}"
+dnl   fi
+dnl fi
+dnl 
+dnl
+dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
+dnl
+dnl AC_ARG_ENABLE(gtk2,
+dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
+dnl if test "${enable_gtk2}" = "yes"
+dnl then
+dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
+dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
+dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
+dnl   VLC_ADD_PLUGINS([gtk2])
+dnl   if test "${SYS}" != "mingw32"; then
+dnl     NEED_GTK2_MAIN=yes
+dnl   fi
+dnl fi
+
+dnl
+dnl  PDA Gtk+2 module
+dnl
+AC_ARG_ENABLE(pda,
+  [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
+if test "${enable_pda}" = "yes"
+then
+  PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
+  VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
+  VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
+  VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
+  VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
+  VLC_ADD_PLUGINS([pda])
+  if test "${SYS}" != "mingw32"; then
+    NEED_GTK2_MAIN=yes
+  fi
+fi
+
+dnl dnl
+dnl dnl  Gnome module
+dnl dnl
+dnl AC_ARG_ENABLE(gnome,
+dnl   [  --enable-gnome          Gnome interface support (default disabled)],
+dnl   [if test "${enable_gnome}" = "yes"; then
+dnl     # look for gnome-config
+dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+dnl     if test -x ${GNOME_CONFIG}
+dnl     then
+dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
+dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
+dnl     fi
+dnl     # now look for the gnome.h header
+dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
+dnl     AC_CHECK_HEADERS(gnome.h, [
+dnl       VLC_ADD_PLUGINS([gnome])
+dnl       NEED_GTK_MAIN=yes
+dnl       NEED_GNOME_MAIN=yes
+dnl       ALIASES="${ALIASES} gnome-vlc"
+dnl       dnl We need this because of some moronic gnomesupport.h flavours
+dnl       AC_MSG_CHECKING(for strndup in gnome.h)
+dnl       AC_EGREP_HEADER(strndup,gnome.h,[
+dnl         AC_MSG_RESULT(yes)
+dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
+dnl                   Define if <gnome.h> defines strndup.)],[
+dnl         AC_MSG_RESULT(no)])
+dnl      ],[
+dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
+dnl developement tools or remove the --enable-gnome option])
+dnl      ])
+dnl     CPPFLAGS="${CPPFLAGS_save}"
+dnl   fi])
+
+dnl
+dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
+dnl
+dnl AC_ARG_ENABLE(gnome2,
+dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
+dnl if test "${enable_gnome2}" = "yes"
+dnl then
+dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
+dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
+dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
+dnl   VLC_ADD_PLUGINS([gnome2])
+dnl   if test "${SYS}" != "mingw32"; then
+dnl     NEED_GNOME2_MAIN=yes
+dnl   fi
+dnl fi
+
+dnl
+dnl  wxWindows module
+dnl
+AC_ARG_ENABLE(wxwindows,
+  [  --enable-wxwindows      wxWindows support (default enabled)])
+if test "${enable_wxwindows}" != "no"
+then
+  WXWINDOWS_PATH="${PATH}"
+  AC_ARG_WITH(wx-config-path,
+    [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
+    [ if test "${with_wx_config_path}" != "no"
+      then
+        WXWINDOWS_PATH="${with_wx_config_path}:${PATH}"
+      fi ])
+  WXWINDOWS_NAME="wx-config"
+  AC_ARG_WITH(wx-config,
+    [    --with-wx-config=NAME      wx-config name (default is wx-config)],
+    [ if test "${with_wx_config}" != "no"
+      then
+        WXWINDOWS_NAME="${with_wx_config}"
+      fi ])
+  # look for wx-config
+  AC_PATH_PROG(WX_CONFIG, ${WXWINDOWS_NAME}, no, ${WXWINDOWS_PATH})
+  if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
+  then
+    if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
+    then
+      AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
+    fi
+    AC_LANG_PUSH(C++)
+    # Turn this error:
+    #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
+    # into a warning. However better would be to fix playlist.cpp
+    AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
+        [ac_cv_cxx_fpermissive],
+        [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
+         AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
+                        ac_cv_cxx_fpermissive=no)])
+    if test "${ac_cv_cxx_fpermissive}" = "yes"; then
+      VLC_ADD_CXXFLAGS([wxwindows],-fpermissive)
+    fi
+    VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags`])
+    VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`])
+    # now look for the wxprec.h header
+    CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
+    ac_cv_wx_headers=yes
+    AC_CHECK_HEADERS(wx/wxprec.h, , [
+      ac_cv_wx_headers=no
+      echo "Cannot find wxWindows development headers."
+    ])
+    if test "${ac_cv_wx_headers}" = "yes"
+    then
+      VLC_ADD_PLUGINS([wxwindows])
+      ALIASES="${ALIASES} wxvlc"
+    fi
+    CPPFLAGS="${CPPFLAGS_save}"
+    AC_LANG_POP(C++)
+  fi
+fi
+
+dnl
+dnl  WinCE GUI module
+dnl
+if test "${SYS}" = "mingwce"; then
+  VLC_ADD_BUILTINS([wince])
+  VLC_ADD_CXXFLAGS([wince],[])
+  VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
+  dnl Gross hack
+  VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
+elif test "${SYS}" = "mingw32"; then
+  VLC_ADD_CXXFLAGS([wince],[])
+  VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
+  dnl Gross hack
+  VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
+fi
+
+dnl
+dnl Simple test for skins2 dependency
+dnl
+if test "${enable_skins2}" != "no"
+then
+  if test "${WX_CONFIG}" = "no"
+  then
+    AC_MSG_ERROR([The skins2 module depends on the wxWindows development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWindows development package or alternatively you can also configure with: --disable-wxwindows --disable-skins2.])
+  fi
+fi
+
+dnl dnl
+dnl dnl  Qt module
+dnl dnl
+dnl AC_ARG_ENABLE(qt,
+dnl   [  --enable-qt             Qt interface support (default disabled)],
+dnl   [if test "${enable_qt}" = "yes"; then
+dnl      VLC_ADD_PLUGINS([qt])
+dnl      ALIASES="${ALIASES} qvlc"
+dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
+dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
+dnl      AC_CHECK_LIB(qt-mt,main,[
+dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
+dnl      ],[
+dnl        AC_CHECK_LIB(qt,main,[
+dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
+dnl        ])
+dnl      ])
+dnl      LDFLAGS="${LDFLAGS_save}"
+dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
+dnl      if test -x ${QTDIR}/bin/moc
+dnl      then
+dnl        MOC=${QTDIR}/bin/moc
+dnl      else
+dnl        MOC=moc
+dnl      fi
+dnl    fi])
+dnl 
+dnl dnl
+dnl dnl  KDE module
+dnl dnl
+dnl AC_ARG_ENABLE(kde,
+dnl   [  --enable-kde            KDE interface support (default disabled)],
+dnl   [if test "${enable_kde}" = "yes"; then
+dnl      VLC_ADD_PLUGINS([kde])
+dnl      ALIASES="${ALIASES} kvlc"
+dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
+dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
+dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+dnl      AC_CHECK_LIB(kfile,main,[
+dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
+dnl      ])
+dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+dnl      AC_CHECK_LIB(kdeui,main,[
+dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
+dnl      ])
+dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+dnl      AC_CHECK_LIB(kio,main,[
+dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
+dnl      ])
+dnl      LDFLAGS="${LDFLAGS_save}"
+dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
+dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
+dnl      if test -x ${QTDIR}/bin/moc
+dnl      then
+dnl        MOC=${QTDIR}/bin/moc
+dnl      else
+dnl        MOC=moc
+dnl      fi
+dnl    fi])
+
+dnl
+dnl  Opie QT embedded module
+dnl
+AC_ARG_ENABLE(opie,
+  [  --enable-opie           Qt embedded interface support (default disabled)],
+  [if test "${enable_opie}" = "yes"; then
+     AC_ARG_WITH(qte,
+     [    --with-qte=PATH       Qt Embedded headers and libraries])
+     if test "${with_qte}" != "no" -a -n "${with_qte}"
+     then
+       VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
+       VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
+     else
+       VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
+       VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
+     fi
+     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
+     AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
+       AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
+     ] )
+     CPPFLAGS="${CPPFLAGS_save}"
+
+     VLC_ADD_PLUGINS([opie])
+     NEED_QTE_MAIN=yes
+     VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
+     VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
+     if test "${with_qte}" != "no" -a -n "${with_qte}"
+     then
+       MOC=${with_qte}/bin/moc
+     else
+       MOC=${QTDIR}/bin/moc
+     fi
+   fi])
+
+dnl
+dnl  MacOS X module
+dnl
+AC_ARG_ENABLE(macosx,
+  [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
+  [if test "${enable_macosx}" = "yes"
+   then
+     VLC_ADD_BUILTINS([macosx])
+     VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
+   fi],
+  [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
+     VLC_ADD_BUILTINS([macosx])
+     VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
+   )])
+
+dnl
+dnl  QNX RTOS module
+dnl
+AC_ARG_ENABLE(qnx,
+  [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
+    if test "${enable_qnx}" != "no"
+    then
+      AC_CHECK_HEADERS(Ph.h, [
+        VLC_ADD_PLUGINS([qnx])
+        VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
+      ])
+    fi
+
+dnl
+dnl  ncurses module
+dnl
+AC_ARG_ENABLE(ncurses,
+  [  --enable-ncurses        ncurses interface support (default disabled)],
+  [if test "${enable_ncurses}" = "yes"; then
+     VLC_ADD_PLUGINS([ncurses])
+     VLC_ADD_LDFLAGS([ncurses],[-lncurses])
+   fi])
+
+dnl
+dnl  XOSD plugin
+dnl
+AC_ARG_ENABLE(xosd,
+  [  --enable-xosd           xosd interface support (default disabled)])
+if test "${enable_xosd}" = "yes"
+then
+  AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
+  AC_CHECK_LIB(xosd,xosd_set_offset,
+      AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
+    AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
+        AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
+      AC_TRY_COMPILE([#include <xosd.h>],
+         [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
+          AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
+  if test "${have_xosd}" = "true"
+  then
+    VLC_ADD_PLUGINS([xosd])
+    VLC_ADD_LDFLAGS([xosd],[-lxosd])
+  fi
+fi
+
+dnl
+dnl Visualisation plugin
+dnl
+AC_ARG_ENABLE(visual,
+  [  --enable-visual         visualisation plugin (default enabled)])
+if test "${enable_visual}" != "no"
+then
+    :
+fi
+
+dnl
+dnl OpenGL visualisation plugin
+dnl
+AC_ARG_ENABLE(galaktos,
+  [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
+if test "${enable_galaktos}" = "yes"
+then
+  AC_CHECK_HEADERS(GL/gl.h, [
+    VLC_ADD_PLUGINS([galaktos])
+    if test "${SYS}" != "mingw32"; then
+      VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
+    else
+      VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
+    fi
+  ])
+fi
+
+dnl
+dnl  goom visualization plugin
+dnl
+AC_ARG_ENABLE(goom,
+[  --enable-goom           goom visualisation plugin (default disabled)])
+if test "${enable_goom}" = "yes"
+then
+  AC_ARG_WITH(goom-tree,
+    [    --with-goom-tree=PATH goom tree for static linking (required)])
+
+  dnl
+  dnl test for --with-goom-tree
+  dnl
+  if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
+    AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
+    real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
+    if test -z "${real_goom_tree}"; then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
+    fi
+    if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
+      AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
+      VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
+      VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
+    else
+      dnl  The given libgoom2 wasn't built, try to look for the old goom
+      AC_MSG_RESULT(no)
+      AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
+      if test -f "${real_goom_tree}/libgoom.a"; then
+        AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
+        VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
+        VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
+      else
+        dnl  The given libgoom wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
+      fi
+    fi
+  else
+    AC_CHECK_HEADERS(goom/goom.h, [
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
+      AC_CHECK_LIB(goom2, goom_init, [
+        VLC_ADD_PLUGINS([goom])
+        VLC_ADD_LDFLAGS([goom],[-lgoom2])
+      ],[
+        AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
+      ])
+      LDFLAGS="${LDFLAGS_save}"
+    ])
+  fi
+fi
+
+dnl
+dnl  SLP access plugin
+dnl
+AC_ARG_ENABLE(slp,
+  [  --enable-slp            SLP service discovery support (default disabled)])
+if test "${enable_slp}" = "yes"
+then
+  AC_ARG_WITH(slp,
+  [    --with-slp=PATH       libslp headers and libraries])
+  if test -z "${with_slp}"
+  then
+    AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
+    if test "${have_slp}" = "true"
+    then
+      VLC_ADD_PLUGINS([slp])
+      VLC_ADD_LDFLAGS([slp],[-lslp])
+      VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
+    fi
+  else
+    AC_MSG_CHECKING(for slp headers in ${with_slp})
+    if test -f ${with_slp}/slp.h
+    then
+      dnl  Use ${with_slp}/libslp/slp.h
+      AC_MSG_RESULT(yes)
+      VLC_ADD_PLUGINS([slp])
+      VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
+      VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
+      VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
+      AC_DEFINE(HAVE_SLP_H)
+    else
+      dnl  No libslp could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
+    fi
+  fi
+fi
+
+dnl
+dnl DAAP access plugin and services discovery 
+dnl
+AC_ARG_ENABLE(daap,
+  [  --enable-daap	          DAAP shares services discovery support (default enabled)])
+if test "$enable_daap" != "no"
+then
+   PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
+      [ VLC_ADD_PLUGINS([daap])
+       VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
+       VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
+      [AC_MSG_WARN(DAAP library not found)])
+fi
+
+dnl
+dnl  Lirc plugin
+dnl
+AC_ARG_ENABLE(lirc,
+  [  --enable-lirc           lirc support (default disabled)])
+if test "${enable_lirc}" = "yes"
+then
+  AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
+  if test "${have_lirc}" = "true"
+  then
+    VLC_ADD_PLUGINS([lirc])
+    VLC_ADD_LDFLAGS([lirc],[-llirc_client])
+  fi
+fi
+
+dnl 
+dnl  Joystick plugin
+dnl
+AC_ARG_ENABLE(joystick,
+  [  --enable-joystick       joystick control (default enabled)])
+if test "${enable_joystick}" = "yes"; then
+  AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
+fi
+
+dnl
+dnl corba (ORBit) plugin
+dnl
+dnl Default: do not enable corba
+enablecorba=false
+AC_ARG_ENABLE(corba,
+  [  --enable-corba          corba interface support (default disabled)])
+if test "${enable_corba}" = "yes"; then
+      GLIB_VERSION=2.3.2
+      PKG_CHECK_MODULES(CORBA, 
+	ORBit-2.0 >= 2.8.0 \
+	glib-2.0 >= $GLIB_VERSION \
+	gobject-2.0 >= $GLIB_VERSION \
+	gthread-2.0 >= $GLIB_VERSION,
+	[
+	  enablecorba=true
+ 	  VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
+      	  VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
+          VLC_ADD_PLUGINS([corba snapshot]) ],
+        [ enablecorba=false
+	  AC_MSG_WARN(corba library not found) ])
+fi
+AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
+
+AC_ARG_WITH(,[Misc options:])
+
+dnl
+dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
+dnl
+dnl  We give the user the opportunity to specify
+dnl  --with-words=big or --with-words=little ; otherwise, try to guess
+dnl
+AC_ARG_WITH(words,
+  [    --with-words=endianness set endianness (big or little)])
+  case "${with_words}" in
+    big)
+      ac_cv_c_bigendian=yes
+      ;;
+    little)
+      ac_cv_c_bigendian=no
+      ;;
+    *)
+      dnl  Try to guess endianness by matching patterns on a compiled
+      dnl  binary, by looking for an ASCII or EBCDIC string
+      AC_CACHE_CHECK([whether the byte order is big-endian],
+        [ac_cv_c_bigendian],
+        [ac_cv_c_bigendian="unknown"
+        [cat >conftest.c <<EOF
+        short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
+        short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
+        void _a(void) { char*s = (char*)am; s = (char *)ai; }
+        short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
+        short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
+        void _e(void) { char*s = (char*)em; s = (char*)ei; }
+        int main(void) { _a(); _e(); return 0; }
+EOF
+        ]
+        if test -f conftest.c
+        then
+          if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
+              && test -f conftest.o
+          then
+            if test "`strings conftest.o | grep BIGenDianSyS`"
+            then
+              ac_cv_c_bigendian="yes"
+            fi
+            if test "`strings conftest.o | grep LiTTleEnDian`"
+            then
+              ac_cv_c_bigendian="no"
+            fi
+          fi
+        fi
+      ])
+      if test "${ac_cv_c_bigendian}" = "unknown"
+      then
+        AC_MSG_ERROR([Could not guess endianness, please use --with-words])
+      fi
+      ;;
+  esac
+dnl  Now we know what to use for endianness, just put it in the header
+if test "${ac_cv_c_bigendian}" = "yes"
+then
+  AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
+fi
+
+dnl
+dnl  Microsoft ActiveX support
+dnl
+activex=false
+AC_ARG_ENABLE(activex,
+  [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
+if test "${enable_activex}" != "no"
+then
+  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
+  then
+    AC_CHECK_PROGS(MIDL, [midl widl], no)
+    AC_CHECK_HEADERS(ole2.h olectl.h,
+      [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
+        VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
+        AC_CHECK_HEADERS(objsafe.h,
+          VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
+        )
+        activex=:
+      ],
+      [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
+    )
+  fi
+fi
+AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
+AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
+AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
+
+dnl
+dnl  Mozilla plugin
+dnl
+mozilla=false
+AC_ARG_ENABLE(mozilla,
+  [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
+if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
+then
+  AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
+  if test "${MOZILLA_CONFIG}" = "no"
+  then
+    AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
+  else
+    if test "${SYS}" != "mingw32"; then
+      LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
+      AC_CHECK_LIB(Xt,XtStrings,
+       [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
+       [],
+       [[-L${x_libraries} -lX11 -lSM -lICE]
+      ])
+      LDFLAGS="${LDFLAGS_save}"
+    fi
+    mozilla=:
+    dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
+    VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
+    VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
+    AC_CHECK_HEADERS(mozilla-config.h)
+    CPPFLAGS="${CPPFLAGS_save}"
+  fi
+
+dnl special case for mingw32
+elif test "${enable_mozilla}" = "yes"
+then
+  AC_CHECK_TOOL(CYGPATH, cygpath, "")
+  AC_ARG_WITH(mozilla-sdk-path,
+    [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
+    real_mozilla_sdk="/cygdrive/c/Cygwin/Annodex/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32"
+    CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
+    AC_CHECK_HEADERS(mozilla-config.h, [
+      mozilla=:
+      VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -I${real_mozilla_sdk} -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
+      VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -lnspr4 -lplds4 -lplc4 -lembedstring -lxpcomglue -Wl,--kill-at])
+      XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
+      if test -n "${CYGPATH}"; then
+        XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
+        real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
+        XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
+      fi ])
+    CPPFLAGS="${CPPFLAGS_save}"
+  ])
+fi
+
+dnl Not necessarily in ${PATH}
+if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
+  XPIDL="/usr/lib/mozilla/xpidl"
+fi
+AS_IF([test "${MOZILLA_CONFIG}"], [
+  if test -z "${XPIDL_INCL}"; then
+    XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
+    `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
+  fi
+])
+AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
+
+dnl
+dnl  test plugins
+dnl
+AC_ARG_ENABLE(testsuite,
+  [  --enable-testsuite      build test modules (default disabled)])
+if test "${enable_testsuite}" = "yes"
+then
+  TESTS="test1 test2 test3 test4"
+
+  dnl  we define those so that bootstrap sets the right linker
+  VLC_ADD_CXXFLAGS([test2],[])
+  VLC_ADD_OBJCFLAGS([test3],[])
+  dnl  this one is needed until automake knows what to do
+  VLC_ADD_LDFLAGS([test3],[-lobjc])
+
+  VLC_ADD_PLUGINS([${TESTS}])
+  #VLC_ADD_BUILTINS([${TESTS}])
+fi
+
+dnl
+dnl  gtk_main plugin
+dnl
+if test "${NEED_GTK_MAIN}" != "no"
+then
+    VLC_ADD_PLUGINS([gtk_main])
+    VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
+    VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
+fi
+
+if test "${NEED_GNOME_MAIN}" != "no"
+then
+    VLC_ADD_PLUGINS([gnome_main])
+    VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
+    VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
+fi
+
+if test "${NEED_GTK2_MAIN}" != "no"
+then
+    VLC_ADD_PLUGINS([gtk2_main])
+    VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
+    VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
+    VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
+    VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
+fi
+
+if test "${NEED_GNOME2_MAIN}" != "no"
+then
+    VLC_ADD_PLUGINS([gnome2_main])
+    VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
+    VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
+fi
+
+dnl
+dnl  qte_main plugin
+dnl
+if test "${NEED_QTE_MAIN}" != "no"
+then
+    VLC_ADD_PLUGINS([qte_main])
+    VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
+    VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
+    VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
+fi
+
+
+dnl
+dnl  Plugin and builtin checks
+dnl
+builtin_support=false
+plugin_support=:
+
+dnl Support for plugins - this must be AT THE END
+AC_ARG_ENABLE(plugins,
+  [  --disable-plugins       make all plugins built-in (default plugins enabled)],
+  [if test "${enable_plugins}" = "no"
+   then
+     plugin_support=false
+   fi])
+
+dnl Automagically disable plugins if there is no system support for
+dnl dynamically loadable files (.so, .dll, .dylib).
+dnl don't forget vlc-win32 still can load .dll as plugins
+if test "${ac_cv_have_plugins}" = "no"
+then
+  echo "*** Your system doesn't have plugin support. All plugins will be built"
+  echo "statically."
+  plugin_support=false
+fi
+
+dnl Export automake variables
+if ${plugin_support}
+then
+  AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
+  for plugin in `echo ${PLUGINS}`
+  do
+    eval "${plugin}_p=yes"
+  done
+else
+  VLC_ADD_BUILTINS([${PLUGINS}])
+  PLUGINS=""
+fi
+AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
+
+[if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
+then
+  builtin_support=:
+  for builtin in `echo ${BUILTINS}`
+  do
+    eval "${builtin}_b=yes"
+  done
+fi]
+AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
+
+dnl Import conditional variables generated by bootstrap
+VLC_CONDITIONALS
+
+dnl
+dnl  Stuff used by the program
+dnl
+AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
+AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 VideoLAN", [Copyright string])
+AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
+
+VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
+AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
+AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
+
+DATA_PATH="${ac_tool_prefix}/share/vlc"
+AC_SUBST(DATA_PATH)
+PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
+AC_SUBST(PLUGIN_PATH)
+
+dnl
+dnl  Handle substvars that use $(top_srcdir)
+dnl
+VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
+AC_SUBST(VLC_CONFIG)
+CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
+
+dnl
+dnl  Restore *FLAGS
+dnl
+VLC_RESTORE_FLAGS
+
+dnl
+dnl  Create the vlc-config script
+dnl
+LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
+for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
+
+dnl
+dnl  Configuration is finished
+dnl
+AC_SUBST(SYS)
+AC_SUBST(ARCH)
+AC_SUBST(ALIASES)
+AC_SUBST(ASM)
+AC_SUBST(MOC)
+AC_SUBST(WINDRES)
+AC_SUBST(XPIDL)
+AC_SUBST(XPIDL_INCL)
+AC_SUBST(LIBEXT)
+AC_SUBST(INCLUDES)
+AC_SUBST(ALL_LINGUAS)
+
+dnl Import substitutions generated by bootstrap
+VLC_SUBSTS
+
+dnl Create vlc-config.in
+VLC_OUTPUT_VLC_CONFIG_IN
+
+AC_CONFIG_FILES([
+  Makefile
+  activex/Makefile
+  debian/Makefile
+  doc/Makefile
+  intl/Makefile
+  ipkg/Makefile
+  lib/Makefile
+  modules/Makefile
+  mozilla/Makefile
+  m4/Makefile
+  po/Makefile.in
+  share/Makefile
+  src/Makefile
+])
+
+AC_CONFIG_FILES([
+  modules/access/Makefile
+  modules/access/dshow/Makefile
+  modules/access/dvb/Makefile
+  modules/access/mms/Makefile
+  modules/access/pvr/Makefile
+  modules/access/satellite/Makefile
+  modules/access/v4l/Makefile
+  modules/access/cdda/Makefile
+  modules/access/vcd/Makefile
+  modules/access/vcdx/Makefile
+  modules/access/screen/Makefile
+  modules/access_filter/Makefile
+  modules/access_output/Makefile
+  modules/audio_filter/Makefile
+  modules/audio_filter/channel_mixer/Makefile
+  modules/audio_filter/converter/Makefile
+  modules/audio_filter/resampler/Makefile
+  modules/audio_mixer/Makefile
+  modules/audio_output/Makefile
+  modules/codec/Makefile
+  modules/codec/cmml/Makefile
+  modules/codec/dmo/Makefile
+  modules/codec/ffmpeg/Makefile
+  modules/codec/spudec/Makefile
+  modules/control/Makefile
+  modules/control/corba/Makefile
+  modules/demux/Makefile
+  modules/demux/asf/Makefile
+  modules/demux/avi/Makefile
+  modules/demux/mp4/Makefile
+  modules/demux/mpeg/Makefile
+  modules/demux/playlist/Makefile
+  modules/demux/util/Makefile
+  modules/gui/Makefile
+  modules/gui/beos/Makefile
+  modules/gui/pda/Makefile
+  modules/gui/gtk/Makefile
+  modules/gui/gtk2/Makefile
+  modules/gui/kde/Makefile
+  modules/gui/macosx/Makefile
+  modules/gui/qnx/Makefile
+  modules/gui/qt/Makefile
+  modules/gui/skins2/Makefile
+  modules/gui/wxwindows/Makefile
+  modules/gui/wince/Makefile
+  modules/misc/Makefile
+  modules/misc/dummy/Makefile
+  modules/misc/memcpy/Makefile
+  modules/misc/network/Makefile
+  modules/misc/testsuite/Makefile
+  modules/misc/playlist/Makefile
+  modules/misc/xml/Makefile
+  modules/mux/Makefile
+  modules/mux/mpeg/Makefile
+  modules/packetizer/Makefile
+  modules/services_discovery/Makefile
+  modules/stream_out/Makefile
+  modules/stream_out/transrate/Makefile
+  modules/video_chroma/Makefile
+  modules/video_filter/Makefile
+  modules/video_filter/swscale/Makefile
+  modules/video_output/Makefile
+  modules/video_output/directx/Makefile
+  modules/video_output/qte/Makefile
+  modules/video_output/x11/Makefile
+  modules/visualization/Makefile
+  modules/visualization/visual/Makefile
+  modules/visualization/galaktos/Makefile
+])
+
+dnl Generate makefiles
+AC_OUTPUT
+
+# Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
+# not provided with the source
+${SHELL} ./config.status --file=vlc-config
+chmod 0755 vlc-config
+
+printf "
+vlc configuration
+--------------------
+vlc version           : ${VERSION}
+system                : ${SYS}
+architecture          : ${ARCH}
+build flavour         : "
+test "${enable_debug}" = "yes" && printf "debug "
+test "${enable_cprof}" = "yes" && printf "cprof "
+test "${enable_gprof}" = "yes" && printf "gprof "
+test "${enable_optimizations}" = "yes" && printf "optim "
+test "${enable_release}" = "yes" && printf "release " || printf "devel "
+echo "
+vlc aliases           :${ALIASES}
+
+You can tune the compiler flags in vlc-config.
+To build vlc and its plugins, type \`make'.
+"
+

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/nsISupportsUtils.h
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/nsISupportsUtils.h	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Cywin/nsISupportsUtils.h	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,230 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * 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 mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Pierre Phaneuf <pp at ludusdesign.com>
+ *   Scott Collins <scc at ScottCollins.net>
+ *   Dan Mosedale <dmose at mozilla.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsISupportsUtils_h__
+#define nsISupportsUtils_h__
+
+#ifndef nscore_h___
+#include "nscore.h"
+#endif
+
+#ifndef nsISupportsBase_h__
+#include "nsISupportsBase.h"
+#endif
+
+#ifndef nsError_h__
+#include "nsError.h"
+#endif
+
+#ifndef nsDebug_h___
+#include "nsDebug.h"
+#endif
+
+#ifndef nsISupportsImpl_h__
+#include "nsISupportsImpl.h"
+#endif
+
+/**
+ * Macro for instantiating a new object that implements nsISupports.
+ * Note that you can only use this if you adhere to the no arguments
+ * constructor com policy (which you really should!).
+ * @param _result Where the new instance pointer is stored
+ * @param _type The type of object to call "new" with.
+ */
+#define NS_NEWXPCOM(_result,_type)                                            \
+  PR_BEGIN_MACRO                                                              \
+    _result = new _type();                                                    \
+  PR_END_MACRO
+
+/**
+ * Macro for deleting an object that implements nsISupports.
+ * @param _ptr The object to delete.
+ */
+#define NS_DELETEXPCOM(_ptr)                                                  \
+  PR_BEGIN_MACRO                                                              \
+    delete (_ptr);                                                            \
+  PR_END_MACRO
+
+/**
+ * Macro for adding a reference to an interface.
+ * @param _ptr The interface pointer.
+ */
+#define NS_ADDREF(_ptr) \
+  (_ptr)->AddRef()
+
+/**
+ * Macro for adding a reference to this. This macro should be used
+ * because NS_ADDREF (when tracing) may require an ambiguous cast
+ * from the pointers primary type to nsISupports. This macro sidesteps
+ * that entire problem.
+ */
+#define NS_ADDREF_THIS() \
+  AddRef()
+
+
+extern "C++" {
+// ...because some one is accidentally including this file inside
+// an |extern "C"|
+
+
+// Making this a |inline| |template| allows |expr| to be evaluated only once,
+// yet still denies you the ability to |AddRef()| an |nsCOMPtr|.
+template <class T>
+inline
+nsrefcnt
+ns_if_addref( T expr )
+{
+    return expr ? expr->AddRef() : 0;
+}
+
+} /* extern "C++" */
+
+/**
+ * Macro for adding a reference to an interface that checks for NULL.
+ * @param _expr The interface pointer.
+ */
+#define NS_IF_ADDREF(_expr) ns_if_addref(_expr)
+
+/*
+ * Given these declarations, it explicitly OK and efficient to end a `getter' with:
+ *
+ *    NS_IF_ADDREF(*result = mThing);
+ *
+ * even if |mThing| is an |nsCOMPtr|.  If |mThing| is an |nsCOMPtr|, however, it is still
+ * _illegal_ to say |NS_IF_ADDREF(mThing)|.
+ */
+
+/**
+ * Macro for releasing a reference to an interface.
+ * @param _ptr The interface pointer.
+ */
+#define NS_RELEASE(_ptr)                                                      \
+  PR_BEGIN_MACRO                                                              \
+    (_ptr)->Release();                                                        \
+    (_ptr) = 0;                                                               \
+  PR_END_MACRO
+
+/**
+ * Macro for releasing a reference to an interface.
+ * @param _ptr The interface pointer.
+ */
+#define NS_RELEASE_THIS() \
+    Release()
+
+/**
+ * Macro for releasing a reference to an interface, except that this
+ * macro preserves the return value from the underlying Release call.
+ * The interface pointer argument will only be NULLed if the reference count
+ * goes to zero.
+ *
+ * @param _ptr The interface pointer.
+ */
+#define NS_RELEASE2(_ptr,_rv)                                                 \
+  PR_BEGIN_MACRO                                                              \
+    _rv = (_ptr)->Release();                                                  \
+    if (0 == (_rv)) (_ptr) = 0;                                               \
+  PR_END_MACRO
+
+/**
+ * Macro for releasing a reference to an interface that checks for NULL;
+ * @param _ptr The interface pointer.
+ */
+#define NS_IF_RELEASE(_ptr)                                                   \
+  PR_BEGIN_MACRO                                                              \
+    if (_ptr) {                                                               \
+      (_ptr)->Release();                                                      \
+      (_ptr) = 0;                                                             \
+    }                                                                         \
+  PR_END_MACRO
+
+/*
+ * Often you have to cast an implementation pointer, e.g., |this|, to an
+ * |nsISupports*|, but because you have multiple inheritance, a simple cast
+ * is ambiguous.  One could simply say, e.g., (given a base |nsIBase|),
+ * |NS_STATIC_CAST(nsIBase*, this)|; but that disguises the fact that what
+ * you are really doing is disambiguating the |nsISupports|.  You could make
+ * that more obvious with a double cast, e.g., |NS_STATIC_CAST(nsISupports*,
+ * NS_STATIC_CAST(nsIBase*, this))|, but that is bulky and harder to read...
+ *
+ * The following macro is clean, short, and obvious.  In the example above,
+ * you would use it like this: |NS_ISUPPORTS_CAST(nsIBase*, this)|.
+ */
+
+#define NS_ISUPPORTS_CAST(__unambiguousBase, __expr) \
+  NS_STATIC_CAST(nsISupports*, NS_STATIC_CAST(__unambiguousBase, __expr))
+
+extern "C++" {
+// ...because some one is accidentally including this file inside
+// an |extern "C"|
+
+class nsISupports;
+
+template <class T>
+struct nsCOMTypeInfo
+{
+    static const nsIID& GetIID() { return T::GetIID(); }
+};
+
+template <>
+struct nsCOMTypeInfo<nsISupports>
+{
+    static const nsIID& GetIID() {
+        static const nsIID iid_NS_ISUPPORTS_IID = NS_ISUPPORTS_IID; return iid_NS_ISUPPORTS_IID;
+    }
+};
+
+#define NS_GET_IID(T) nsCOMTypeInfo<T>::GetIID()
+
+// a type-safe shortcut for calling the |QueryInterface()| member function
+template <class T, class DestinationType>
+inline
+nsresult
+CallQueryInterface( T* aSource, DestinationType** aDestination )
+{
+    NS_PRECONDITION(aSource, "null parameter");
+    NS_PRECONDITION(aDestination, "null parameter");
+    
+    return aSource->QueryInterface(NS_GET_IID(DestinationType),
+                                   NS_REINTERPRET_CAST(void**, aDestination));
+}
+
+} // extern "C++"
+
+#endif /* __nsISupportsUtils_h */

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Build
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Build	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Build	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+
+! [ -x ./configure ] && (./bootstrap)
+
+SYSTEM=`uname | tr A-Z a-z | sed -e s'/_.*$//'`
+
+./Configure.$SYSTEM
+
+# build it!
+make
+
+# ( cd mozilla && make )
+

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Configure.linux
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Configure.linux	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Configure.linux	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,92 @@
+#!/bin/sh -x
+
+set -e
+
+CFLAGS="-g"
+
+arch=`uname -m`
+case "$arch" in
+  i?86)
+    # be compatible with as many x86 chips as pOSSIBLE
+    CFLAGS="$CFLAGS"
+    ;;
+  ppc)
+    # PowerPC doesn't support mixing PIC and non-PIC code, so make sure
+    # everything's compiled as PIC
+    CFLAGS="$CFLAGS -fPIC"
+esac
+
+CPPFLAGS="-I/usr/include -I/usr/include/ebml -I/home/root/Desktop/AFEPlugin/trunk/gecko-sdk/include"
+LDFLAGS="-L/usr/lib -L/home/root/Desktop/AFEPlugin/trunk/gecko-sdk/lib"
+XPIDL=/home/root/Desktop/AFEPlugin/trunk/gecko-sdk/bin/xpidl
+XPIDL_INCL="-I/home/root/Desktop/AFEPlugin/trunk/gecko-sdk/idl"
+
+export CFLAGS CPPFLAGS LDFLAGS XPIDL XPIDL_INCL
+
+[ -x ./configure ] || ( cd ./bootstrap )
+
+exec ./configure \
+ --disable-a52 \
+ --disable-alsa \
+ --disable-caca \
+ --disable-cdda \
+ --disable-cddax \
+ --disable-daap \
+ --disable-debug \
+ --disable-dshow \
+ --disable-dts \
+ --disable-dvb \
+ --disable-dvbpsi \
+ --disable-dvdnav \
+ --disable-dvdread \
+ --disable-faad \
+ --disable-ffmpeg \
+ --disable-freetype \
+ --disable-fribidi \
+ --disable-glx \
+ --disable-gtk \
+ --disable-hd1000v \
+ --disable-httpd \
+ --disable-libcddb \
+ --disable-libcdio \
+ --disable-libmpeg2 \
+ --disable-libxml2 \
+ --disable-livedotcom \
+ --disable-mad \
+ --disable-mkv \
+ --disable-mod \
+ --disable-nls \
+ --disable-opengl \
+ --disable-plugins \
+ --disable-qte \
+ --disable-satellite \
+ --disable-sdl \
+ --disable-skins2 \
+ --disable-sout \
+ --disable-speex \
+ --disable-svg \
+ --disable-tarkin \
+ --disable-toolame \
+ --disable-tremor \
+ --disable-v4l \
+ --disable-vcd \
+ --disable-vcdx \
+ --disable-vlm \
+ --disable-waveout \
+ --disable-wingdi \
+ --disable-wxwindows \
+ --disable-x264 \
+ --enable-cmml \
+ --enable-flac \
+ --enable-mozilla --with-mozilla-sdk-path=/home/root/Desktop/AFEPlugin/trunk/gecko-sdk \
+ --enable-ogg \
+ --enable-optimization \
+ --enable-theora \
+ --enable-vorbis \
+ --enable-x11 \
+ --enable-xvideo \
+ --without-ffmpeg-faac \
+ --without-ffmpeg-mp3lame \
+ --without-libiconv-prefix \
+ "$@" \
+ 2>&1 | tee configure.output

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Makefile.am
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Makefile.am	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-Linux/Makefile.am	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,142 @@
+###############################################################################
+# Building the Mozilla plugin
+###############################################################################
+
+noinst_LIBRARIES = $(noinst_LIBRARIES_mozilla)
+	                                     
+MOSTLYCLEANFILES = $(LIBRARIES_mozilla)
+EXTRA_DIST = $(SOURCES_mozilla) $(DIST_rsrc) vlcintf.idl
+BUILT_SOURCES = $(BUILT_SOURCES_mozilla)
+
+SOURCES_mozilla = \
+	vlcshell.cpp \
+	vlcplugin.cpp \
+	vlcplugin.h \
+	vlcpeer.cpp \
+	vlcpeer.h \
+	vlcstreaminfo.c \
+	vlcstreaminfo.h \
+	support/classinfo.h \
+	$(SOURCES_win32) \
+	$(SOURCES_macosx) \
+	$(SOURCES_unix) \
+	$(NULL)
+
+DIST_rsrc = \
+	npvlc_rc.rc \
+	$(NULL)
+
+# Under Win32, Mozilla plugins need to be named NP******.DLL, but under Unix
+# the common naming scheme is lib******plugin.so. Also, we need npwin.cpp
+# under Win32 and npunix.c under Unix.
+if HAVE_WIN32
+LIBRARIES_mozilla = npvlc$(LIBEXT)
+SOURCES_win32 = support/npwin.cpp
+CPPFLAGS_mozilla_EXTRA = -DXP_WIN -DXP_WIN32
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc.a
+else
+if HAVE_DARWIN
+# We don't define LIBRARIES_mozilla because we'll be using project builder, or not...
+BUNDLE_mozilla = VLC\ Plugin.plugin
+vlc_moz_FLAGS = `$(VLC_CONFIG) --libs vlc builtin pic mozilla`
+moz_CFLAGS = `$(MOZILLA_CONFIG) --cflags plugin java nspr/obsolete nspr oji xpcom xpconnect`
+moz_plugin_FLAGS = -I. -I$(top_builddir) -I$(srcdir)/../include -c -F/System/Library/Frameworks/CoreFoundation.framework $(moz_CFLAGS) -I/Developer/Headers/FlatCarbon -arch ppc -fno-common -fpascal-strings -O0 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -DXP_MACOSX=1 -DNO_X11=1 -DUSE_SYSTEM_CONSOLE=1 -pipe -fmessage-length=0 -g -include mozilla-config.h
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+
+else
+LIBRARIES_mozilla = libvlcplugin$(LIBEXT)
+SOURCES_unix = support/npunix.c
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+endif
+endif
+
+if BUILD_MOZILLA
+if UNTRUE
+noinst_LIBRARIES_mozilla = libplugin.a
+endif
+
+libplugin_a_SOURCES = $(SOURCES_mozilla)
+libplugin_a_CFLAGS = `$(VLC_CONFIG) --cflags mozilla $(pic)` \
+	             $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags mozilla $(pic)` \
+	               $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_DEPENDENCIES = $(DATA_npvlc_rc)
+
+BUILT_SOURCES_mozilla = vlcintf.h
+$(SOURCES_mozilla): vlcintf.h
+
+plugin_DATA = $(LIBRARIES_mozilla) $(BUNDLE_mozilla)
+plugindir = $(libdir)/mozilla/plugins
+$(LIBRARIES_mozilla): $(libplugin_a_OBJECTS) \
+	              $(libplugin_a_DEPENDENCIES) stamp-pic
+	[ `uname` = "Linux" ] \
+	 && ln -sf `$(CXX) --print-file-name=libstdc++.a` . \
+	 || true
+	$(CXXLINK) -L. $(libplugin_a_OBJECTS) $(DATA_npvlc_rc) \
+	  $(LIBRARIES_libvlc) -shared \
+	  `$(VLC_CONFIG) --libs vlc mozilla builtin $(pic)`
+	[ `uname` = "Linux" ] \
+	 && rm libstdc++.a \
+	 || true
+
+vlcintf_xpt_DATA = vlcintf.xpt
+vlcintf_xptdir = $(libdir)/mozilla/components
+vlcintf.xpt: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m typelib -o vlcintf $(XPIDL) $(VLCIDL_FILE)
+
+vlcintf.h: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m header -o vlcintf $(XPIDL) $(VLCIDL_FILE)
+
+if HAVE_WIN32
+DATA_npvlc_rc = $(noinst_npvlc_rc_DATA)
+noinst_npvlc_rc_DATA = npvlc_rc.$(OBJEXT)
+noinst_npvlc_rcdir = $(libdir)
+npvlc_rc.$(OBJEXT): npvlc_rc.rc
+	$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@
+endif
+if HAVE_DARWIN
+VLC\ Plugin.plugin:
+	rm -rf ./VLC\ Plugin.plugin
+	mkdir -p ./VLC\ Plugin.plugin/Contents/MacOS
+	mkdir -p ./VLC\ Plugin.plugin/Contents/Resources
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcplugin.cpp -o ./libplugin_a-vlcplugin.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcshell.cpp -o ./libplugin_a-vlcshell.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/vlcpeer.cpp -o ./libplugin_a-vlcpeer.o
+	/usr/bin/g++3 $(moz_plugin_FLAGS) $(srcdir)/support/npmac.cpp -o ./libplugin_a-npmac.o
+	/usr/bin/g++3 ./libplugin_a-vlcplugin.o ./libplugin_a-vlcshell.o ./libplugin_a-vlcpeer.o ./libplugin_a-npmac.o -o ./VLC\ Plugin.plugin/Contents/MacOS/VLC\ Plugin -L/usr/lib -F/System/Library/Frameworks/CoreFoundation.framework -framework CoreFoundation -arch ppc -bundle -read_only_relocs suppress $(LIBRARIES_libvlc) -dylib $(vlc_moz_FLAGS)
+	cp $(top_srcdir)/extras/MacOSX/plugin/Info.plist ./VLC\ Plugin.plugin/Contents/Info.plist
+	cp $(top_srcdir)/extras/MacOSX/plugin/pbdevelopment.plist ./VLC\ Plugin.plugin/Contents/pbdevelopment.plist
+	cp -r $(top_srcdir)/extras/MacOSX/plugin/English.lproj ./VLC\ Plugin.plugin/Contents/Resources/
+	Rez /Developer/Headers/FlatCarbon/Types.r $(srcdir)/vlc.r -o ./VLC\ Plugin.plugin/Contents/Resources/Vlc\ Plugin.rsrc
+	mkdir ./VLC\ Plugin.plugin/Contents/MacOS/modules
+	cp -r $(top_builddir)/VLC.app/Contents/MacOS/modules/* ./VLC\ Plugin.plugin/Contents/MacOS/modules/
+endif
+endif
+
+###############################################################################
+# Stamp rules
+###############################################################################
+clean: clean-stamp clean-bundle
+clean-stamp:
+	rm -f stamp-pic
+
+stamp-pic: FORCE
+	@for dep in "" `$(VLC_CONFIG) --target builtin $(pic)`; do \
+	  if test "$${dep}" -nt "$(LIBRARIES_mozilla)"; then \
+	    rm -f $@; \
+	    break; \
+	  fi; \
+	done
+	@if test ! -f $@; then printf "" > $@; fi
+
+clean-bundle:
+	rm -rf ./VLC\ Plugin.plugin
+
+###############################################################################
+# Force rule
+###############################################################################
+FORCE:

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Build
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Build	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Build	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+
+! [ -x ./configure ] && (./bootstrap)
+
+SYSTEM=`uname | tr A-Z a-z | sed -e s'/_.*$//'`
+
+./Configure.$SYSTEM
+
+# build it!
+make
+
+# ( cd mozilla && make )
+

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Configure.darwin
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Configure.darwin	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Configure.darwin	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,83 @@
+#!/bin/sh -x
+
+set -e
+
+CC="gcc-4.0"
+CFLAGS="-g"
+export CC CFLAGS
+
+CPPFLAGS="-I/Users/root/VLC/contrib/include -I/Users/root/VLC/gecko-sdk/include"
+LDFLAGS="-L/Users/root/VLC/contrib/lib -L/Users/root/VLC/gecko-sdk/lib"
+PATH="/bin:/usr/bin:/Users/root/VLC/contrib/bin:/Users/root/VLC/gecko-sdk/bin"
+PKG_CONFIG_PATH="/Users/root/VLC/src/contrib/lib/pkgconfig"
+export CPPFLAGS LDFLAGS PATH PKG_CONFIG_PATH
+
+XPIDL=/Users/root/VLC/gecko-sdk/bin/xpidl
+XPIDL_INCL="-I/Users/root/VLC/gecko-sdk/idl"
+export XPIDL XPIDL_INCL
+
+[ -x ./configure ] || ( ./bootstrap )
+
+exec ./configure \
+ --disable-a52 \
+ --disable-caca \
+ --disable-cdda \
+ --disable-cddax \
+ --disable-cmml \
+ --disable-daap \
+ --disable-dshow \
+ --disable-dts \
+ --disable-dvb \
+ --disable-dvbpsi \
+ --disable-dvdnav \
+ --disable-dvdread \
+ --disable-faad \
+ --disable-ffmpeg \
+ --disable-freetype \
+ --disable-fribidi \
+ --disable-glx \
+ --disable-gtk \
+ --disable-hd1000v \
+ --disable-httpd \
+ --disable-libcddb \
+ --disable-libcdio \
+ --disable-libmpeg2 \
+ --disable-libxml2 \
+ --disable-livedotcom \
+ --disable-mad \
+ --disable-mkv \
+ --disable-mod \
+ --disable-nls \
+ --disable-opengl \
+ --disable-qte \
+ --disable-satellite \
+ --disable-sdl \
+ --disable-sdl \
+ --disable-skins2 \
+ --disable-sout \
+ --disable-svg \
+ --disable-tarkin \
+ --disable-toolame \
+ --disable-tremor \
+ --disable-v4l \
+ --disable-vcd \
+ --disable-vcdx \
+ --disable-vlm \
+ --disable-waveout \
+ --disable-wingdi \
+ --disable-wxwindows \
+ --disable-x11 \
+ --disable-x264 \
+ --disable-xvideo \
+ --enable-debug \
+ --enable-flac \
+ --enable-mozilla --with-mozilla-sdk-path=/Users/root/VLC/gecko-sdk \
+ --enable-ogg \
+ --enable-speex \
+ --enable-theora \
+ --enable-vorbis \
+ --without-ffmpeg-faac \
+ --without-ffmpeg-mp3lame \
+ --without-libiconv-prefix \
+ "$@" \
+ 2>&1 | tee configure.output

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.moz.am
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.moz.am	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.moz.am	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,145 @@
+###############################################################################
+# Building the Mozilla plugin
+###############################################################################
+
+noinst_LIBRARIES = $(noinst_LIBRARIES_mozilla)
+	                                     
+MOSTLYCLEANFILES = $(LIBRARIES_mozilla)
+EXTRA_DIST = $(SOURCES_mozilla) $(DIST_rsrc) vlcintf.idl
+BUILT_SOURCES = $(BUILT_SOURCES_mozilla)
+XPIDL=/Users/root/VLC/gecko-sdk/bin/xpidl
+VLCIDL_FILE = "/Users/root/VLC/src/mozilla/vlcintf.idl"
+
+SOURCES_mozilla = \
+	vlcshell.cpp \
+	vlcplugin.cpp \
+	vlcplugin.h \
+	vlcpeer.cpp \
+	vlcpeer.h \
+	vlcstreaminfo.c \
+	vlcstreaminfo.h \
+	support/classinfo.h \
+	$(SOURCES_win32) \
+	$(SOURCES_macosx) \
+	$(SOURCES_unix) \
+	$(NULL)
+
+DIST_rsrc = \
+	npvlc_rc.rc \
+	$(NULL)
+
+# Under Win32, Mozilla plugins need to be named NP******.DLL, but under Unix
+# the common naming scheme is lib******plugin.so. Also, we need npwin.cpp
+# under Win32 and npunix.c under Unix.
+if HAVE_WIN32
+LIBRARIES_mozilla = npvlc$(LIBEXT)
+SOURCES_win32 = support/npwin.cpp
+CPPFLAGS_mozilla_EXTRA = -DXP_WIN -DXP_WIN32
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc.a
+else
+if HAVE_DARWIN
+# We don't define LIBRARIES_mozilla because we'll be using project builder, or not...
+BUNDLE_mozilla = VLC\ Plugin.plugin
+vlc_moz_FLAGS = `$(VLC_CONFIG) --libs vlc builtin pic mozilla`
+moz_CFLAGS = `$(MOZILLA_CONFIG) --cflags plugin java nspr/obsolete nspr oji xpcom xpconnect`
+moz_plugin_FLAGS = -I. -I$(top_builddir) -I$(srcdir)/../include -c -F/System/Library/Frameworks/CoreFoundation.framework $(moz_CFLAGS) -I/Developer/Headers/FlatCarbon -arch ppc -fno-common -fpascal-strings -O0 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -DXP_MACOSX=1 -DNO_X11=1 -DUSE_SYSTEM_CONSOLE=1 -pipe -fmessage-length=0 -g -include mozilla-config.h
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+
+else
+LIBRARIES_mozilla = libvlcplugin$(LIBEXT)
+SOURCES_unix = support/npunix.c
+pic = pic
+LIBRARIES_libvlc = $(top_builddir)/lib/libvlc_pic.a
+endif
+endif
+
+if BUILD_MOZILLA
+if UNTRUE
+noinst_LIBRARIES_mozilla = libplugin.a
+endif
+
+libplugin_a_SOURCES = $(SOURCES_mozilla)
+libplugin_a_CFLAGS = `$(VLC_CONFIG) --cflags mozilla $(pic)` \
+	             $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags mozilla $(pic)` \
+	               $(CPPFLAGS_mozilla_EXTRA) -Imozilla
+libplugin_a_DEPENDENCIES = $(DATA_npvlc_rc)
+
+BUILT_SOURCES_mozilla = vlcintf.h
+$(SOURCES_mozilla): vlcintf.h
+
+plugin_DATA = $(LIBRARIES_mozilla) $(BUNDLE_mozilla)
+plugindir = $(libdir)/mozilla/plugins
+$(LIBRARIES_mozilla): $(libplugin_a_OBJECTS) \
+	              $(libplugin_a_DEPENDENCIES) stamp-pic
+	[ `uname` = "Linux" ] \
+	 && ln -sf `$(CXX) --print-file-name=libstdc++.a` . \
+	 || true
+	$(CXXLINK) -L. $(libplugin_a_OBJECTS) $(DATA_npvlc_rc) \
+	  $(LIBRARIES_libvlc) -shared \
+	  `$(VLC_CONFIG) --libs vlc mozilla builtin $(pic)`
+	[ `uname` = "Linux" ] \
+	 && rm libstdc++.a \
+	 || true
+
+vlcintf_xpt_DATA = vlcintf.xpt
+vlcintf_xptdir = $(libdir)/mozilla/components
+vlcintf.xpt: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m typelib -o vlcintf $(VLCIDL_FILE)
+
+vlcintf.h: vlcintf.idl
+	$(XPIDL) $(XPIDL_INCL) \
+	  -m header -o vlcintf $(VLCIDL_FILE)
+
+if HAVE_WIN32
+DATA_npvlc_rc = $(noinst_npvlc_rc_DATA)
+noinst_npvlc_rc_DATA = npvlc_rc.$(OBJEXT)
+noinst_npvlc_rcdir = $(libdir)
+npvlc_rc.$(OBJEXT): npvlc_rc.rc
+	$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@
+endif
+if HAVE_DARWIN
+VLC\ Plugin.plugin:
+	rm -rf ./VLC\ Plugin.plugin
+	mkdir -p ./VLC\ Plugin.plugin/Contents/MacOS
+	mkdir -p ./VLC\ Plugin.plugin/Contents/Resources
+	/usr/bin/g++ $(moz_plugin_FLAGS) $(srcdir)/vlcplugin.cpp -o ./libplugin_a-vlcplugin.o
+	/usr/bin/g++ $(moz_plugin_FLAGS) $(srcdir)/vlcshell.cpp -o ./libplugin_a-vlcshell.o
+	/usr/bin/g++ $(moz_plugin_FLAGS) $(srcdir)/vlcpeer.cpp -o ./libplugin_a-vlcpeer.o
+	/usr/bin/g++ $(moz_plugin_FLAGS) $(srcdir)/support/npmac.cpp -o ./libplugin_a-npmac.o
+	/usr/bin/gcc $(moz_plugin_FLAGS) $(srcdir)/vlcstreaminfo.c -o ./libplugin_a-vlcstreaminfo.o
+	/usr/bin/g++ ./libplugin_a-vlcplugin.o ./libplugin_a-vlcshell.o ./libplugin_a-vlcpeer.o ./libplugin_a-npmac.o ./libplugin_a-vlcstreaminfo.o -o ./VLC\ Plugin.plugin/Contents/MacOS/VLC\ Plugin -L/usr/lib -F/System/Library/Frameworks/CoreFoundation.framework -framework CoreFoundation -arch ppc -bundle -read_only_relocs suppress $(LIBRARIES_libvlc) -dylib $(vlc_moz_FLAGS)
+	cp $(top_srcdir)/extras/MacOSX/plugin/Info.plist ./VLC\ Plugin.plugin/Contents/Info.plist
+	cp $(top_srcdir)/extras/MacOSX/plugin/pbdevelopment.plist ./VLC\ Plugin.plugin/Contents/pbdevelopment.plist
+	cp -r $(top_srcdir)/extras/MacOSX/plugin/English.lproj ./VLC\ Plugin.plugin/Contents/Resources/
+	/Developer/Tools/Rez /Developer/Headers/FlatCarbon/Types.r $(srcdir)/vlc.r -o ./VLC\ Plugin.plugin/Contents/Resources/Vlc\ Plugin.rsrc
+	mkdir ./VLC\ Plugin.plugin/Contents/MacOS/modules
+	cp -r $(top_builddir)/VLC.app/Contents/MacOS/modules/* ./VLC\ Plugin.plugin/Contents/MacOS/modules/
+endif
+endif
+
+###############################################################################
+# Stamp rules
+###############################################################################
+clean: clean-stamp clean-bundle
+clean-stamp:
+	rm -f stamp-pic
+
+stamp-pic: FORCE
+	@for dep in "" `$(VLC_CONFIG) --target builtin $(pic)`; do \
+	  if test "$${dep}" -nt "$(LIBRARIES_mozilla)"; then \
+	    rm -f $@; \
+	    break; \
+	  fi; \
+	done
+	@if test ! -f $@; then printf "" > $@; fi
+
+clean-bundle:
+	rm -rf ./VLC\ Plugin.plugin
+
+###############################################################################
+# Force rule
+###############################################################################
+FORCE:

Added: AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.src.am
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.src.am	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Modified-MacOS/Makefile.src.am	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,929 @@
+###############################################################################
+# Automake targets and declarations
+###############################################################################
+
+NULL =
+
+# SUBDIRS stores the directories where a "make" is required when building
+# something. DIST_SUBDIRS stores the directories where nothing is built but
+# which have makefiles with distribution information.
+#  - intl should come before modules and . because all the code uses gettext
+#  - modules should come before . because vlc needs the builtins
+#  - . should come before mozilla because the plugin needs libvlc_pic.a
+#  - po should come before . because VLC.app needs the pofiles
+SUBDIRS = intl modules po . mozilla activex share m4 doc
+DIST_SUBDIRS = $(SUBDIRS) src debian ipkg lib
+
+EXTRA_DIST = \
+	HACKING \
+	INSTALL.win32 \
+	vlc.exe.manifest \
+	MAINTAINERS \
+	README.MacOSX.rtf \
+	bootstrap \
+	src/extras/COPYING \
+	toolbox \
+	vlc-config.in.in \
+	vlc.spec \
+	vlc.spec.mdk \
+	vlc.win32.nsi \
+	$(NULL)
+
+BUILT_SOURCES =
+SUFFIXES = 
+
+# Tell aclocal to use -I m4. Wonder if it really works.
+ACLOCAL_AMFLAGS = -I m4
+
+# XXX: these flags could be set in configure.ac, but we set them here
+# because old versions of automake don't support them in configure.ac.
+AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects
+
+###############################################################################
+# Headers
+###############################################################################
+
+BUILT_SOURCES += \
+	include/vlc_symbols.h \
+	src/misc/modules_builtin.h \
+	src/misc/modules_plugin.h \
+	$(NULL)
+
+pkgincludedir = $(includedir)/vlc
+
+dist_pkginclude_HEADERS = \
+	include/vlc/vlc.h \
+	include/vlc/aout.h \
+	include/vlc/vout.h \
+	include/vlc/sout.h \
+	include/vlc/decoder.h \
+	include/vlc/input.h \
+	include/vlc/intf.h \
+	$(NULL)
+
+noinst_HEADERS = $(HEADERS_include) $(HEADERS_include_built)
+
+HEADERS_include = \
+	include/aout_internal.h \
+	include/audio_output.h \
+	include/beos_specific.h \
+	include/charset.h \
+	include/codecs.h \
+	include/configuration.h \
+	include/darwin_specific.h \
+	include/intf_eject.h \
+	include/iso_lang.h \
+	include/main.h \
+	include/mmx.h \
+	include/modules.h \
+	include/modules_inner.h \
+	include/mtime.h \
+	include/network.h \
+	include/osd.h \
+	include/os_specific.h \
+	include/snapshot.h \
+	include/stream_output.h \
+	include/variables.h \
+	include/video_output.h \
+	include/vlc_access.h \
+	include/vlc_bits.h \
+	include/vlc_block.h \
+	include/vlc_block_helper.h \
+	include/vlc_codec.h \
+	include/vlc_common.h \
+	include/vlc_config.h \
+	include/vlc_cpu.h \
+	include/vlc_demux.h \
+	include/vlc_error.h \
+	include/vlc_es.h \
+	include/vlc_es_out.h \
+	include/vlc_filter.h \
+	include/vlc_config_cat.h \
+	include/vlc_httpd.h \
+	include/vlc_tls.h \
+	include/vlc_image.h \
+	include/vlc_input.h \
+	include/vlc_interface.h \
+	include/vlc_keys.h \
+	include/vlc_messages.h \
+	include/vlc_meta.h \
+	include/vlc_objects.h \
+	include/vlc_playlist.h \
+	include/vlc_spu.h \
+	include/vlc_stream.h \
+	include/vlc_threads_funcs.h \
+	include/vlc_threads.h \
+	include/vlc_video.h \
+	include/vlc_vlm.h \
+	include/vlc_vod.h \
+	include/vlc_xml.h \
+	include/vout_synchro.h \
+	include/win32_specific.h \
+	$(NULL)
+
+HEADERS_include_built = \
+	include/vlc_symbols.h \
+	$(NULL)
+
+# Common dependencies for these 3 files : Makefile vlc-config
+# Specific dependencies :
+#  include/vlc_symbols.h: $(HEADERS_include)
+#  src/misc/modules_plugin.h: src/misc/modules_plugin.h.in $(HEADERS_include)
+#  src/misc/modules_builtin.h: src/misc/modules_builtin.h.in
+
+include/vlc_symbols.h src/misc/modules_plugin.h src/misc/modules_builtin.h: Makefile $(HEADERS_include) vlc-config src/misc/modules_plugin.h.in src/misc/modules_builtin.h.in
+	srcdir=$(srcdir) $(srcdir)/toolbox --update-includes
+
+# These dependencies are mandatory
+$(SOURCES): include/vlc_symbols.h
+$(SOURCES_libvlc): src/misc/modules_plugin.h src/misc/modules_builtin.h $(LIB_intl)
+
+###############################################################################
+# Optional libintl - FIXME, bad dependencies
+###############################################################################
+
+intl/libintl.a: FORCE
+	cd $(top_builddir)/intl && $(MAKE) $(AM_MAKEFLAGS)
+
+if BUILD_INTL
+LIB_intl = intl/libintl.a
+endif
+
+###############################################################################
+# MacOS X project
+###############################################################################
+
+EXTRA_DIST += \
+	extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib \
+	extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib \
+	extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib \
+	extras/MacOSX/Resources/English.lproj/About.nib/classes.nib \
+	extras/MacOSX/Resources/English.lproj/About.nib/info.nib \
+	extras/MacOSX/Resources/English.lproj/About.nib/keyedobjects.nib \
+	extras/MacOSX/Resources/English.lproj/Open.nib/classes.nib \
+	extras/MacOSX/Resources/English.lproj/Open.nib/info.nib \
+	extras/MacOSX/Resources/English.lproj/Open.nib/keyedobjects.nib \
+	extras/MacOSX/Resources/English.lproj/Preferences.nib/classes.nib \
+	extras/MacOSX/Resources/English.lproj/Preferences.nib/info.nib \
+	extras/MacOSX/Resources/English.lproj/Preferences.nib/keyedobjects.nib \
+	extras/MacOSX/Resources/English.lproj/InfoPlist.strings \
+	extras/MacOSX/Resources/a52.icns \
+	extras/MacOSX/Resources/aac.icns \
+	extras/MacOSX/Resources/asf.icns \
+	extras/MacOSX/Resources/asx.icns \
+	extras/MacOSX/Resources/avi.icns \
+	extras/MacOSX/Resources/bin.icns \
+	extras/MacOSX/Resources/cue.icns \
+	extras/MacOSX/Resources/dat.icns \
+	extras/MacOSX/Resources/divx.icns \
+	extras/MacOSX/Resources/dv.icns \
+	extras/MacOSX/Resources/generic.icns \
+	extras/MacOSX/Resources/m3u.icns \
+	extras/MacOSX/Resources/mov.icns \
+	extras/MacOSX/Resources/mp3.icns \
+	extras/MacOSX/Resources/mp4.icns \
+	extras/MacOSX/Resources/mpeg.icns \
+	extras/MacOSX/Resources/mpeg1.icns \
+	extras/MacOSX/Resources/mpeg2.icns \
+	extras/MacOSX/Resources/mpeg4.icns \
+	extras/MacOSX/Resources/mpg.icns \
+	extras/MacOSX/Resources/ogg.icns \
+	extras/MacOSX/Resources/ogm.icns \
+	extras/MacOSX/Resources/pls.icns \
+	extras/MacOSX/Resources/srt.icns \
+	extras/MacOSX/Resources/sub.icns \
+	extras/MacOSX/Resources/vlc.icns \
+	extras/MacOSX/Resources/vob.icns \
+	extras/MacOSX/Resources/wma.icns \
+	extras/MacOSX/Resources/wmv.icns \
+	extras/MacOSX/Resources/pause.png \
+	extras/MacOSX/Resources/pause_blue.png \
+	extras/MacOSX/Resources/play.png \
+	extras/MacOSX/Resources/play_blue.png \
+	extras/MacOSX/Resources/stop.png \
+	extras/MacOSX/Resources/stop_blue.png \
+	extras/MacOSX/Resources/display.png \
+	extras/MacOSX/Resources/display_slider.png \
+	extras/MacOSX/Resources/display_track.png \
+	extras/MacOSX/Resources/equalizerdrawer_active.png \
+	extras/MacOSX/Resources/equalizerdrawer_blue.png \
+	extras/MacOSX/Resources/fullscreen_active.png \
+	extras/MacOSX/Resources/fullscreen_blue.png \
+	extras/MacOSX/Resources/next_active.png \
+	extras/MacOSX/Resources/next_blue.png \
+	extras/MacOSX/Resources/playlistdrawer_active.png \
+	extras/MacOSX/Resources/playlistdrawer_blue.png \
+	extras/MacOSX/Resources/previous_active.png \
+	extras/MacOSX/Resources/previous_blue.png \
+	extras/MacOSX/Resources/skip_forward_active.png \
+	extras/MacOSX/Resources/skip_forward_blue.png \
+	extras/MacOSX/Resources/skip_previous_active.png \
+	extras/MacOSX/Resources/skip_previous_blue.png \
+	extras/MacOSX/Resources/volume_high.png \
+	extras/MacOSX/Resources/volume_low.png \
+	extras/MacOSX/Resources/volumeslider_blue.png \
+	extras/MacOSX/Resources/volumeslider_normal.png \
+	extras/MacOSX/Resources/volumetrack.png \
+	extras/MacOSX/Resources/about_bg.png \
+	extras/MacOSX/Resources/vlc.scriptSuite \
+	extras/MacOSX/Resources/vlc.scriptTerminology \
+	extras/MacOSX/Resources/README \
+	extras/MacOSX/vlc.pbproj/project.pbxproj \
+	extras/MacOSX/macosx-dmg \
+	$(NULL)
+
+###############################################################################
+# MS Visual Studio and eMbedded Visual Studio projects
+###############################################################################
+
+EXTRA_DIST += \
+	msvc/vlc.dsw \
+	msvc/libvlc.dsp.in \
+	msvc/plugins.dsp.in \
+	msvc/vlc.dsp.in \
+	msvc/config.h.in \
+	msvc/modules_builtin_msvc.h \
+	evc/vlc.vcw \
+	evc/libvlc.vcp.in \
+	evc/vlc.vcp.in \
+	evc/plugins.vcp.in \
+	evc/errno.h \
+	evc/config.h.in \
+	evc/modules_builtin_evc.h \
+	$(NULL)
+
+dist-hook:
+	cd $(distdir) && srcdir=$(srcdir) $(srcdir)/toolbox --update-vc
+	distdir=$(distdir) srcdir=$(srcdir) $(srcdir)/toolbox --dist-contrib
+
+###############################################################################
+# Building libvlc
+###############################################################################
+
+bin_SCRIPTS = vlc-config
+vlc-config: $(top_builddir)/config.status $(top_builddir)/vlc-config.in
+	cd $(top_builddir) && $(SHELL) ./config.status --file=$@
+	-cd $(top_builddir) && chmod 0755 $@
+
+$(SOURCES): vlc-config
+
+CLEANFILES = $(BUILT_SOURCES)
+
+lib_LIBRARIES = lib/libvlc.a $(LIBRARIES_libvlc_pic)
+
+lib_libvlc_a_SOURCES = $(SOURCES_libvlc)
+dist_lib_libvlc_a_SOURCES = src/misc/modules_plugin.h
+lib_libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
+lib_libvlc_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc`
+lib_libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc`
+
+lib_libvlc_pic_a_SOURCES = $(SOURCES_libvlc)
+lib_libvlc_pic_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc pic`
+lib_libvlc_pic_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc pic`
+lib_libvlc_pic_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc pic`
+
+if HAVE_BEOS
+OPT_SOURCES_libvlc_beos = $(SOURCES_libvlc_beos)
+endif
+if HAVE_DARWIN
+OPT_SOURCES_libvlc_darwin = $(SOURCES_libvlc_darwin)
+endif
+if HAVE_WIN32
+OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
+endif
+if HAVE_WINCE
+OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
+endif
+if BUILD_DIRENT
+OPT_SOURCES_libvlc_dirent = $(SOURCES_libvlc_dirent)
+endif
+if BUILD_GETOPT
+OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt)
+endif
+if BUILD_MOZILLA
+if !HAVE_WIN32
+LIBRARIES_libvlc_pic = lib/libvlc_pic.a
+endif
+endif
+
+EXTRA_DIST += \
+	$(SOURCES_libvlc_beos) \
+	$(SOURCES_libvlc_darwin) \
+	$(SOURCES_libvlc_win32) \
+	$(SOURCES_libvlc_dirent) \
+	$(SOURCES_libvlc_getopt) \
+	$(NULL)
+
+SOURCES_libvlc_beos = \
+	src/misc/beos_specific.cpp \
+	$(NULL)
+
+SOURCES_libvlc_darwin = \
+	src/misc/darwin_specific.m \
+	$(NULL)
+
+SOURCES_libvlc_win32 = \
+	src/misc/win32_specific.c \
+	$(NULL)
+
+SOURCES_libvlc_dirent = \
+	src/extras/dirent.c \
+	$(NULL)
+
+SOURCES_libvlc_getopt = \
+	src/extras/getopt.c \
+	src/extras/getopt.h \
+	src/extras/getopt1.c \
+	$(NULL)
+
+SOURCES_libvlc_common = \
+	src/libvlc.c \
+	src/libvlc.h \
+	src/interface/interface.c \
+	src/interface/intf_eject.c \
+	src/playlist/playlist.c \
+	src/playlist/sort.c \
+	src/playlist/loadsave.c \
+	src/playlist/view.c \
+	src/playlist/item.c \
+	src/playlist/item-ext.c \
+	src/playlist/services_discovery.c \
+	src/input/access.c \
+	src/input/clock.c \
+	src/input/control.c \
+	src/input/decoder.c \
+	src/input/demux.c \
+	src/input/es_out.c \
+	src/input/input.c \
+	src/input/input_internal.h \
+	src/input/stream.c \
+	src/input/mem_stream.c \
+	src/input/subtitles.c \
+	src/input/var.c \
+	src/video_output/video_output.c \
+	src/video_output/vout_pictures.c \
+	src/video_output/vout_pictures.h \
+	src/video_output/video_text.c \
+	src/video_output/video_widgets.c \
+	src/video_output/vout_subpictures.c \
+	src/video_output/vout_synchro.c \
+	src/video_output/vout_intf.c \
+	src/audio_output/common.c \
+	src/audio_output/dec.c \
+	src/audio_output/filters.c \
+	src/audio_output/input.c \
+	src/audio_output/mixer.c \
+	src/audio_output/output.c \
+	src/audio_output/intf.c \
+	src/stream_output/stream_output.c \
+	src/stream_output/announce.c \
+	src/stream_output/sap.c \
+	src/misc/charset.c \
+	src/misc/httpd.c \
+	src/misc/tls.c \
+	src/misc/mtime.c \
+	src/misc/block.c \
+	src/misc/modules.c \
+	src/misc/threads.c \
+	src/misc/cpu.c \
+	src/misc/configuration.c \
+	src/misc/image.c \
+	src/misc/iso_lang.c \
+	src/misc/iso-639_def.h \
+	src/misc/messages.c \
+	src/misc/objects.c \
+	src/misc/variables.c \
+	src/misc/error.c \
+	src/misc/net.c \
+	src/misc/vlm.c \
+	src/misc/xml.c \
+	src/extras/libc.c \
+	$(NULL)
+
+SOURCES_libvlc = \
+	$(SOURCES_libvlc_common) \
+	$(OPT_SOURCES_libvlc_beos) \
+	$(OPT_SOURCES_libvlc_darwin) \
+	$(OPT_SOURCES_libvlc_win32) \
+	$(OPT_SOURCES_libvlc_dirent) \
+	$(OPT_SOURCES_libvlc_getopt) \
+	$(NULL)
+
+###############################################################################
+# Building vlc
+###############################################################################
+
+bin_PROGRAMS = vlc
+
+vlc_SOURCES = src/vlc.c
+
+# Work around a bug in the arm-wince-pe linker
+if HAVE_WINCE
+vlc_WORKAROUNDLDFLAGS = lib/libvlc.a
+endif
+
+vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc builtin` $(vlc_WORKAROUNDLDFLAGS)
+vlc_LDADD = lib/libvlc.a $(DATA_win32_rc) $(LIB_intl)
+vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
+
+# We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an
+# old automake-1.5 bug (automake/279).
+DEPENDENCIES_vlc = lib/libvlc.a $(DATA_win32_rc) $(LIB_intl)
+
+vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) stamp-builtin
+	@rm -f $(top_builddir)/vlc$(EXEEXT)
+	@case `$(VLC_CONFIG) --linkage vlc builtin` in \
+	  c++) echo $(CXXLINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(CXXLINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \
+	  objc) echo $(OBJCLINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(OBJCLINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \
+	  c|*) echo $(LINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(LINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \
+	esac
+
+if HAVE_BEOS
+noinst_DATA = vlc-bundle
+vlc-bundle: vlc
+	rm -Rf $(top_builddir)/vlc-bundle ; mkdir -p $(top_builddir)/vlc-bundle
+	cp $(top_builddir)/vlc $(top_builddir)/vlc-bundle/
+	xres -o $(top_builddir)/vlc-bundle/vlc $(srcdir)/share/vlc_beos.rsrc
+	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
+	  if test -n "$$i" ; then \
+	    mkdir -p $(top_builddir)/vlc-bundle/plugins ; \
+	    cp "$$i$(LIBEXT)" $(top_builddir)/vlc-bundle/plugins/ ; \
+	  fi ; \
+	done
+	if test -d $(top_builddir)/extras/contrib/vlc-lib ; then \
+	  mkdir -p $(top_builddir)/vlc-bundle/lib ; \
+	  for i in $(top_builddir)/extras/contrib/vlc-lib/*.so ; do \
+	    cp $$i $(top_builddir)/vlc-bundle/lib/ ; \
+	  done ; \
+	fi
+	for i in $(ALL_LINGUAS); do \
+	  mkdir -p "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES" ; \
+	  cp "$(top_builddir)/po/$$i.gmo" \
+	    "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES/vlc.mo" || true ; \
+	done
+	find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
+endif
+
+# Install the modules and the symlinks
+install-exec-local:
+	for i in "" `$(VLC_CONFIG) --target plugin` ; do if test -n "$$i" ; then \
+	  echo $(INSTALL) -m 755 "$$i$(LIBEXT)" "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`" ; \
+	  $(INSTALL) -m 755 "$$i$(LIBEXT)" "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`" ; \
+	fi ; done
+	for i in "" `$(VLC_CONFIG) --target builtin` ; do if test -n "$$i" ; then \
+	  echo $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \
+	  $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \
+	fi ; done
+if BUILD_MOZILLA
+	for i in "" `$(VLC_CONFIG) --target builtin pic` ; do if test -n "$$i" ; then \
+	  echo $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \
+	  $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \
+	fi ; done
+endif
+	for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
+	  rm -f "$(DESTDIR)$(bindir)/$$i" && \
+	  ln -s vlc "$(DESTDIR)$(bindir)/$$i" ; \
+	fi ; done
+
+if HAVE_DARWIN
+# Create the MacOS X app
+vlc_app_DATA = VLC.app
+vlc_appdir = $(bindir)
+# VLC-release.app is the old VLC.app target
+VLC-release.app: vlc
+	@if test -e "$(top_builddir)/tmp"; then \
+	  echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
+	  false; \
+	else \
+	  echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
+	fi
+	rm -Rf $(top_builddir)/VLC-release.app
+	cp -r $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
+	for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
+	  cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
+	done
+	mkdir -p $(top_builddir)/tmp/modules/audio_output
+	cp $(srcdir)/modules/audio_output/coreaudio.c \
+	   $(top_builddir)/tmp/modules/audio_output/coreaudio.c
+	mkdir -p $(top_builddir)/tmp/modules/gui/macosx
+	for i in \
+	    about.h \
+	    about.m \
+	    applescript.h \
+	    applescript.m \
+	    controls.h \
+	    controls.m \
+	    equalizer.h \
+	    equalizer.m \
+	    intf.h \
+	    intf.m \
+	    macosx.m \
+	    misc.h \
+	    misc.m \
+	    open.h \
+	    open.m \
+	    output.h \
+	    output.m \
+	    playlist.h \
+	    playlist.m \
+	    playlistinfo.h \
+	    playlistinfo.m \
+	    prefs_widgets.h \
+	    prefs_widgets.m \
+	    prefs.h \
+	    prefs.m \
+	    vout.h \
+	    voutqt.m \
+	    voutgl.m \
+	    vout.m; do \
+	  cp "$(srcdir)/modules/gui/macosx/$$i" \
+             $(top_builddir)/tmp/modules/gui/macosx; \
+	done
+	cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'
+	cp -r $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
+	      $(top_builddir)/VLC-release.app
+	rm -Rf $(top_builddir)/tmp
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS
+	$(INSTALL) $(top_builddir)/vlc \
+		   $(top_builddir)/VLC-release.app/Contents/MacOS/VLC
+	ln -sf ./VLC $(top_builddir)/VLC-release.app/Contents/MacOS/clivlc
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/modules
+	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
+	  if test -n "$$i" ; \
+	    then $(INSTALL) "$$i$(LIBEXT)" \
+			   "$(top_builddir)/VLC-release.app/Contents/MacOS/modules" ; \
+	  fi ; done
+	if test -d $(top_builddir)/extras/contrib/vlc-lib; then \
+	  mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/lib ; \
+	  for i in $(top_builddir)/extras/contrib/vlc-lib/*.dylib ; do \
+	    $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
+	  done ; \
+	fi
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http
+	for i in $(srcdir)/share/http/* ; do \
+	  $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/`basename $${i}` ; \
+	done ; \
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/vlm
+	for i in $(srcdir)/share/http/vlm/* ; do \
+	  $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/vlm/`basename $${i}` ; \
+	done ; \
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/admin
+	for i in $(srcdir)/share/http/admin/* ; do \
+	  $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/admin/`basename $${i}` ; \
+	done ; \
+	$(INSTALL) -m 644 $(srcdir)/share/http/admin/.access $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/admin/.access
+	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/locale
+	for i in $(ALL_LINGUAS); do \
+	  mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
+	  cp $(srcdir)/po/$${i}.gmo $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
+	  mkdir -p $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
+	  ln -sf ../English.lproj/InfoPlist.strings \
+	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
+	  ln -sf ../English.lproj/MainMenu.nib \
+	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
+	  ln -sf ../English.lproj/vlc.scriptTerminology \
+	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
+	done
+	printf "APPLVLC#" >| $(top_builddir)/VLC-release.app/Contents/PkgInfo
+
+VLC.app: vlc
+	@if test -e "$(top_builddir)/tmp"; then \
+	  echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
+	  false; \
+	else \
+	  echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
+	fi
+	rm -Rf $(top_builddir)/VLC.app
+	cp -r $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
+	for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
+	  cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
+	done
+	mkdir -p $(top_builddir)/tmp/modules/audio_output
+	cp $(srcdir)/modules/audio_output/coreaudio.c \
+	   $(top_builddir)/tmp/modules/audio_output/coreaudio.c
+	mkdir -p $(top_builddir)/tmp/modules/gui/macosx
+	for i in \
+	    about.h \
+	    about.m \
+	    applescript.h \
+	    applescript.m \
+	    controls.h \
+	    controls.m \
+	    equalizer.h \
+	    equalizer.m \
+	    intf.h \
+	    intf.m \
+	    macosx.m \
+	    misc.h \
+	    misc.m \
+	    open.h \
+	    open.m \
+	    output.h \
+	    output.m \
+	    playlist.h \
+	    playlist.m \
+	    playlistinfo.h \
+	    playlistinfo.m \
+	    prefs_widgets.h \
+	    prefs_widgets.m \
+	    prefs.h \
+	    prefs.m \
+	    vout.h \
+	    voutqt.m \
+	    voutgl.m \
+	    vout.m; do \
+	  cp "$(srcdir)/modules/gui/macosx/$$i" \
+             $(top_builddir)/tmp/modules/gui/macosx; \
+	done
+	cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'
+	cp -r $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
+	      $(top_builddir)/VLC.app
+	rm -Rf $(top_builddir)/tmp
+	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS
+	$(INSTALL) $(top_builddir)/vlc \
+		   $(top_builddir)/VLC.app/Contents/MacOS/VLC
+	ln -sf ./VLC $(top_builddir)/VLC.app/Contents/MacOS/clivlc
+	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/modules
+	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
+	  if test -n "$$i" ; \
+	    then ln -sfn "`pwd`/$$i$(LIBEXT)" \
+			   "$(top_builddir)/VLC.app/Contents/MacOS/modules" ; \
+	  fi ; done
+	if test -d $(top_builddir)/extras/contrib/vlc-lib; then \
+	  mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/lib ; \
+	  for i in $(top_builddir)/extras/contrib/vlc-lib/*.dylib ; do \
+	    ln -sfn `pwd`/$${i} $(top_builddir)/VLC.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
+	  done ; \
+	fi
+	ln -sfn `pwd`/share $(top_builddir)/VLC.app/Contents/MacOS/
+	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/locale
+	for i in $(ALL_LINGUAS); do \
+	  mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
+	  ln -sfn `pwd`/po/$${i}.gmo $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
+	  mkdir -p $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
+	  ln -sf ../English.lproj/InfoPlist.strings \
+	      $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
+	  ln -sf ../English.lproj/MainMenu.nib \
+	      $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
+	done
+	printf "APPLVLC#" >| $(top_builddir)/VLC.app/Contents/PkgInfo
+endif
+
+if HAVE_WIN32
+DATA_win32_rc = $(noinst_share_vlc_win32_rc_DATA)
+noinst_share_vlc_win32_rc_DATA = share/vlc_win32_rc.$(OBJEXT)
+noinst_share_vlc_win32_rcdir = $(libdir)
+share/vlc_win32_rc.$(OBJEXT): share/vlc_win32_rc.rc
+	$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir)/share -i $< -o $@
+endif
+
+###############################################################################
+# Building specific source packages
+###############################################################################
+
+dist-woody: distdir
+	$(remove_distdir_woody)
+	mv $(distdir) $(PACKAGE)-woody-$(VERSION)
+	$(srcdir)/toolbox --make-woody $(PACKAGE)-woody-$(VERSION)
+	$(AMTAR) chof - $(PACKAGE)-woody-$(VERSION) \
+	  | GZIP=$(GZIP_ENV) gzip -c >$(PACKAGE)-woody-$(VERSION).tar.gz
+	$(remove_distdir_woody)
+
+remove_distdir_woody = \
+  { test ! -d $(PACKAGE)-woody-$(VERSION) \
+    || { find $(PACKAGE)-woody-$(VERSION) -type d ! -perm -200 \
+           -exec chmod u+w {} ';' \
+         && rm -fr $(PACKAGE)-woody-$(VERSION); }; }
+
+###############################################################################
+# Building architecture-specific binary packages
+###############################################################################
+
+# XXX: this rule is probably only useful to you if you have exactly
+# the same setup as me. Contact sam at zoy.org if you need to use it.
+#
+package-win32-base:
+# Check that tmp isn't in the way
+	@if test -e "$(top_builddir)/vlc-${VERSION}"; then \
+	  echo "Error: please remove $(top_builddir)/vlc-${VERSION}, it is in the way"; \
+	  false; \
+	else \
+	  echo "OK."; mkdir -p "$(top_builddir)/vlc-${VERSION}"; \
+	fi
+
+# Copy relevant files
+	cp "$(srcdir)/vlc.win32.nsi" "$(top_builddir)/vlc-${VERSION}/"
+	cp "$(top_builddir)/vlc$(EXEEXT)" "$(top_builddir)/vlc-${VERSION}/"
+	cp "$(top_srcdir)/vlc.exe.manifest" "$(top_builddir)/vlc-${VERSION}/"
+	$(STRIP) "$(top_builddir)/vlc-${VERSION}/vlc$(EXEEXT)"
+
+	for file in AUTHORS MAINTAINERS THANKS NEWS COPYING README ; \
+	  do sed 's/@/_AT_/' < "$(srcdir)/$$file" > "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; \
+	  unix2dos "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; done
+
+	mkdir -p "$(top_builddir)/vlc-${VERSION}/plugins"
+	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
+	  if test -n "$$i" ; then \
+	    $(INSTALL) "$(top_builddir)/$$i$(LIBEXT)" \
+            "$(top_builddir)/vlc-${VERSION}/plugins/" ; \
+	  fi ; done
+
+	for i in "" $(top_builddir)/vlc-${VERSION}/plugins/*$(LIBEXT) ; \
+	  do if test -n "$$i" ; then $(STRIP) "$$i" ; fi ; done
+
+	mkdir $(top_builddir)/vlc-${VERSION}/locale
+	for i in $(ALL_LINGUAS); do \
+	  mkdir -p "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES" ; \
+	  cp "$(srcdir)/po/$${i}.gmo" \
+	    "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES/vlc.mo" \
+            || true ; \
+	done
+
+	mkdir -p $(top_builddir)/vlc-${VERSION}/skins/fonts
+	for i in $(srcdir)/share/skins2/fonts/*.*; do \
+	  cp $$i $(top_builddir)/vlc-${VERSION}/skins/fonts/ || true ; \
+	done
+	for i in $(srcdir)/share/skins2/*.*; do \
+	  cp $$i $(top_builddir)/vlc-${VERSION}/skins/ || true ; \
+	done
+
+	mkdir -p "$(top_builddir)/vlc-${VERSION}/http/admin"
+	mkdir -p "$(top_builddir)/vlc-${VERSION}/http/vlm"
+	cp $(srcdir)/share/http/*.html $(top_builddir)/vlc-${VERSION}/http/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/http/*.html ;
+	cp $(srcdir)/share/http/*.css $(top_builddir)/vlc-${VERSION}/http/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/http/*.css ;
+	cp $(srcdir)/share/http/*.png $(top_builddir)/vlc-${VERSION}/http/
+	cp $(srcdir)/share/http/*.ico $(top_builddir)/vlc-${VERSION}/http/ ;
+	cp $(srcdir)/share/http/admin/*.html \
+           $(top_builddir)/vlc-${VERSION}/http/admin/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/http/admin/*.html ;
+	cp $(srcdir)/share/http/admin/dboxfiles.html \
+           $(top_builddir)/vlc-${VERSION}/http/admin/ ;
+	cp $(srcdir)/share/http/admin/.access \
+           $(top_builddir)/vlc-${VERSION}/http/admin/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/http/admin/.access ;
+	cp $(srcdir)/share/http/vlm/*.html \
+           $(top_builddir)/vlc-${VERSION}/http/vlm/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/http/vlm/*.html ;
+
+	cp $(srcdir)/share/vlc48x48new.ico $(top_builddir)/vlc-${VERSION}/ ;
+
+	mkdir -p "$(top_builddir)/vlc-${VERSION}/mozilla"
+if BUILD_MOZILLA
+	cp $(top_builddir)/mozilla/*$(LIBEXT) $(top_builddir)/vlc-${VERSION}/mozilla/ ;
+	$(STRIP) $(top_builddir)/vlc-${VERSION}/mozilla/*$(LIBEXT);
+	cp $(top_builddir)/mozilla/vlcintf.xpt  $(top_builddir)/vlc-${VERSION}/mozilla/ ;
+endif
+
+	mkdir -p "$(top_builddir)/vlc-${VERSION}/activex"
+if BUILD_ACTIVEX
+	cp $(top_builddir)/activex/README.TXT  $(top_builddir)/vlc-${VERSION}/activex/ ;
+	cp $(top_builddir)/activex/test.html  $(top_builddir)/vlc-${VERSION}/activex/ ;
+	unix2dos $(top_builddir)/vlc-${VERSION}/activex/* ;
+
+	cp $(top_builddir)/activex/*$(LIBEXT) $(top_builddir)/vlc-${VERSION}/activex/ ;
+	$(STRIP) $(top_builddir)/vlc-${VERSION}/activex/*$(LIBEXT);
+endif
+# Rebase all those DLLs to speed up loading (need cygwin rebase)
+	if [ -x rebase ]; then \
+		find $(top_builddir)/vlc-${VERSION} -type f -name '*.dll' -print | rebase -b 0x70000000 -T -; \
+	fi
+
+package-win32-base-exe:
+# Create package
+	wine C:/Program\ Files/NSIS/makensis.exe \
+             /DVERSION=${VERSION} $(top_builddir)/vlc-${VERSION}/vlc.win32.nsi
+
+package-win32-base-exe-cygwin:
+# Create package
+	C:/Program\ Files/NSIS/makensis.exe \
+             /DVERSION=${VERSION} $(top_builddir)/vlc-${VERSION}/vlc.win32.nsi
+
+package-win32-base-exe-linux:
+# Create package
+	makensis -DVERSION=${VERSION} $(top_builddir)/vlc-${VERSION}/vlc.win32.nsi
+
+package-win32-base-zip:
+# Create package 
+	zip -r vlc-${VERSION}-win32.zip vlc-${VERSION}
+
+package-win32-exe: package-win32-base package-win32-base-exe
+# Clean up
+	rm -Rf $(top_builddir)/vlc-${VERSION}
+
+package-win32-exe-linux: package-win32-base package-win32-base-exe-linux
+# Clean up
+	rm -Rf $(top_builddir)/vlc-${VERSION}
+
+package-win32-zip: package-win32-base package-win32-base-zip
+# Clean up
+	rm -Rf $(top_builddir)/vlc-${VERSION}
+
+package-win32: package-win32-base package-win32-base-exe package-win32-base-zip
+# Clean up
+	rm -Rf $(top_builddir)/vlc-${VERSION}
+
+package-beos:
+# Check that tmp isn't in the way
+	@if test -e $(srcdir)/tmp; then \
+	  echo "Error: please remove $(srcdir)/tmp, it is in the way"; \
+	  false ; \
+	else \
+	  echo "OK." ; mkdir $(srcdir)/tmp ; \
+	fi
+
+# Copy relevant files
+	mkdir -p $(srcdir)/tmp/vlc ;
+	cd $(srcdir) && cp -R vlc-bundle/* AUTHORS COPYING ChangeLog README \
+	  THANKS NEWS tmp/vlc/ ;
+
+# Create debug package
+	xres -o $(srcdir)/tmp/vlc/vlc $(srcdir)/share/vlc_beos.rsrc ;
+	find $(srcdir)/tmp/vlc -exec mimeset -f {} \; ;
+	mv $(srcdir)/tmp/vlc $(srcdir)/tmp/vlc-${VERSION} ;
+	(cd $(srcdir)/tmp ; zip -9 -r vlc-${VERSION}-BeOS-debug.zip vlc-${VERSION} )
+	mv $(srcdir)/tmp/vlc-${VERSION}-BeOS-debug.zip $(srcdir)/ ;
+	mv $(srcdir)/tmp/vlc-${VERSION} $(srcdir)/tmp/vlc ;
+
+# Create normal package
+	$(STRIP) --strip-debug --strip-unneeded $(srcdir)/tmp/vlc/vlc ;
+	find $(srcdir)/tmp/vlc -name 'lib*.so' -exec $(STRIP) \
+	  --strip-debug --strip-unneeded "{}" \; ;
+	xres -o $(srcdir)/tmp/vlc/vlc $(srcdir)/share/vlc_beos.rsrc ;
+	find $(srcdir)/tmp/vlc -exec mimeset -f {} \; ;
+	mv $(srcdir)/tmp/vlc $(srcdir)/tmp/vlc-${VERSION} ;
+	(cd $(srcdir)/tmp ; zip -9 -r vlc-${VERSION}-BeOS.zip vlc-${VERSION} )
+	mv $(srcdir)/tmp/vlc-${VERSION}-BeOS.zip $(srcdir)/ ;
+
+# Clean up
+	rm -Rf $(srcdir)/tmp ;
+
+package-macosx:
+# Check that tmp isn't in the way
+	@if test -e "$(top_builddir)/tmp"; then \
+	  echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
+	  false; \
+	else \
+	  echo "OK."; mkdir -p "$(top_builddir)/tmp"; \
+	fi
+
+# Copy relevant files 
+	cp -R "$(top_builddir)/VLC-release.app" "$(top_builddir)/tmp/VLC.app"
+	cd "$(srcdir)" && cp AUTHORS COPYING ChangeLog README README.MacOSX.rtf THANKS NEWS $(top_builddir)/tmp/
+
+# Create disk image 
+	$(srcdir)/extras/MacOSX/macosx-dmg "vlc-${VERSION}" $(top_builddir)/tmp
+
+# Clean up
+	rm -Rf $(top_builddir)/tmp
+
+package-translations:
+	@if test -e "$(srcdir)/vlc-translations-${VERSION}"; then \
+	  echo "Error: please remove $(srcdir)/vlc-translations-${VERSION}, it is in the way"; \
+	  false; \
+	else \
+	  echo "OK."; mkdir -p "$(srcdir)/vlc-translations-${VERSION}"; \
+	fi
+# Copy translations
+	for i in $(ALL_LINGUAS); do \
+	  cp "$(srcdir)/po/$${i}.po" \
+	    "$(srcdir)/vlc-translations-${VERSION}/$${i}.po" \
+	    || true ; \
+	done
+	cp "$(srcdir)/doc/translations.txt" \
+	  "$(srcdir)/vlc-translations-${VERSION}/README.txt"
+
+	echo "#!/bin/sh" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo "" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo 'if test $$# != 1; then' >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo "	echo \"Usage: convert-po.sh <.po file>\"" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo "	exit 1" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo "fi" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo "" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+	echo 'msgfmt --statistics -o vlc.mo $$1' >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
+
+	$(AMTAR) chof - $(srcdir)/vlc-translations-$(VERSION) \
+	  | GZIP=$(GZIP_ENV) gzip -c >$(srcdir)/vlc-translations-$(VERSION).tar.gz
+
+###############################################################################
+# Stamp rules
+###############################################################################
+clean: clean-stamp clean-recursive
+clean-stamp:
+	rm -f stamp-builtin
+
+stamp-builtin: FORCE
+	@for dep in "" `$(VLC_CONFIG) --target builtin`; do \
+	  if test "$${dep}" -nt "$(top_builddir)/vlc$(EXEEXT)"; then \
+	    rm -f $@; \
+	    break; \
+	  fi; \
+	done
+	@if test ! -f $@; then printf "" > $@; fi
+
+###############################################################################
+# Force rule
+###############################################################################
+FORCE:

Added: AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ogg.c
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ogg.c	2006-05-30 07:11:34 UTC (rev 2316)
+++ AnnodexFirefoxExtension/trunk/Docs/Updated-OggFile/ogg.c	2006-06-01 15:00:55 UTC (rev 2317)
@@ -0,0 +1,1464 @@
+/*****************************************************************************
+ * ogg.c : ogg stream demux module for vlc
+ *****************************************************************************
+ * Copyright (C) 2001-2003 the VideoLAN team
+ * $Id: ogg.c 15684 2006-05-20 11:40:15Z jpsaman $
+ *
+ * Authors: Gildas Bazin <gbazin at netcourrier.com>
+ *          Andre Pang <Andre.Pang at csiro.au> (Annodex support)
+ *
+ * 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.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Preamble
+ *****************************************************************************/
+#include <vlc/vlc.h>
+#include <vlc/input.h>
+
+#include <ogg/ogg.h>
+
+#include "codecs.h"
+#include "vlc_bits.h"
+
+/*****************************************************************************
+ * Module descriptor
+ *****************************************************************************/
+static int  Open ( vlc_object_t * );
+static void Close( vlc_object_t * );
+
+vlc_module_begin();
+    set_shortname ( "OGG" );
+    set_description( _("OGG demuxer" ) );
+    set_category( CAT_INPUT );
+    set_subcategory( SUBCAT_INPUT_DEMUX );
+    set_capability( "demux2", 50 );
+    set_callbacks( Open, Close );
+    add_shortcut( "ogg" );
+vlc_module_end();
+
+
+/*****************************************************************************
+ * Definitions of structures and functions used by this plugins
+ *****************************************************************************/
+typedef struct logical_stream_s
+{
+    ogg_stream_state os;                        /* logical stream of packets */
+
+    es_format_t      fmt;
+    es_out_id_t      *p_es;
+    double           f_rate;
+
+    int              i_serial_no;
+
+    /* the header of some logical streams (eg vorbis) contain essential
+     * data for the decoder. We back them up here in case we need to re-feed
+     * them to the decoder. */
+    int              b_force_backup;
+    int              i_packets_backup;
+    uint8_t          *p_headers;
+    int              i_headers;
+
+    /* program clock reference (in units of 90kHz) derived from the previous
+     * granulepos */
+    mtime_t          i_pcr;
+    mtime_t          i_interpolated_pcr;
+    mtime_t          i_previous_pcr;
+
+    /* Misc */
+    int b_reinit;
+    int i_theora_keyframe_granule_shift;
+
+    /* for Annodex logical bitstreams */
+    int secondary_header_packets;
+
+} logical_stream_t;
+
+struct demux_sys_t
+{
+    ogg_sync_state oy;        /* sync and verify incoming physical bitstream */
+
+    int i_streams;                           /* number of logical bitstreams */
+    logical_stream_t **pp_stream;  /* pointer to an array of logical streams */
+
+    /* program clock reference (in units of 90kHz) derived from the pcr of
+     * the sub-streams */
+    mtime_t i_pcr;
+
+    /* stream state */
+    int     i_eos;
+
+    /* bitrate */
+    int     i_bitrate;
+};
+
+/* OggDS headers for the new header format (used in ogm files) */
+typedef struct stream_header_video
+{
+    ogg_int32_t width;
+    ogg_int32_t height;
+} stream_header_video;
+
+typedef struct stream_header_audio
+{
+    ogg_int16_t channels;
+    ogg_int16_t blockalign;
+    ogg_int32_t avgbytespersec;
+} stream_header_audio;
+
+typedef struct stream_header
+{
+    char        streamtype[8];
+    char        subtype[4];
+
+    ogg_int32_t size;                               /* size of the structure */
+
+    ogg_int64_t time_unit;                              /* in reference time */
+    ogg_int64_t samples_per_unit;
+    ogg_int32_t default_len;                                /* in media time */
+
+    ogg_int32_t buffersize;
+    ogg_int16_t bits_per_sample;
+
+    union
+    {
+        /* Video specific */
+        stream_header_video video;
+        /* Audio specific */
+        stream_header_audio audio;
+    } sh;
+} stream_header;
+
+#define OGG_BLOCK_SIZE 4096
+
+/* Some defines from OggDS */
+#define PACKET_TYPE_HEADER   0x01
+#define PACKET_TYPE_BITS     0x07
+#define PACKET_LEN_BITS01    0xc0
+#define PACKET_LEN_BITS2     0x02
+#define PACKET_IS_SYNCPOINT  0x08
+
+/*****************************************************************************
+ * Local prototypes
+ *****************************************************************************/
+static int  Demux  ( demux_t * );
+static int  Control( demux_t *, int, va_list );
+
+/* Bitstream manipulation */
+static int  Ogg_ReadPage     ( demux_t *, ogg_page * );
+static void Ogg_UpdatePCR    ( logical_stream_t *, ogg_packet * );
+static void Ogg_DecodePacket ( demux_t *, logical_stream_t *, ogg_packet * );
+
+static int Ogg_BeginningOfStream( demux_t *p_demux );
+static int Ogg_FindLogicalStreams( demux_t *p_demux );
+static void Ogg_EndOfStream( demux_t *p_demux );
+
+/* Logical bitstream headers */
+static void Ogg_ReadTheoraHeader( logical_stream_t *, ogg_packet * );
+static void Ogg_ReadVorbisHeader( logical_stream_t *, ogg_packet * );
+static void Ogg_ReadSpeexHeader( logical_stream_t *, ogg_packet * );
+static void Ogg_ReadFlacHeader( demux_t *, logical_stream_t *, ogg_packet * );
+static void Ogg_ReadAnnodexHeader( vlc_object_t *, logical_stream_t *, ogg_packet * );
+
+/*****************************************************************************
+ * Open: initializes ogg demux structures
+ *****************************************************************************/
+static int Open( vlc_object_t * p_this )
+{
+    demux_t *p_demux = (demux_t *)p_this;
+    demux_sys_t    *p_sys;
+    uint8_t        *p_peek;
+
+
+    /* Check if we are dealing with an ogg stream */
+    if( stream_Peek( p_demux->s, &p_peek, 4 ) < 4 ) return VLC_EGENERIC;
+    if( strcmp( p_demux->psz_demux, "ogg" ) && memcmp( p_peek, "OggS", 4 ) )
+    {
+        return VLC_EGENERIC;
+    }
+
+    /* Set exported functions */
+    p_demux->pf_demux = Demux;
+    p_demux->pf_control = Control;
+    p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) );
+
+    memset( p_sys, 0, sizeof( demux_sys_t ) );
+    p_sys->i_bitrate = 0;
+    p_sys->pp_stream = NULL;
+
+    /* Begnning of stream, tell the demux to look for elementary streams. */
+    p_sys->i_eos = 0;
+
+    /* Initialize the Ogg physical bitstream parser */
+    ogg_sync_init( &p_sys->oy );
+
+    return VLC_SUCCESS;
+}
+
+/*****************************************************************************
+ * Close: frees unused data
+ *****************************************************************************/
+static void Close( vlc_object_t *p_this )
+{
+    demux_t *p_demux = (demux_t *)p_this;
+    demux_sys_t *p_sys = p_demux->p_sys  ;
+
+    /* Cleanup the bitstream parser */
+    ogg_sync_clear( &p_sys->oy );
+
+    Ogg_EndOfStream( p_demux );
+
+    free( p_sys );
+}
+
+/*****************************************************************************
+ * Demux: reads and demuxes data packets
+ *****************************************************************************
+ * Returns -1 in case of error, 0 in case of EOF, 1 otherwise
+ *****************************************************************************/
+static int Demux( demux_t * p_demux )
+{
+    demux_sys_t *p_sys = p_demux->p_sys;
+    ogg_page    oggpage;
+    ogg_packet  oggpacket;
+    int         i_stream;
+
+
+    if( p_sys->i_eos == p_sys->i_streams )
+    {
+        if( p_sys->i_eos )
+        {
+            msg_Dbg( p_demux, "end of a group of logical streams" );
+            Ogg_EndOfStream( p_demux );
+        }
+
+        p_sys->i_eos = 0;
+        if( Ogg_BeginningOfStream( p_demux ) != VLC_SUCCESS ) return 0;
+
+        msg_Dbg( p_demux, "beginning of a group of logical streams" );
+        es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
+    }
+
+    /*
+     * Demux an ogg page from the stream
+     */
+    if( Ogg_ReadPage( p_demux, &oggpage ) != VLC_SUCCESS )
+    {
+        return 0; /* EOF */
+    }
+
+    /* Test for End of Stream */
+    if( ogg_page_eos( &oggpage ) ) p_sys->i_eos++;
+
+
+    for( i_stream = 0; i_stream < p_sys->i_streams; i_stream++ )
+    {
+        logical_stream_t *p_stream = p_sys->pp_stream[i_stream];
+
+        if( ogg_stream_pagein( &p_stream->os, &oggpage ) != 0 )
+            continue;
+
+        while( ogg_stream_packetout( &p_stream->os, &oggpacket ) > 0 )
+        {
+            /* Read info from any secondary header packets, if there are any */
+            if( p_stream->secondary_header_packets > 0 )
+            {
+                if( p_stream->fmt.i_codec == VLC_FOURCC('t','h','e','o') &&
+                        oggpacket.bytes >= 7 &&
+                        ! memcmp( &oggpacket.packet[1], "theora", 6 ) )
+                {
+                    Ogg_ReadTheoraHeader( p_stream, &oggpacket );
+                    p_stream->secondary_header_packets = 0;
+                }
+                else if( p_stream->fmt.i_codec == VLC_FOURCC('v','o','r','b') &&
+                        oggpacket.bytes >= 7 &&
+                        ! memcmp( &oggpacket.packet[1], "vorbis", 6 ) )
+                {
+                    Ogg_ReadVorbisHeader( p_stream, &oggpacket );
+                    p_stream->secondary_header_packets = 0;
+                }
+                else if ( p_stream->fmt.i_codec == VLC_FOURCC('c','m','m','l') )
+                {
+                    Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream, &oggpacket );
+                    p_stream->secondary_header_packets = 0;
+                }
+            }
+
+            if( p_stream->b_reinit )
+            {
+                /* If synchro is re-initialized we need to drop all the packets
+                 * until we find a new dated one. */
+                Ogg_UpdatePCR( p_stream, &oggpacket );
+
+                if( p_stream->i_pcr >= 0 )
+                {
+                    p_stream->b_reinit = 0;
+                }
+                else
+                {
+                    p_stream->i_interpolated_pcr = -1;
+                    continue;
+                }
+
+                /* An Ogg/vorbis packet contains an end date granulepos */
+                if( p_stream->fmt.i_codec == VLC_FOURCC( 'v','o','r','b' ) ||
+                    p_stream->fmt.i_codec == VLC_FOURCC( 's','p','x',' ' ) ||
+                    p_stream->fmt.i_codec == VLC_FOURCC( 'f','l','a','c' ) )
+                {
+                    if( ogg_stream_packetout( &p_stream->os, &oggpacket ) > 0 )
+                    {
+                        Ogg_DecodePacket( p_demux, p_stream, &oggpacket );
+                    }
+                    else
+                    {
+                        es_out_Control( p_demux->out, ES_OUT_SET_PCR,
+                                        p_stream->i_pcr );
+                    }
+                    continue;
+                }
+            }
+
+            Ogg_DecodePacket( p_demux, p_stream, &oggpacket );
+        }
+        break;
+    }
+
+    i_stream = 0; p_sys->i_pcr = -1;
+    for( ; i_stream < p_sys->i_streams; i_stream++ )
+    {
+        logical_stream_t *p_stream = p_sys->pp_stream[i_stream];
+
+        if( p_stream->fmt.i_cat == SPU_ES )
+            continue;
+        if( p_stream->i_interpolated_pcr < 0 )
+            continue;
+
+        if( p_sys->i_pcr < 0 || p_stream->i_interpolated_pcr < p_sys->i_pcr )
+            p_sys->i_pcr = p_stream->i_interpolated_pcr;
+    }
+
+    if( p_sys->i_pcr >= 0 )
+    {
+        es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_sys->i_pcr );
+    }
+
+
+    return 1;
+}
+
+/*****************************************************************************
+ * Control:
+ *****************************************************************************/
+static int Control( demux_t *p_demux, int i_query, va_list args )
+{
+    demux_sys_t *p_sys  = p_demux->p_sys;
+    int64_t *pi64;
+    int i;
+
+    switch( i_query )
+    {
+        case DEMUX_GET_TIME:
+            pi64 = (int64_t*)va_arg( args, int64_t * );
+            *pi64 = p_sys->i_pcr;
+            return VLC_SUCCESS;
+
+        case DEMUX_SET_TIME:
+            return VLC_EGENERIC;
+
+        case DEMUX_SET_POSITION:
+            for( i = 0; i < p_sys->i_streams; i++ )
+            {
+                logical_stream_t *p_stream = p_sys->pp_stream[i];
+
+                /* we'll trash all the data until we find the next pcr */
+                p_stream->b_reinit = 1;
+                p_stream->i_pcr = -1;
+                p_stream->i_interpolated_pcr = -1;
+                ogg_stream_reset( &p_stream->os );
+            }
+            ogg_sync_reset( &p_sys->oy );
+
+        default:
+            return demux2_vaControlHelper( p_demux->s, 0, -1, p_sys->i_bitrate,
+                                           1, i_query, args );
+    }
+}
+
+/****************************************************************************
+ * Ogg_ReadPage: Read a full Ogg page from the physical bitstream.
+ ****************************************************************************
+ * Returns VLC_SUCCESS if a page has been read. An error might happen if we
+ * are at the end of stream.
+ ****************************************************************************/
+static int Ogg_ReadPage( demux_t *p_demux, ogg_page *p_oggpage )
+{
+    demux_sys_t *p_ogg = p_demux->p_sys  ;
+    int i_read = 0;
+    char *p_buffer;
+
+    while( ogg_sync_pageout( &p_ogg->oy, p_oggpage ) != 1 )
+    {
+        p_buffer = ogg_sync_buffer( &p_ogg->oy, OGG_BLOCK_SIZE );
+
+        i_read = stream_Read( p_demux->s, p_buffer, OGG_BLOCK_SIZE );
+        if( i_read <= 0 )
+            return VLC_EGENERIC;
+
+        ogg_sync_wrote( &p_ogg->oy, i_read );
+    }
+
+    return VLC_SUCCESS;
+}
+
+/****************************************************************************
+ * Ogg_UpdatePCR: update the PCR (90kHz program clock reference) for the
+ *                current stream.
+ ****************************************************************************/
+static void Ogg_UpdatePCR( logical_stream_t *p_stream,
+                           ogg_packet *p_oggpacket )
+{
+    /* Convert the granulepos into a pcr */
+    if( p_oggpacket->granulepos >= 0 )
+    {
+        if( p_stream->fmt.i_codec != VLC_FOURCC( 't','h','e','o' ) )
+        {
+            p_stream->i_pcr = p_oggpacket->granulepos * I64C(1000000)
+                              / p_stream->f_rate;
+        }
+        else
+        {
+            ogg_int64_t iframe = p_oggpacket->granulepos >>
+              p_stream->i_theora_keyframe_granule_shift;
+            ogg_int64_t pframe = p_oggpacket->granulepos -
+              ( iframe << p_stream->i_theora_keyframe_granule_shift );
+
+            p_stream->i_pcr = ( iframe + pframe ) * I64C(1000000)
+                              / p_stream->f_rate;
+        }
+
+        p_stream->i_interpolated_pcr = p_stream->i_pcr;
+    }
+    else
+    {
+        p_stream->i_pcr = -1;
+
+        /* no granulepos available, try to interpolate the pcr.
+         * If we can't then don't touch the old value. */
+        if( p_stream->fmt.i_cat == VIDEO_ES )
+            /* 1 frame per packet */
+            p_stream->i_interpolated_pcr += (I64C(1000000) / p_stream->f_rate);
+        else if( p_stream->fmt.i_bitrate )
+            p_stream->i_interpolated_pcr +=
+                ( p_oggpacket->bytes * I64C(1000000) /
+                  p_stream->fmt.i_bitrate / 8 );
+    }
+}
+
+/****************************************************************************
+ * Ogg_DecodePacket: Decode an Ogg packet.
+ ****************************************************************************/
+static void Ogg_DecodePacket( demux_t *p_demux,
+                              logical_stream_t *p_stream,
+                              ogg_packet *p_oggpacket )
+{
+    block_t *p_block;
+    vlc_bool_t b_selected;
+    int i_header_len = 0;
+    mtime_t i_pts = -1, i_interpolated_pts;
+
+    /* Sanity check */
+    if( !p_oggpacket->bytes )
+    {
+        msg_Dbg( p_demux, "discarding 0 sized packet" );
+        return;
+    }
+
+    if( p_oggpacket->bytes >= 7 &&
+        ! memcmp ( &p_oggpacket->packet[0], "fishead", 7 ) )
+    {
+        /* it's an Annodex Header packet -- skip it (do nothing) */
+        return; 
+    }
+    else if( p_oggpacket->bytes >= 7 &&
+        ! memcmp ( &p_oggpacket->packet[0], "fisbone", 7 ) )
+    {
+        /* it's an Annodex Data packet -- skip it (do nothing) */
+        return; 
+    }
+
+    if( p_stream->fmt.i_codec == VLC_FOURCC( 's','u','b','t' ) &&
+        p_oggpacket->packet[0] & PACKET_TYPE_BITS ) return;
+
+    /* Check the ES is selected */
+    es_out_Control( p_demux->out, ES_OUT_GET_ES_STATE,
+                    p_stream->p_es, &b_selected );
+
+    if( p_stream->b_force_backup )
+    {
+        uint8_t *p_extra;
+        vlc_bool_t b_store_size = VLC_TRUE;
+
+        p_stream->i_packets_backup++;
+        switch( p_stream->fmt.i_codec )
+        {
+        case VLC_FOURCC( 'v','o','r','b' ):
+        case VLC_FOURCC( 's','p','x',' ' ):
+        case VLC_FOURCC( 't','h','e','o' ):
+            if( p_stream->i_packets_backup == 3 ) p_stream->b_force_backup = 0;
+            break;
+
+        case VLC_FOURCC( 'f','l','a','c' ):
+            if( !p_stream->fmt.audio.i_rate && p_stream->i_packets_backup == 2 )
+            {
+                Ogg_ReadFlacHeader( p_demux, p_stream, p_oggpacket );
+                p_stream->b_force_backup = 0;
+            }
+            else if( p_stream->fmt.audio.i_rate )
+            {
+                p_stream->b_force_backup = 0;
+                if( p_oggpacket->bytes >= 9 )
+                {
+                    p_oggpacket->packet += 9;
+                    p_oggpacket->bytes -= 9;
+                }
+            }
+            b_store_size = VLC_FALSE;
+            break;
+
+        default:
+            p_stream->b_force_backup = 0;
+            break;
+        }
+
+        /* Backup the ogg packet (likely an header packet) */
+        p_stream->p_headers =
+            realloc( p_stream->p_headers, p_stream->i_headers +
+                     p_oggpacket->bytes + (b_store_size ? 2 : 0) );
+        p_extra = p_stream->p_headers + p_stream->i_headers;
+        if( b_store_size )
+        {
+            *(p_extra++) = p_oggpacket->bytes >> 8;
+            *(p_extra++) = p_oggpacket->bytes & 0xFF;
+        }
+        memcpy( p_extra, p_oggpacket->packet, p_oggpacket->bytes );
+        p_stream->i_headers += p_oggpacket->bytes + (b_store_size ? 2 : 0);
+
+        if( !p_stream->b_force_backup )
+        {
+            /* Last header received, commit changes */
+            p_stream->fmt.i_extra = p_stream->i_headers;
+            p_stream->fmt.p_extra =
+                realloc( p_stream->fmt.p_extra, p_stream->i_headers );
+            memcpy( p_stream->fmt.p_extra, p_stream->p_headers,
+                    p_stream->i_headers );
+            es_out_Control( p_demux->out, ES_OUT_SET_FMT,
+                            p_stream->p_es, &p_stream->fmt );
+        }
+
+        b_selected = VLC_FALSE; /* Discard the header packet */
+    }
+
+    /* Convert the pcr into a pts */
+    if( p_stream->fmt.i_codec == VLC_FOURCC( 'v','o','r','b' ) ||
+        p_stream->fmt.i_codec == VLC_FOURCC( 's','p','x',' ' ) ||
+        p_stream->fmt.i_codec == VLC_FOURCC( 'f','l','a','c' ) )
+    {
+        if( p_stream->i_pcr >= 0 )
+        {
+            /* This is for streams where the granulepos of the header packets
+             * doesn't match these of the data packets (eg. ogg web radios). */
+            if( p_stream->i_previous_pcr == 0 &&
+                p_stream->i_pcr  > 3 * DEFAULT_PTS_DELAY )
+            {
+                es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
+
+                /* Call the pace control */
+                es_out_Control( p_demux->out, ES_OUT_SET_PCR,
+                                p_stream->i_pcr );
+            }
+
+            p_stream->i_previous_pcr = p_stream->i_pcr;
+
+            /* The granulepos is the end date of the sample */
+            i_pts =  p_stream->i_pcr;
+        }
+    }
+
+    /* Convert the granulepos into the next pcr */
+    i_interpolated_pts = p_stream->i_interpolated_pcr;
+    Ogg_UpdatePCR( p_stream, p_oggpacket );
+
+    if( p_stream->i_pcr >= 0 )
+    {
+        /* This is for streams where the granulepos of the header packets
+         * doesn't match these of the data packets (eg. ogg web radios). */
+        if( p_stream->i_previous_pcr == 0 &&
+            p_stream->i_pcr  > 3 * DEFAULT_PTS_DELAY )
+        {
+            es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
+
+            /* Call the pace control */
+            es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_stream->i_pcr );
+        }
+    }
+
+    if( p_stream->fmt.i_codec != VLC_FOURCC( 'v','o','r','b' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 's','p','x',' ' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 'f','l','a','c' ) &&
+        p_stream->i_pcr >= 0 )
+    {
+        p_stream->i_previous_pcr = p_stream->i_pcr;
+
+        /* The granulepos is the start date of the sample */
+        i_pts = p_stream->i_pcr;
+    }
+
+    if( !b_selected )
+    {
+        /* This stream isn't currently selected so we don't need to decode it,
+         * but we did need to store its pcr as it might be selected later on */
+        return;
+    }
+
+    if( p_oggpacket->bytes <= 0 )
+        return;
+
+    if( !( p_block = block_New( p_demux, p_oggpacket->bytes ) ) ) return;
+
+    /* Normalize PTS */
+    if( i_pts == 0 ) i_pts = 1;
+    else if( i_pts == -1 && i_interpolated_pts == 0 ) i_pts = 1;
+    else if( i_pts == -1 ) i_pts = 0;
+
+    if( p_stream->fmt.i_cat == AUDIO_ES )
+        p_block->i_dts = p_block->i_pts = i_pts;
+    else if( p_stream->fmt.i_cat == SPU_ES )
+    {
+        p_block->i_dts = p_block->i_pts = i_pts;
+        p_block->i_length = 0;
+    }
+    else if( p_stream->fmt.i_codec == VLC_FOURCC( 't','h','e','o' ) )
+        p_block->i_dts = p_block->i_pts = i_pts;
+    else
+    {
+        p_block->i_dts = i_pts;
+        p_block->i_pts = 0;
+    }
+
+    if( p_stream->fmt.i_codec != VLC_FOURCC( 'v','o','r','b' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 's','p','x',' ' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 'f','l','a','c' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 't','a','r','k' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 't','h','e','o' ) &&
+        p_stream->fmt.i_codec != VLC_FOURCC( 'c','m','m','l' ) )
+    {
+        /* We remove the header from the packet */
+        i_header_len = (*p_oggpacket->packet & PACKET_LEN_BITS01) >> 6;
+        i_header_len |= (*p_oggpacket->packet & PACKET_LEN_BITS2) << 1;
+
+        if( p_stream->fmt.i_codec == VLC_FOURCC( 's','u','b','t' ))
+        {
+            /* But with subtitles we need to retrieve the duration first */
+            int i, lenbytes = 0;
+
+            if( i_header_len > 0 && p_oggpacket->bytes >= i_header_len + 1 )
+            {
+                for( i = 0, lenbytes = 0; i < i_header_len; i++ )
+                {
+                    lenbytes = lenbytes << 8;
+                    lenbytes += *(p_oggpacket->packet + i_header_len - i);
+                }
+            }
+            if( p_oggpacket->bytes - 1 - i_header_len > 2 ||
+                ( p_oggpacket->packet[i_header_len + 1] != ' ' &&
+                  p_oggpacket->packet[i_header_len + 1] != 0 && 
+                  p_oggpacket->packet[i_header_len + 1] != '\n' &&
+                  p_oggpacket->packet[i_header_len + 1] != '\r' ) )
+            {
+                p_block->i_length = (mtime_t)lenbytes * 1000;
+            }
+        }
+
+        i_header_len++;
+        if( p_block->i_buffer >= i_header_len )
+            p_block->i_buffer -= i_header_len;
+        else
+            p_block->i_buffer = 0;
+    }
+
+    if( p_stream->fmt.i_codec == VLC_FOURCC( 't','a','r','k' ) )
+    {
+        /* FIXME: the biggest hack I've ever done */
+        msg_Warn( p_demux, "tarkin pts: "I64Fd", granule: "I64Fd,
+                  p_block->i_pts, p_block->i_dts );
+        msleep(10000);
+    }
+
+    memcpy( p_block->p_buffer, p_oggpacket->packet + i_header_len,
+            p_oggpacket->bytes - i_header_len );
+
+    es_out_Send( p_demux->out, p_stream->p_es, p_block );
+}
+
+/****************************************************************************
+ * Ogg_FindLogicalStreams: Find the logical streams embedded in the physical
+ *                         stream and fill p_ogg.
+ *****************************************************************************
+ * The initial page of a logical stream is marked as a 'bos' page.
+ * Furthermore, the Ogg specification mandates that grouped bitstreams begin
+ * together and all of the initial pages must appear before any data pages.
+ *
+ * On success this function returns VLC_SUCCESS.
+ ****************************************************************************/
+static int Ogg_FindLogicalStreams( demux_t *p_demux )
+{
+    demux_sys_t *p_ogg = p_demux->p_sys  ;
+    ogg_packet oggpacket;
+    ogg_page oggpage;
+    int i_stream;
+
+#define p_stream p_ogg->pp_stream[p_ogg->i_streams - 1]
+
+    while( Ogg_ReadPage( p_demux, &oggpage ) == VLC_SUCCESS )
+    {
+        if( ogg_page_bos( &oggpage ) )
+        {
+
+            /* All is wonderful in our fine fine little world.
+             * We found the beginning of our first logical stream. */
+            while( ogg_page_bos( &oggpage ) )
+            {
+                p_ogg->i_streams++;
+                p_ogg->pp_stream =
+                    realloc( p_ogg->pp_stream, p_ogg->i_streams *
+                             sizeof(logical_stream_t *) );
+
+                p_stream = malloc( sizeof(logical_stream_t) );
+                memset( p_stream, 0, sizeof(logical_stream_t) );
+                p_stream->p_headers = 0;
+                p_stream->secondary_header_packets = 0;
+
+                es_format_Init( &p_stream->fmt, 0, 0 );
+
+                /* Setup the logical stream */
+                p_stream->i_serial_no = ogg_page_serialno( &oggpage );
+                ogg_stream_init( &p_stream->os, p_stream->i_serial_no );
+
+                /* Extract the initial header from the first page and verify
+                 * the codec type of tis Ogg bitstream */
+                if( ogg_stream_pagein( &p_stream->os, &oggpage ) < 0 )
+                {
+                    /* error. stream version mismatch perhaps */
+                    msg_Err( p_demux, "error reading first page of "
+                             "Ogg bitstream data" );
+                    return VLC_EGENERIC;
+                }
+
+                /* FIXME: check return value */
+                ogg_stream_packetpeek( &p_stream->os, &oggpacket );
+
+                /* Check for Vorbis header */
+                if( oggpacket.bytes >= 7 &&
+                    ! memcmp( &oggpacket.packet[1], "vorbis", 6 ) )
+                {
+                    Ogg_ReadVorbisHeader( p_stream, &oggpacket );
+                    msg_Dbg( p_demux, "found vorbis header" );
+                }
+                /* Check for Speex header */
+                else if( oggpacket.bytes >= 7 &&
+                    ! memcmp( &oggpacket.packet[0], "Speex", 5 ) )
+                {
+                    Ogg_ReadSpeexHeader( p_stream, &oggpacket );
+                    msg_Dbg( p_demux, "found speex header, channels: %i, "
+                             "rate: %i,  bitrate: %i",
+                             p_stream->fmt.audio.i_channels,
+                             (int)p_stream->f_rate, p_stream->fmt.i_bitrate );
+                }
+                /* Check for Flac header (< version 1.1.1) */
+                else if( oggpacket.bytes >= 4 &&
+                    ! memcmp( &oggpacket.packet[0], "fLaC", 4 ) )
+                {
+                    msg_Dbg( p_demux, "found FLAC header" );
+
+                    /* Grrrr!!!! Did they really have to put all the
+                     * important info in the second header packet!!!
+                     * (STREAMINFO metadata is in the following packet) */
+                    p_stream->b_force_backup = 1;
+
+                    p_stream->fmt.i_cat = AUDIO_ES;
+                    p_stream->fmt.i_codec = VLC_FOURCC( 'f','l','a','c' );
+                }
+                /* Check for Flac header (>= version 1.1.1) */
+                else if( oggpacket.bytes >= 13 && oggpacket.packet[0] ==0x7F &&
+                    ! memcmp( &oggpacket.packet[1], "FLAC", 4 ) &&
+                    ! memcmp( &oggpacket.packet[9], "fLaC", 4 ) )
+                {
+                    int i_packets = ((int)oggpacket.packet[7]) << 8 |
+                        oggpacket.packet[8];
+                    msg_Dbg( p_demux, "found FLAC header version %i.%i "
+                             "(%i header packets)",
+                             oggpacket.packet[5], oggpacket.packet[6],
+                             i_packets );
+
+                    p_stream->b_force_backup = 1;
+
+                    p_stream->fmt.i_cat = AUDIO_ES;
+                    p_stream->fmt.i_codec = VLC_FOURCC( 'f','l','a','c' );
+                    oggpacket.packet += 13; oggpacket.bytes -= 13;
+                    Ogg_ReadFlacHeader( p_demux, p_stream, &oggpacket );
+                }
+                /* Check for Theora header */
+                else if( oggpacket.bytes >= 7 &&
+                         ! memcmp( &oggpacket.packet[1], "theora", 6 ) )
+                {
+                    Ogg_ReadTheoraHeader( p_stream, &oggpacket );
+
+                    msg_Dbg( p_demux,
+                             "found theora header, bitrate: %i, rate: %f",
+                             p_stream->fmt.i_bitrate, p_stream->f_rate );
+                }
+                /* Check for Tarkin header */
+                else if( oggpacket.bytes >= 7 &&
+                         ! memcmp( &oggpacket.packet[1], "tarkin", 6 ) )
+                {
+                    oggpack_buffer opb;
+
+                    msg_Dbg( p_demux, "found tarkin header" );
+                    p_stream->fmt.i_cat = VIDEO_ES;
+                    p_stream->fmt.i_codec = VLC_FOURCC( 't','a','r','k' );
+
+                    /* Cheat and get additionnal info ;) */
+                    oggpack_readinit( &opb, oggpacket.packet, oggpacket.bytes);
+                    oggpack_adv( &opb, 88 );
+                    oggpack_adv( &opb, 104 );
+                    p_stream->fmt.i_bitrate = oggpack_read( &opb, 32 );
+                    p_stream->f_rate = 2; /* FIXME */
+                    msg_Dbg( p_demux,
+                             "found tarkin header, bitrate: %i, rate: %f",
+                             p_stream->fmt.i_bitrate, p_stream->f_rate );
+                }
+                /* Check for Annodex header */
+                else if( oggpacket.bytes >= 7 &&
+                         ! memcmp( &oggpacket.packet[0], "fishead", 7 ) )
+                {
+                    Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream,
+                                           &oggpacket );
+                }
+                /* Check for Annodex header */
+                else if( oggpacket.bytes >= 7 &&
+                         ! memcmp( &oggpacket.packet[0], "fisbone", 7 ) )
+                {
+                    Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream,
+                                           &oggpacket );
+                }
+                else if( oggpacket.bytes >= 142 &&
+                         ! memcmp( &oggpacket.packet[1],
+                                   "Direct Show Samples embedded in Ogg", 35 ))
+                {
+                    /* Old header type */
+
+                    /* Check for video header (old format) */
+                    if( GetDWLE((oggpacket.packet+96)) == 0x05589f80 &&
+                        oggpacket.bytes >= 184 )
+                    {
+                        p_stream->fmt.i_cat = VIDEO_ES;
+                        p_stream->fmt.i_codec =
+                            VLC_FOURCC( oggpacket.packet[68],
+                                        oggpacket.packet[69],
+                                        oggpacket.packet[70],
+                                        oggpacket.packet[71] );
+                        msg_Dbg( p_demux, "found video header of type: %.4s",
+                                 (char *)&p_stream->fmt.i_codec );
+
+                        p_stream->fmt.video.i_frame_rate = 10000000;
+                        p_stream->fmt.video.i_frame_rate_base =
+                            GetQWLE((oggpacket.packet+164));
+                        p_stream->f_rate = 10000000.0 /
+                            GetQWLE((oggpacket.packet+164));
+                        p_stream->fmt.video.i_bits_per_pixel =
+                            GetWLE((oggpacket.packet+182));
+                        if( !p_stream->fmt.video.i_bits_per_pixel )
+                            /* hack, FIXME */
+                            p_stream->fmt.video.i_bits_per_pixel = 24;
+                        p_stream->fmt.video.i_width =
+                            GetDWLE((oggpacket.packet+176));
+                        p_stream->fmt.video.i_height =
+                            GetDWLE((oggpacket.packet+180));
+
+                        msg_Dbg( p_demux,
+                                 "fps: %f, width:%i; height:%i, bitcount:%i",
+                                 p_stream->f_rate,
+                                 p_stream->fmt.video.i_width,
+                                 p_stream->fmt.video.i_height,
+                                 p_stream->fmt.video.i_bits_per_pixel);
+
+                    }
+                    /* Check for audio header (old format) */
+                    else if( GetDWLE((oggpacket.packet+96)) == 0x05589F81 )
+                    {
+                        unsigned int i_extra_size;
+                        unsigned int i_format_tag;
+
+                        p_stream->fmt.i_cat = AUDIO_ES;
+
+                        i_extra_size = GetWLE((oggpacket.packet+140));
+                        if( i_extra_size )
+                        {
+                            p_stream->fmt.i_extra = i_extra_size;
+                            p_stream->fmt.p_extra = malloc( i_extra_size );
+                            memcpy( p_stream->fmt.p_extra,
+                                    oggpacket.packet + 142, i_extra_size );
+                        }
+
+                        i_format_tag = GetWLE((oggpacket.packet+124));
+                        p_stream->fmt.audio.i_channels =
+                            GetWLE((oggpacket.packet+126));
+                        p_stream->f_rate = p_stream->fmt.audio.i_rate =
+                            GetDWLE((oggpacket.packet+128));
+                        p_stream->fmt.i_bitrate =
+                            GetDWLE((oggpacket.packet+132)) * 8;
+                        p_stream->fmt.audio.i_blockalign =
+                            GetWLE((oggpacket.packet+136));
+                        p_stream->fmt.audio.i_bitspersample =
+                            GetWLE((oggpacket.packet+138));
+
+                        wf_tag_to_fourcc( i_format_tag,
+                                          &p_stream->fmt.i_codec, 0 );
+
+                        if( p_stream->fmt.i_codec ==
+                            VLC_FOURCC('u','n','d','f') )
+                        {
+                            p_stream->fmt.i_codec = VLC_FOURCC( 'm', 's',
+                                ( i_format_tag >> 8 ) & 0xff,
+                                i_format_tag & 0xff );
+                        }
+
+                        msg_Dbg( p_demux, "found audio header of type: %.4s",
+                                 (char *)&p_stream->fmt.i_codec );
+                        msg_Dbg( p_demux, "audio:0x%4.4x channels:%d %dHz "
+                                 "%dbits/sample %dkb/s",
+                                 i_format_tag,
+                                 p_stream->fmt.audio.i_channels,
+                                 p_stream->fmt.audio.i_rate,
+                                 p_stream->fmt.audio.i_bitspersample,
+                                 p_stream->fmt.i_bitrate / 1024 );
+
+                    }
+                    else
+                    {
+                        msg_Dbg( p_demux, "stream %d has an old header "
+                            "but is of an unknown type", p_ogg->i_streams-1 );
+                        free( p_stream );
+                        p_ogg->i_streams--;
+                    }
+                }
+                else if( (*oggpacket.packet & PACKET_TYPE_BITS )
+                         == PACKET_TYPE_HEADER &&
+                         oggpacket.bytes >= (int)sizeof(stream_header)+1 )
+                {
+                    stream_header *st = (stream_header *)(oggpacket.packet+1);
+
+                    /* Check for video header (new format) */
+                    if( !strncmp( st->streamtype, "video", 5 ) )
+                    {
+                        p_stream->fmt.i_cat = VIDEO_ES;
+
+                        /* We need to get rid of the header packet */
+                        ogg_stream_packetout( &p_stream->os, &oggpacket );
+
+                        p_stream->fmt.i_codec =
+                            VLC_FOURCC( st->subtype[0], st->subtype[1],
+                                        st->subtype[2], st->subtype[3] );
+                        msg_Dbg( p_demux, "found video header of type: %.4s",
+                                 (char *)&p_stream->fmt.i_codec );
+
+                        p_stream->fmt.video.i_frame_rate = 10000000;
+                        p_stream->fmt.video.i_frame_rate_base =
+                            GetQWLE(&st->time_unit);
+                        p_stream->f_rate = 10000000.0 /
+                            GetQWLE(&st->time_unit);
+                        p_stream->fmt.video.i_bits_per_pixel =
+                            GetWLE(&st->bits_per_sample);
+                        p_stream->fmt.video.i_width =
+                            GetDWLE(&st->sh.video.width);
+                        p_stream->fmt.video.i_height =
+                            GetDWLE(&st->sh.video.height);
+
+                        msg_Dbg( p_demux,
+                                 "fps: %f, width:%i; height:%i, bitcount:%i",
+                                 p_stream->f_rate,
+                                 p_stream->fmt.video.i_width,
+                                 p_stream->fmt.video.i_height,
+                                 p_stream->fmt.video.i_bits_per_pixel );
+                    }
+                    /* Check for audio header (new format) */
+                    else if( !strncmp( st->streamtype, "audio", 5 ) )
+                    {
+                        char p_buffer[5];
+                        int i_format_tag;
+
+                        p_stream->fmt.i_cat = AUDIO_ES;
+
+                        /* We need to get rid of the header packet */
+                        ogg_stream_packetout( &p_stream->os, &oggpacket );
+
+                        p_stream->fmt.i_extra = GetQWLE(&st->size) -
+                            sizeof(stream_header);
+                        if( p_stream->fmt.i_extra )
+                        {
+                            p_stream->fmt.p_extra =
+                                malloc( p_stream->fmt.i_extra );
+                            memcpy( p_stream->fmt.p_extra, st + 1,
+                                    p_stream->fmt.i_extra );
+                        }
+
+                        memcpy( p_buffer, st->subtype, 4 );
+                        p_buffer[4] = '\0';
+                        i_format_tag = strtol(p_buffer,NULL,16);
+                        p_stream->fmt.audio.i_channels =
+                            GetWLE(&st->sh.audio.channels);
+                        p_stream->f_rate = p_stream->fmt.audio.i_rate =
+                            GetQWLE(&st->samples_per_unit);
+                        p_stream->fmt.i_bitrate =
+                            GetDWLE(&st->sh.audio.avgbytespersec) * 8;
+                        p_stream->fmt.audio.i_blockalign =
+                            GetWLE(&st->sh.audio.blockalign);
+                        p_stream->fmt.audio.i_bitspersample =
+                            GetWLE(&st->bits_per_sample);
+
+                        wf_tag_to_fourcc( i_format_tag,
+                                          &p_stream->fmt.i_codec, 0 );
+
+                        if( p_stream->fmt.i_codec ==
+                            VLC_FOURCC('u','n','d','f') )
+                        {
+                            p_stream->fmt.i_codec = VLC_FOURCC( 'm', 's',
+                                ( i_format_tag >> 8 ) & 0xff,
+                                i_format_tag & 0xff );
+                        }
+
+                        msg_Dbg( p_demux, "found audio header of type: %.4s",
+                                 (char *)&p_stream->fmt.i_codec );
+                        msg_Dbg( p_demux, "audio:0x%4.4x channels:%d %dHz "
+                                 "%dbits/sample %dkb/s",
+                                 i_format_tag,
+                                 p_stream->fmt.audio.i_channels,
+                                 p_stream->fmt.audio.i_rate,
+                                 p_stream->fmt.audio.i_bitspersample,
+                                 p_stream->fmt.i_bitrate / 1024 );
+                    }
+                    /* Check for text (subtitles) header */
+                    else if( !strncmp(st->streamtype, "text", 4) )
+                    {
+                        /* We need to get rid of the header packet */
+                        ogg_stream_packetout( &p_stream->os, &oggpacket );
+
+                        msg_Dbg( p_demux, "found text subtitles header" );
+                        p_stream->fmt.i_cat = SPU_ES;
+                        p_stream->fmt.i_codec = VLC_FOURCC('s','u','b','t');
+                        p_stream->f_rate = 1000; /* granulepos is in milisec */
+                    }
+                    else
+                    {
+                        msg_Dbg( p_demux, "stream %d has a header marker "
+                            "but is of an unknown type", p_ogg->i_streams-1 );
+                        free( p_stream );
+                        p_ogg->i_streams--;
+                    }
+                }
+                else
+                {
+                    msg_Dbg( p_demux, "stream %d is of unknown type",
+                             p_ogg->i_streams-1 );
+                    free( p_stream );
+                    p_ogg->i_streams--;
+                }
+
+                if( Ogg_ReadPage( p_demux, &oggpage ) != VLC_SUCCESS )
+                    return VLC_EGENERIC;
+            }
+
+            /* This is the first data page, which means we are now finished
+             * with the initial pages. We just need to store it in the relevant
+             * bitstream. */
+            for( i_stream = 0; i_stream < p_ogg->i_streams; i_stream++ )
+            {
+                if( ogg_stream_pagein( &p_ogg->pp_stream[i_stream]->os,
+                                       &oggpage ) == 0 )
+                {
+                    break;
+                }
+            }
+
+            return VLC_SUCCESS;
+        }
+    }
+#undef p_stream
+
+    return VLC_EGENERIC;
+}
+
+/****************************************************************************
+ * Ogg_BeginningOfStream: Look for Beginning of Stream ogg pages and add
+ *                        Elementary streams.
+ ****************************************************************************/
+static int Ogg_BeginningOfStream( demux_t *p_demux )
+{
+    demux_sys_t *p_ogg = p_demux->p_sys  ;
+    int i_stream;
+
+    /* Find the logical streams embedded in the physical stream and
+     * initialize our p_ogg structure. */
+    if( Ogg_FindLogicalStreams( p_demux ) != VLC_SUCCESS )
+    {
+        msg_Warn( p_demux, "couldn't find any ogg logical stream" );
+        return VLC_EGENERIC;
+    }
+
+    p_ogg->i_bitrate = 0;
+
+    for( i_stream = 0 ; i_stream < p_ogg->i_streams; i_stream++ )
+    {
+#define p_stream p_ogg->pp_stream[i_stream]
+        p_stream->p_es = es_out_Add( p_demux->out, &p_stream->fmt );
+
+        if( p_stream->fmt.i_codec == VLC_FOURCC('c','m','m','l') )
+        {
+            /* Set the CMML stream active */
+            es_out_Control( p_demux->out, ES_OUT_SET_ES, p_stream->p_es );
+        }
+
+        p_ogg->i_bitrate += p_stream->fmt.i_bitrate;
+
+        p_stream->i_pcr = p_stream->i_previous_pcr =
+            p_stream->i_interpolated_pcr = -1;
+        p_stream->b_reinit = 0;
+#undef p_stream
+    }
+
+    return VLC_SUCCESS;
+}
+
+/****************************************************************************
+ * Ogg_EndOfStream: clean up the ES when an End of Stream is detected.
+ ****************************************************************************/
+static void Ogg_EndOfStream( demux_t *p_demux )
+{
+    demux_sys_t *p_ogg = p_demux->p_sys  ;
+    int i_stream;
+
+#define p_stream p_ogg->pp_stream[i_stream]
+    for( i_stream = 0 ; i_stream < p_ogg->i_streams; i_stream++ )
+    {
+        if( p_stream->p_es )
+            es_out_Del( p_demux->out, p_stream->p_es );
+
+        p_ogg->i_bitrate -= p_stream->fmt.i_bitrate;
+
+        ogg_stream_clear( &p_ogg->pp_stream[i_stream]->os );
+        if( p_ogg->pp_stream[i_stream]->p_headers)
+            free( p_ogg->pp_stream[i_stream]->p_headers );
+
+        es_format_Clean( &p_stream->fmt );
+
+        free( p_ogg->pp_stream[i_stream] );
+    }
+#undef p_stream
+
+    /* Reinit p_ogg */
+    if( p_ogg->pp_stream ) free( p_ogg->pp_stream );
+    p_ogg->pp_stream = NULL;
+    p_ogg->i_streams = 0;
+}
+
+static void Ogg_ReadTheoraHeader( logical_stream_t *p_stream,
+                                  ogg_packet *p_oggpacket )
+{
+    bs_t bitstream;
+    int i_fps_numerator;
+    int i_fps_denominator;
+    int i_keyframe_frequency_force;
+
+    p_stream->fmt.i_cat = VIDEO_ES;
+    p_stream->fmt.i_codec = VLC_FOURCC( 't','h','e','o' );
+
+    /* Signal that we want to keep a backup of the theora
+     * stream headers. They will be used when switching between
+     * audio streams. */
+    p_stream->b_force_backup = 1;
+
+    /* Cheat and get additionnal info ;) */
+    bs_init( &bitstream, p_oggpacket->packet, p_oggpacket->bytes );
+    bs_skip( &bitstream, 56 );
+    bs_read( &bitstream, 8 ); /* major version num */
+    bs_read( &bitstream, 8 ); /* minor version num */
+    bs_read( &bitstream, 8 ); /* subminor version num */
+    bs_read( &bitstream, 16 ) /*<< 4*/; /* width */
+    bs_read( &bitstream, 16 ) /*<< 4*/; /* height */
+    bs_read( &bitstream, 24 ); /* frame width */
+    bs_read( &bitstream, 24 ); /* frame height */
+    bs_read( &bitstream, 8 ); /* x offset */
+    bs_read( &bitstream, 8 ); /* y offset */
+
+    i_fps_numerator = bs_read( &bitstream, 32 );
+    i_fps_denominator = bs_read( &bitstream, 32 );
+    bs_read( &bitstream, 24 ); /* aspect_numerator */
+    bs_read( &bitstream, 24 ); /* aspect_denominator */
+
+    p_stream->fmt.video.i_frame_rate = i_fps_numerator;
+    p_stream->fmt.video.i_frame_rate_base = i_fps_denominator;
+
+    bs_read( &bitstream, 8 ); /* colorspace */
+    p_stream->fmt.i_bitrate = bs_read( &bitstream, 24 );
+    bs_read( &bitstream, 6 ); /* quality */
+
+    i_keyframe_frequency_force = 1 << bs_read( &bitstream, 5 );
+
+    /* granule_shift = i_log( frequency_force -1 ) */
+    p_stream->i_theora_keyframe_granule_shift = 0;
+    i_keyframe_frequency_force--;
+    while( i_keyframe_frequency_force )
+    {
+        p_stream->i_theora_keyframe_granule_shift++;
+        i_keyframe_frequency_force >>= 1;
+    }
+
+    p_stream->f_rate = ((float)i_fps_numerator) / i_fps_denominator;
+}
+
+static void Ogg_ReadVorbisHeader( logical_stream_t *p_stream,
+                                  ogg_packet *p_oggpacket )
+{
+    oggpack_buffer opb;
+
+    p_stream->fmt.i_cat = AUDIO_ES;
+    p_stream->fmt.i_codec = VLC_FOURCC( 'v','o','r','b' );
+
+    /* Signal that we want to keep a backup of the vorbis
+     * stream headers. They will be used when switching between
+     * audio streams. */
+    p_stream->b_force_backup = 1;
+
+    /* Cheat and get additionnal info ;) */
+    oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes);
+    oggpack_adv( &opb, 88 );
+    p_stream->fmt.audio.i_channels = oggpack_read( &opb, 8 );
+    p_stream->f_rate = p_stream->fmt.audio.i_rate =
+        oggpack_read( &opb, 32 );
+    oggpack_adv( &opb, 32 );
+    p_stream->fmt.i_bitrate = oggpack_read( &opb, 32 );
+}
+
+static void Ogg_ReadSpeexHeader( logical_stream_t *p_stream,
+                                 ogg_packet *p_oggpacket )
+{
+    oggpack_buffer opb;
+
+    p_stream->fmt.i_cat = AUDIO_ES;
+    p_stream->fmt.i_codec = VLC_FOURCC( 's','p','x',' ' );
+
+    /* Signal that we want to keep a backup of the speex
+     * stream headers. They will be used when switching between
+     * audio streams. */
+    p_stream->b_force_backup = 1;
+
+    /* Cheat and get additionnal info ;) */
+    oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes);
+    oggpack_adv( &opb, 224 );
+    oggpack_adv( &opb, 32 ); /* speex_version_id */
+    oggpack_adv( &opb, 32 ); /* header_size */
+    p_stream->f_rate = p_stream->fmt.audio.i_rate = oggpack_read( &opb, 32 );
+    oggpack_adv( &opb, 32 ); /* mode */
+    oggpack_adv( &opb, 32 ); /* mode_bitstream_version */
+    p_stream->fmt.audio.i_channels = oggpack_read( &opb, 32 );
+    p_stream->fmt.i_bitrate = oggpack_read( &opb, 32 );
+}
+
+static void Ogg_ReadFlacHeader( demux_t *p_demux, logical_stream_t *p_stream,
+                                ogg_packet *p_oggpacket )
+{
+    /* Parse the STREAMINFO metadata */
+    bs_t s;
+
+    bs_init( &s, p_oggpacket->packet, p_oggpacket->bytes );
+
+    bs_read( &s, 1 );
+    if( bs_read( &s, 7 ) == 0 )
+    {
+        if( bs_read( &s, 24 ) >= 34 /*size STREAMINFO*/ )
+        {
+            bs_skip( &s, 80 );
+            p_stream->f_rate = p_stream->fmt.audio.i_rate = bs_read( &s, 20 );
+            p_stream->fmt.audio.i_channels = bs_read( &s, 3 ) + 1;
+
+            msg_Dbg( p_demux, "FLAC header, channels: %i, rate: %i",
+                     p_stream->fmt.audio.i_channels, (int)p_stream->f_rate );
+        }
+        else msg_Dbg( p_demux, "FLAC STREAMINFO metadata too short" );
+
+        /* Fake this as the last metadata block */
+        *((uint8_t*)p_oggpacket->packet) |= 0x80;
+    }
+    else
+    {
+        /* This ain't a STREAMINFO metadata */
+        msg_Dbg( p_demux, "Invalid FLAC STREAMINFO metadata" );
+    }
+}
+
+static void Ogg_ReadAnnodexHeader( vlc_object_t *p_this,
+                                   logical_stream_t *p_stream,
+                                   ogg_packet *p_oggpacket )
+{
+    if( p_oggpacket->bytes >= 28 &&
+        !memcmp( &p_oggpacket->packet[0], "fishead", 7 ) )
+    {
+        oggpack_buffer opb;
+
+        uint16_t major_version;
+        uint16_t minor_version;
+        uint64_t presentationtime_numerator;
+        uint64_t presentationtime_denominator;
+        uint64_t basetime_numerator;
+        uint64_t basetime_denominator;
+        char content_type_string[20];
+
+        /* Read in Annodex header fields:
+         * we use UNKNOWN_ES here since it's the skeleton bitstream header only.
+         * Future releases could support NAV_ES (navigation elementary stream) */
+
+        p_stream->fmt.i_cat = UNKNOWN_ES;
+        
+        /* the anxs FOURCC was invented here for the skeleton logical bitstream */
+        p_stream->fmt.i_codec = VLC_FOURCC( 'a','n','x','s' );
+
+        /* Signal that we want to keep a backup of the skeleton stream headers */
+        p_stream->b_force_backup = 1;
+
+        /* Cheat and get additionnal info ;) */
+        oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes );
+        oggpack_adv( &opb, 8*8 );                  /* "fishead\0" header */
+
+        major_version = oggpack_read( &opb, 2*8 ); /* major version */
+        minor_version = oggpack_read( &opb, 2*8 ); /* minor version */
+
+        presentationtime_numerator   = GetQWLE( &p_oggpacket->packet[12] );
+        presentationtime_denominator = GetQWLE( &p_oggpacket->packet[20] );
+
+        basetime_numerator   = GetQWLE( &p_oggpacket->packet[28] );
+        basetime_denominator = GetQWLE( &p_oggpacket->packet[36] );
+        
+        sscanf( &p_oggpacket->packet[44], "%20s", content_type_string );
+    }
+    else if( p_oggpacket->bytes >= 42 &&
+             !memcmp( &p_oggpacket->packet[0], "fisbone", 7 ) )
+    {
+        oggpack_buffer opb;
+    	
+    	uint32_t message_fields_offset;
+    	uint32_t serial_no;
+        uint64_t granule_rate_numerator;
+        uint64_t granule_rate_denominator;
+        uint64_t start_granule;
+        uint32_t preroll;
+        uint8_t  granule_shift;
+        char content_type_string[1024];
+
+        /* Read in Annodex header fields */
+        oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes );
+        oggpack_adv( &opb, 8*8 );                  /* "fisbone\0" header */
+
+        message_fields_offset = GetDWLE( &p_oggpacket->packet[8] );
+        serial_no             = GetDWLE( &p_oggpacket->packet[12] );
+        p_stream->secondary_header_packets
+                              = GetDWLE( &p_oggpacket->packet[16] );
+
+        granule_rate_numerator   = GetQWLE( &p_oggpacket->packet[20] );
+        granule_rate_denominator = GetQWLE( &p_oggpacket->packet[28] );
+        start_granule            = GetQWLE( &p_oggpacket->packet[36] );
+        preroll                  = GetDWLE( &p_oggpacket->packet[44] );
+
+        /* Granule Shift takes up the first byte of data */
+        uint8_t * bytepacket     = (uint8_t *)&p_oggpacket->packet[48];
+        granule_shift            = bytepacket[0];
+
+        /* we are guaranteed that the first header field will be
+         * the content-type (by the Annodex standard) */
+        if( !strncasecmp( (char*)(&p_oggpacket->packet[52]), "Content-Type: ", 14 ) )
+        {
+            uint8_t *p = memchr( &p_oggpacket->packet[52], '\r',
+                                 p_oggpacket->bytes - 1 );
+            if( p && p[0] == '\r' && p[1] == '\n' )
+                sscanf( (char*)(&p_oggpacket->packet[52]), "%1024s\r\n",
+                        content_type_string );
+        }
+
+        msg_Dbg( p_this, "Annodex packet info: "I64Fd" / "I64Fd", %d, ``%s''",
+                 granule_rate_numerator, granule_rate_denominator,
+                 p_stream->secondary_header_packets, content_type_string );
+
+        p_stream->f_rate = (float) granule_rate_numerator /
+            (float) granule_rate_denominator;
+
+        /* What type of file do we have:
+         * strcmp used as content_type_string extracted manually from stream
+         * (Wave and MPEG Formats are for future implementation) */
+
+        if( !strncmp(content_type_string, "audio/x-wav", 11) )
+        {
+            p_stream->fmt.i_cat = AUDIO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 'w','a','v',' ' );
+        }
+        else if( !strncmp(content_type_string, "audio/x-vorbis", 14) )
+        {
+            p_stream->fmt.i_cat = AUDIO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 'v','o','r','b' );
+
+            p_stream->b_force_backup = 1;
+        }
+        else if( !strncmp(content_type_string, "audio/x-speex", 14) )
+        {
+            p_stream->fmt.i_cat = AUDIO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 's','p','x',' ' );
+
+            p_stream->b_force_backup = 1;
+        }
+        else if( !strncmp(content_type_string, "video/x-theora", 14) )
+        {
+            p_stream->fmt.i_cat = VIDEO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 't','h','e','o' );
+
+            p_stream->b_force_backup = 1;
+        }
+        else if( !strncmp(content_type_string, "video/x-xvid", 14) )
+        {
+            p_stream->fmt.i_cat = VIDEO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 'x','v','i','d' );
+
+            p_stream->b_force_backup = 1;
+        }
+        else if( !strncmp(content_type_string, "video/mpeg", 14) )
+        {
+            p_stream->fmt.i_cat = VIDEO_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 'm','p','g','v' );
+        }
+        else if( !strncmp(content_type_string, "text/x-cmml", 11) )
+        {
+            ogg_stream_packetout( &p_stream->os, p_oggpacket );
+            p_stream->fmt.i_cat = SPU_ES;
+            p_stream->fmt.i_codec = VLC_FOURCC( 'c','m','m','l' );
+        }
+    }
+}


-- 
cchiu



More information about the cvs-annodex mailing list