Bug 2723 - Jeezy Creezy, What's Goin On In This Mac OS X Sheezy
Status: RESOLVED FIXED
Alias: None
Product: ioquake3
Classification: Unclassified
Component: Platform
Version: unspecified
Hardware: Macintosh MacOS X
: P2 normal
Assignee: Ryan C. Gordon
QA Contact: ioquake3 bugzilla mailing list
URL:
Depends on: 2580
Blocks:
 
Reported: 2006-05-29 02:19 EDT by Zachary J. Slater
Modified: 2007-05-21 11:23:02 EDT
2 users (show)

See Also:


Attachments
svn 810: mac specific changes (8.80 KB, patch)
2006-07-01 13:19 EDT, Tony J. White
svn 816: mac specific changes (10.03 KB, patch)
2006-07-18 02:15 EDT, Tony J. White

Description Zachary J. Slater 2006-05-29 02:19:47 EDT
1) Need to switch to ~/Library/Applications/ioquake3/ or whatever.


2) If you really think it is a good idea
23:09 < icculus> Also, we should probably look in Application Support/Quake 3,                  since old prefs will be there.
23:09 < icculus> It'll let people switch between ioquake and (punkbuster) 
                 idquake

3) Intel shit.
4) Examine any other patches floating around the ml, etc.
5) Convince apple to give us macbooks, I want the black one.
Comment 1 Tony J. White 2006-07-01 13:19:18 EDT
Created attachment 948 [details]
svn 810: mac specific changes


This patch is a set of Mac OS X build fixes and improvements:

1) make-macosx-ub.sh script which can be used to build a Universal Binary from either a Intel or PPC host.

2) OS X 10.2 lacks dlfcn.h, so SDL_loadso.h needs to be used instead in sdl_glimp.c

3) OS X 10.2 doesn't define socket_t unless _BSD_SOCKET_T_ is defined

4) Added -mstackrealign to all i386 builds for darwin

5) Add the current directory "./" to the FS search path if MACOS_X is defined so an .app bundle can be placed next to a valid baseq3 directory instead of requiring the user to modify the .app bundle.

The most controversial change is obviously the last, if it's not acceptable let me know and I can resubmit without it.  I can't think of a problem with it though.

Also the code/libs/macosx/libSDL-1.2.0.dylib file needs to be updated to one that is Universal and from SVN (for .dylib loading support).

Finally, for the PPC build, a new dylib needs to be added for OpenAL.  OS X didn't have the OpenAL framework until 10.4, so in order for compatability in older versions it will need to be included similar to libSDL.  I'm using the dylib from the offical 10.4 framework.  The build processs expects it to be at: code/libs/macosx/libopenal.dylib .  This is only used for the PPC part of the Univeral Build process.

You can find the .dylib's I'm using at http://tjw.org/ioquake3-ub/ as well as a .dmg of my latest build.  

I have tested this on 10.4.7 on Intel and PPC and am interested to know if it works with 10.2.x or 10.3.x.  

Note that there are still OpenAL crashing issues which are not addressed in this patch.
Comment 2 Tony J. White 2006-07-18 02:15:34 EDT
Created attachment 964 [details]
svn 816: mac specific changes

I managed to get USE_OPENAL_DLOPEN working for the PPC Universal build, so the libopenal.dylib crap is now dropped.  I've also set the default s_alDriver to the dylib used in the Framework, so OpenAL should load seemlessly on 10.4 PPC.

I have a new Univeral Binary build here:
http://tjw.org/ioquake3-ub/

Note that OpenAL still crashes (bug 2747) so you have to set s_useOpenAL to 0.
Comment 3 Tony J. White 2006-08-02 02:04:56 EDT
(In reply to comment #0)
> 1) Need to switch to ~/Library/Applications/ioquake3/ or whatever.
> 
> 
> 2) If you really think it is a good idea
> 23:09 < icculus> Also, we should probably look in Application Support/Quake 3, 
>                 since old prefs will be there.
> 23:09 < icculus> It'll let people switch between ioquake and (punkbuster) 
>                  idquake
> 

This change would not be specific to Mac though right?  If this is a "good idea"  I would think every platform should treat the user's fs_homepath directory the same. I added bug 2818

> 3) Intel shit.

I've applied this patch and there appear to be no Intel specific problems now.

> 4) Examine any other patches floating around the ml, etc.

I'm all for forgetting about them unless they get posted again.  Is there a web archive of the mailing list anywhere?

> 5) Convince apple to give us macbooks, I want the black one.

I already convinced them to give me one.  Although it took a lot of convincing (a.k.a. all of the money in my bank account).

Anyway, I'm closing this bug.  The only blocker on Mac right now is the OpenAL crashing (bug 2747)
Comment 4 Ryan C. Gordon 2007-05-21 11:23:02 EDT
Setting a QA contact on all ioquake3 bugs, even resolved ones. Sorry if you get a flood of email from this, it should only happen once. Apologies for the incovenience.

--ryan.