[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