Opened 15 years ago

Closed 13 years ago

#18718 closed defect (fixed)

portaudio: universal variant

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: Cc:
Port: portaudio

Description

portaudio includes these lines:

# Universal building is on by default
universal_variant   no

"universal_variant no" is supposed to mean that the port cannot or does not need to build universal. But portaudio does build universal, always. So you should remove "universal_variant no" because that is not accurate.

Then, you should do one of two things:

  • Preferably, you would fix the port so that if you do not request the universal variant, it does not build universal. And if you do request the universal variant, it builds universal, respecting the user's choices of universal_archs, universal_sysroot, universal_target from macports.conf.
  • If that's not possible, then you should define an empty universal variant and cause the port to auto-select that variant and require it to be selected, to indicate that it is in fact universal software. See the port isightcapture for an example of this.

Change History (7)

comment:1 in reply to:  description Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign@…:

But portaudio does build universal, always.

FYI, this change came about due to #14362.

comment:2 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:3 Changed 15 years ago by tobypeterson

I made some changes to make it build universal on Snow Leopard... with the exception of patch-src__hostapi__coreaudio__pa_mac_core.c, the patches are probably applicable to earlier releases. If someone wants to test them out and report, it'd be a straightforward enough change.

comment:4 Changed 15 years ago by tobypeterson

Heh, that didn't format properly. You get the point, hopefully.

comment:5 in reply to:  4 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to toby@…:

Heh, that didn't format properly.

There, that should look better.

comment:6 Changed 14 years ago by jmroot (Joshua Root)

Owner: changed from themiwi@… to macports-tickets@…

Port is now unmaintained, so do what you like.

comment:7 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Fixed and simplified in r74882. I verified portaudio will now compile universal (i386 and ppc) and non-universal (ppc) on Leopard and Tiger (on a Power Mac G4), and still compiles universal (x86_64 and i386) and non-universal (x86_64 or i386) on Snow Leopard (on a Core 2 Duo MacBook Pro).

In addition to removing the -arch, -isysroot and -mmacosx-version-min flags, the configure patch Toby added above also changed -framework Carbon to -framework CoreFoundation; Snow Leopard had no problem compiling portaudio this way, but Leopard complained of undefined symbols _CloseComponent, _OpenAComponent and _FindNextComponent. Leaving it as -framework Carbon didn't seem to make a difference for Snow Leopard, but allowed it to compile on Leopard and Tiger, so I changed it back. If using -framework CoreFoundation on Snow Leopard was better for some reason, we can still change it back just for Snow Leopard and up.

I'm still a little worried about -DPA_LITTLE_ENDIAN which I see flying by on every line of compilation on the Power Mac when building universal. Hopefully someone will speak up if the universal build doesn't actually work.

Note: See TracTickets for help on using tickets.