[Portaudio] configure.in patch (was: Re: ASIO/MinGW install)

Ross Bencina rossb-lists at audiomulch.com
Tue Dec 8 04:40:39 EST 2009


Hi All

I have now checked in the autoconf changes from Stelios Bounanos (see the 
two emails copied below). I have not tested this myself.
>>>>
Update to Makefile.in and Configure.in from Stelios Bounanos: Pretty-print 
help strings, Support multiple APIs on win32 with mingw, Output a 
configuration summary at the end, Remove ASIO build configuration from OSX
<<<<


I think someone still needs to regenerate the actual configure script (?) 
since Stelios wrote:
> The patch does not include changes to generated files (you'll need to run
> autoconf).  If anyone would like to test the changes but does not have 
> autoconf,
> there is a source tarball here:

Could people please test this and send me a copy of the generated files when 
you're happy? thanks.

Thanks

Ross.

----- Original Message ----- 
From: "Stelios Bounanos" <sb-lst at enotty.net>
To: "Portaudio Mailing List" <portaudio at music.columbia.edu>
Cc: "Ross Bencina" <rossb-lists at audiomulch.com>
Sent: Thursday, November 05, 2009 8:31 AM
Subject: Re: [Portaudio] configure.in patch (was: Re: ASIO/MinGW install)


>>>>>> On Wed, 4 Nov 2009 21:52:51 +1100, "Ross Bencina" 
>>>>>> <rossb-lists at audiomulch.com> said:
>
> [...]
>
>> Please remove support for ASIO on OS X. There is none. PAv19 won't 
>> currently
>> build on OS9 and even if it did, it probably wouldn't use ./configure
>
> This second patch removes the --with-macapi switch and $with_asio
> handling.  Because CoreAudio is the only PA host api on OS X, I have
> removed the relevant lines from the configuration summary.
>
>  http://enotty.net/tmp/pa/remove-mac-asio.patch
>
> It is meant to be applied on top of improve-autoconf.patch.
>
>> Once that's done I'll check it in to SVN unless there are other obvious
>> problems people post to the list in the next few days.
>
> Thanks, Ross.
>
>
> -- 
>
> Stelios Bounanos
> perl -e 'print+reverse"t\nney.ttno\@esb"=~/(..)/sg'     #key: 0xE88A7F61

----- Original Message ----- 
From: "Stelios Bounanos" <sb-lst at enotty.net>
To: "Portaudio Mailing List" <portaudio at music.columbia.edu>
Sent: Sunday, November 01, 2009 11:48 AM
Subject: [Portaudio] configure.in patch (was: Re: ASIO/MinGW install)


>>>>>> On Sat, 31 Oct 2009 15:59:15 +1100, "Ross Bencina" 
>>>>>> <rossb-lists at audiomulch.com> said:
>
> [snip]
>
>> In the short term at least, the ideal solution to a suboptimal 
>> ./configure
>> on gcc/windows is to fix ./configure on Windows. It is not the fault of
>> autotools that ./configure doesn't support all drivers at once on 
>> Windows,
>> it is simply that our configure script wasn't written / hasn't been 
>> updated
>> to support that. I tend to agree with Bjorn that we need to relax our 
>> review
>> and commit policy on this otherwise we may not get anywhere... so if 
>> anyone
>> would like to propose a patch I'll commit it straight away and we can see
>> how it goes. Presumably the script supports combined ALSA+OSS+JACK 
>> support
>> on Linux, so there should be some multi-host-api support in there 
>> already.
>
> Here is a patch against latest SVN to improve configure.in in the 
> following
> ways:
>
> * Pretty-print help strings
> * Support multiple APIs on win32 with mingw
> * Output a configuration summary at the end
>
>  http://enotty.net/tmp/pa/improve-autoconf.patch
>
> The patch does not include changes to generated files (you'll need to run
> autoconf).  If anyone would like to test the changes but does not have 
> autoconf,
> there is a source tarball here:
>
>  http://enotty.net/tmp/pa/portaudio-01b8f82.tar.gz
>
> Some more details about the changes:
>
> * The --with-winapi switch now understands a comma-separated list of API 
> names
>  (see below for an example.  A missing --with-winapi is treated as
>  --with-winapi=wmme.  APIs other than WMME will probably require 
> a --with-dxdir
>  or --with-asiodir, same as before.
>
> * ASIO API source needs to be built with the C++ compiler, which is what 
> all the
>  changes to Makefile.in are for.  PaAsio_* symbols are exported because
>  pa_devs.c calls PaAsio_GetAvailableLatencyValues.
>
> * The -lstdc++ switch is no longer used for ASIO and WMME.  It does not 
> work
>  with i586-mingw32msvc-gcc (see below) and seems redundant anyway.
>
> * ALSA, OSS or JACK presence is not tested at all if a 
> corresponding --without-
>  switch has been passed to configure.
>
>
> I tested the modified configure.in on Debian unstable and OS X 10.6 but I 
> have
> no access to a Windows box at the moment.  Instead, I cross-compiled on 
> Debian
> using the mingw-* packages.  The cross compiler triggers the same parts of
> configure.in as the Windows mingw32 compiler would, so hopefully it will 
> work
> there too.  This was the configure command:
>
>  ./configure --build=i686-pc-linux-gnu --host=i586-mingw32msvc --with-winapi=directx,wmme,wdmks,asio 
>  --with-dxdir=/opt/win32/directx --with-asiodir=/opt/win32/asiosdk2
>
> I used DS headers from Wine and some ks.h & ksmedia.h headers of unknown 
> origin
> that google found for me.  The cross compilers were i586-mingw32msvc-gcc
> 4.2.1-sjlj and 4.4.1.
>
> All APIs and tests compile and link but I have no way of testing on 
> Windows.
> WMME and DirectSound devices are shown by the pa_dev test program under 
> Wine.
> If I enable WDMKS in src/os/win/pa_win_hostapis.c, pa_devs crashes under 
> Wine
> right away -- but that's probably expected.
>
>
> Some further issues:
>
> 1) I noticed that ASIO does not compile on OS X 10.6: there are errors 
> about
>   multi-char character constants, warnings that are treated as errors 
> because
>   of -Werror in CXXFLAGS, a -std=c99 flag that g++ does not like, etc. 
> This
>   suggests to me that ASIO on OS X has not been supported for some time. 
> BTW
>   it does not work with the unpatched PortAudio either because Makefile.in 
> has
>   no rule to build .cpp files with libtool.
>
> 2) WDMKS is commented out in src/os/win/pa_win_hostapis.c, so I don't know 
> if
>   it's supposed to work?  If not, it should be treated as an invalid
>   --with-winapi argument by configure.
>
> 3) I have not modified the cygwin part of configure.in, it will still only 
> build
>   WMME.  But it should be possible to use something like this:
>
>   ./configure --host=... CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"
>
>
> -- 
>
> Stelios Bounanos
> perl -e 'print+reverse"t\nney.ttno\@esb"=~/(..)/sg'     #key: 0xE88A7F61
> _______________________________________________
> Portaudio mailing list
> Portaudio at music.columbia.edu
> http://music.columbia.edu/mailman/listinfo/portaudio 



More information about the Portaudio mailing list