Wireshark-dev: Re: [Wireshark-dev] MacOS/X builds
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Tue, 6 Jul 2010 10:44:57 -0700
On Jul 6, 2010, at 10:19 AM, Sake Blok wrote: > On 6 jul 2010, at 13:13, Sake Blok wrote: > >> On 6 jul 2010, at 12:07, Stig Bjørlykke wrote: >> >>> On Tue, Jul 6, 2010 at 12:01 PM, Sake Blok <sake@xxxxxxxxxx> wrote: >>>> I'm starting to build Wireshark on my MacBook. It all compiles well, but when I do 'make osx-install' the created Wireshark.app does not execute. >>> >>> I'm using the attached patch to build on my system (OSX 10.6.4). >> >> Great, that did the trick. I think we need to make SDKROOT determined at compile time so that the automated builds don't show the same problem... > > I can add a line determining which SDK to use in "packaging/macosx/osx-app.sh" (there is already some version dependent stuff in there), but I have no idea which OSX versions need which SDK dir. Does anybody have an idea? Ultimately, I think we should add a couple of configure script options - one to control which version of OS X should be the "deployment target" (meaning the minimum version of the OS on which the build is supposed to work), and another to control whether to do a universal build or not. If you don't specify --with-osx-deploy-target, it'll do an ordinary build of the sort we do now, meaning it might not run on older versions - even older versions of the same major version (e.g., a build on 10.x.y might not run on 10.x.z if z < y). If you specify --with-osx-deploy-target, but don't specify a specific deployment target, it'll pick the current OS major version as the deployment target: os_version=`sw_vers -productVersion | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.[0-9]*/\1.\2/'` (although that might require some tweaking to handle 10.5, 10.6, etc. rather than 10.5.1, 10.6.2, etc.). If you specify --with-osx-deploy-target=10.x, it'll make that the deployment target. If you don't specify --enable-osx-universal, it won't do a universal build - it'll just build for the default target (PPC or x86 depending on the machine on which you're building, 32-bit prior to 10.6, 64-bit in 10.6 if you're building on a 64-bit machine). Based on the deployment target and universal flags, select the SDK and the set of architectures for which to compile: if --with-osx-deploy-target wasn't specified, don't use an SDK, and, based on the universal option and the OS on which you're running, choose the architectures: 10.0 - 10.3 - no universal builds 10.4, 10.5 - if universal, build with "-arch ppc -arch i386" (I think BPF is sufficiently broken in 64-bit mode in Leopard that you can't use it - I guess we could try building a 32-bit dumpcap and building the rest universal, but I'll leave that for the next staget of this project) 10.6 and later - if universal, build with "-arch x86_64 -arch i386" (PPC no longer supported); if --with-osx-deploy-target was specified, based on the deployment target and the universal option, choose the SDK and architectures: 10.0 - 10.3 - no universal builds, SDK is, I think, /Developer/SDKs/MacOSX10.x.sdk 10.4 - if universal, use /Developer/SDKs/MacOSX10.4u.sdk and build with "-arch ppc -arch i386", otherwise use /Developer/SDKs/MacOSX10.4.sdk or, if necessary, /Developer/SDKs/MacOSX10.4u.sdk if you're building on x86 (I don't remember whether, on x86 machines, you'd need to build with /Developer/SDKs/MacOSX10.4u.sdk even if you're building an x86-only binary) 10.5 - use /Developer/SDKs/MacOSX10.5.sdk whether universal or not, build with "-arch i386 -arch ppc" if universal; 10.6 and later - use /Developer/SDKs/MacOSX10.x.sdk, build with "-arch x86_64 -arch i386" if universal. Modify packaging/macosx/osx-app.sh to use the specified root as the SDK, by setting XCODEFLAGS to include "SDKROOT={path to SDK}" (Snow Leopard and later support "-sdk" in xcodebuild, but older versions don't). Don't set SDKROOT in packaging/macosx/ScriptExec/ScriptExec.xcodeproj/project.pbxproj. There are probably more changes needed; I have a tree in which I'm working on this, but it's not done yet.
- Follow-Ups:
- Re: [Wireshark-dev] MacOS/X builds
- From: Guy Harris
- Re: [Wireshark-dev] MacOS/X builds
- References:
- [Wireshark-dev] MacOS/X builds
- From: Sake Blok
- Re: [Wireshark-dev] MacOS/X builds
- From: Stig Bjørlykke
- Re: [Wireshark-dev] MacOS/X builds
- From: Sake Blok
- Re: [Wireshark-dev] MacOS/X builds
- From: Sake Blok
- [Wireshark-dev] MacOS/X builds
- Prev by Date: Re: [Wireshark-dev] MacOS/X builds
- Next by Date: Re: [Wireshark-dev] MacOS/X builds
- Previous by thread: Re: [Wireshark-dev] MacOS/X builds
- Next by thread: Re: [Wireshark-dev] MacOS/X builds
- Index(es):