Sine Sine Everywhere a Sine
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
@xh3rv - I managed to compile a BlueberryThing for PowerPC on this old Mac, and there were a lot of trouble spots along the way, but the biggest problem at this point is that OSX thinks this is a Classic application and it won't run. I'm inclined to think that I need to compile wxWidgets differently since this is a wxWidgets app. But I'm a big newbie when it comes to Mac/OSX.
Here are some of the crap storms I endured and overcame in a glorious burst* of Man-vs-Machine victory:
1) OSX Tiger installs it's very own very old version of wxWidgets, 2.5, debug, shared (probably), and wx-config pointed to it when I tried to make a Debug build.
2) I couldn't get CodeLite to build so I ended up using the Debug-Linux auto-generated makefile. I hacked it up (biggest problem being the absolute pathnames), and ran it manually. Someday I will implement real configure/make scripts.
3) FFTW refused to make the libfftw3f lib, until I quit asking for Intel-lish things. Obviously this is unique to PowerPC.
4) wxWidgets 2.8.9 compile failed due to a bug in the tga image stuff, so I passed --disable-tga and built it without it.
5) The linker failed because the XCode WebKit (headers ?) have a bug. So I commented out -framework WebKit from the config script ( aka /usr/lib/wx/config/mac-unicode-release-static-2.8 ).
6) BlueberryThing linking needs -framework AudioUnit. Not sure why, but maybe an SDL thing.
7) I used gcc-3.3 for the libraries, and gcc-4.0 for BlueberryThing. This is only a self-inflicted insignificant little crap storm. I must be paranoid or something.
I suppose I should become a real authentic Apple Developer, so I can get the latest XCode stuff.
-------------
*burst - about 48 hours.
Here are some of the crap storms I endured and overcame in a glorious burst* of Man-vs-Machine victory:
1) OSX Tiger installs it's very own very old version of wxWidgets, 2.5, debug, shared (probably), and wx-config pointed to it when I tried to make a Debug build.
2) I couldn't get CodeLite to build so I ended up using the Debug-Linux auto-generated makefile. I hacked it up (biggest problem being the absolute pathnames), and ran it manually. Someday I will implement real configure/make scripts.
3) FFTW refused to make the libfftw3f lib, until I quit asking for Intel-lish things. Obviously this is unique to PowerPC.
4) wxWidgets 2.8.9 compile failed due to a bug in the tga image stuff, so I passed --disable-tga and built it without it.
5) The linker failed because the XCode WebKit (headers ?) have a bug. So I commented out -framework WebKit from the config script ( aka /usr/lib/wx/config/mac-unicode-release-static-2.8 ).
6) BlueberryThing linking needs -framework AudioUnit. Not sure why, but maybe an SDL thing.
7) I used gcc-3.3 for the libraries, and gcc-4.0 for BlueberryThing. This is only a self-inflicted insignificant little crap storm. I must be paranoid or something.
I suppose I should become a real authentic Apple Developer, so I can get the latest XCode stuff.
-------------
*burst - about 48 hours.
- KVRAF
- 1617 posts since 11 Dec, 2008 from Minneapolis
From this point the only trick is to get libraries inside the bundle, either in the app binary or in a subfolder. If you have better luck than I have with thatbillstei wrote:Billstei makes his very first OSX Application Bundle. Huh, imagine that, and now it works.
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
In theory, if I did all the static linking correctly, there are no additional libraries needed (in the bundle). I should just rip everything back out and see...xh3rv wrote:From this point the only trick is to get libraries inside the bundle, either in the app binary or in a subfolder. If you have better luck than I have with thatbillstei wrote:Billstei makes his very first OSX Application Bundle. Huh, imagine that, and now it works.![]()
![]()
Edit: Look Ma! No Libraries!
Edit Edit: This link will go away: BT for PPC It doesn't run very well (fast) at 450Mhz. I am curious what an Intel Mac does with this... hopefully nothing bad.
- KVRAF
- 1617 posts since 11 Dec, 2008 from Minneapolis
Generates the expected error "not supported on this architecture".billstei wrote:I am curious what an Intel Mac does with this... hopefully nothing bad.
Did you have an XCode project and/or makefiles w/ proper linking?
-
- KVRian
- 743 posts since 14 Apr, 2004
Shit, I would have learned to code in my schooltime, all this is so interesting..but the only coding knowledge that i have are some web coding and and a spit of javascript
I have xcode but pretty unuseable with my hands at the moment...
I have xcode but pretty unuseable with my hands at the moment...
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
What I should do at this point is create a CodeLite project configuration(s) that works for OSX. Right now I have Debug-Linux, Release-Linux, Debug-Win32, Release-Win32, which you can select via menu Build-->Configuration Manager-->(Available project configurations) blueberrything-->x, so I would add Debug-OSX and Release-OSX. The problem at this point is I don't have a working CodeLite on OSX (yet).xh3rv wrote:Generates the expected error "not supported on this architecture".billstei wrote:I am curious what an Intel Mac does with this... hopefully nothing bad.
Did you have an XCode project and/or makefiles w/ proper linking?
If you want to try building the libraries again, here is what I did assuming I kept good notes:
fftw3:
./configure CC="gcc-3.3" --prefix=/usr --enable-portable-binary --with-our-malloc16 --disable-shared --enable-static --enable-threads --with-combined-threads --enable-float
libsndfile:
./configure CC="gcc-3.3" --prefix=/usr --disable-shared
SDL:
./configure CC="gcc-3.3" --prefix=/usr --disable-shared
wxWidgets:
./configure CC="gcc-3.3" --prefix=/usr --disable-shared --enable-unicode --disable-tga
In theory a newer XCode ( 2.4+ or so) should fix the tga problem, and then you could remove the --disable-tga (BlueberryThing doesn't use tga images anyway). Keep in mind that when you compile/link, the command wx-config is used to find a suitable wx library...
So, for example, on this old Mac if I do this:
wx-config --cxxflags --unicode=yes --debug=yes
It echoes back this:
-I/usr/lib/wx/include/mac-unicode-debug-2.5 -I/usr/include/wx-2.5 -D__WXDEBUG__ -D__WXMAC__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DNO_GCC_PRAGMA
Which is not at all what I want, and was put there by the Apple gods for my intoxicated linking pleasure. But if I do this:
wx-config --cxxflags --unicode=yes --debug=no
It echoes back this:
-I/usr/lib/wx/include/mac-unicode-release-static-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXMAC__
Which is exactly the library that I built and intended to use. If I was smart I would also build it in a Debug version
wx-config --libs --unicode=yes --debug=no
And echoes back:
-framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL /usr/lib/libwx_macu_richtext-2.8.a /usr/lib/libwx_macu_aui-2.8.a /usr/lib/libwx_macu_xrc-2.8.a /usr/lib/libwx_macu_qa-2.8.a /usr/lib/libwx_macu_html-2.8.a /usr/lib/libwx_macu_adv-2.8.a /usr/lib/libwx_macu_core-2.8.a /usr/lib/libwx_base_carbonu_xml-2.8.a /usr/lib/libwx_base_carbonu_net-2.8.a /usr/lib/libwx_base_carbonu-2.8.a -lwxregexu-2.8 -lwxexpat-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -lwxpng-2.8 -lz -lpthread -liconv
And this can also end up pointing at the wrong libraries, just like it did above (for me), and Apple's/Whoever's version might very well be a shared build rather than static.
The moral of the story: Even if I gave you a make file that "works" it might not work.
P.S. As if things weren't crazy-coo-coo-bananas enough... CodeLite is itself a wxWidgets app, and needs wxsqlite3, and the wxWidgets I built didn't have sqlite3, so I have to start over.
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
Orange Dog Recipe
Ingredients
1 pound hamburger
12 oz taco sauce
1 white dog (Maltese)
Fry hamburger until brown. Add taco sauce. Stir. Add meat to tacos, allowing excess meat to spill. Throw spilled meat towards floor with juxtapositioned dog. Wipe dog. Hide dog in closet from wife.
Other Breaking News - I got sick of my nose growing every time someone asked "Are you a real Apple developer?", and so I joined the Apple Developer Connection
and now I'm a real boy. Why Apple feels that the less-than-final XCode 2.0 should be available to the public, while the somewhat-more-bug-free XCode 2.5 is for developers-only, is a deep mystery.
Ingredients
1 pound hamburger
12 oz taco sauce
1 white dog (Maltese)
Fry hamburger until brown. Add taco sauce. Stir. Add meat to tacos, allowing excess meat to spill. Throw spilled meat towards floor with juxtapositioned dog. Wipe dog. Hide dog in closet from wife.
Other Breaking News - I got sick of my nose growing every time someone asked "Are you a real Apple developer?", and so I joined the Apple Developer Connection
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
Update: I am now focusing all my efforts on being able to cross-compile OSX PowerPC and Intel versions of BlueberryThing using my Linux machine. Whether this shows my undying devotion to Apple, or my undying desire to be as free of them as possible, remains a deep mystery. Essentially my task is to not only use gcc to cross-compile BlueberryThing (and all the needed libraries), but to (re)compile gcc itself (and friends), i.e. use gcc to compile gcc.
- KVRAF
- 4805 posts since 21 Jan, 2008 from oO
Nice One!
Keep it going...
Keep it going...
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
Apparently while I was sleeping my distress at integrating Apple's SDK into a Linux environment has psychically manifested itself as a category 4 hurricane. I must be really upset.
- KVRAF
- 4805 posts since 21 Jan, 2008 from oO
hehe..good stuff & hopefully a good sign 
-
- KVRian
- Topic Starter
- 595 posts since 20 Jan, 2006
I just figured out that PowerPC has something similar to SSE called Altivec that can be compiled into the FFTW library. Hopefully this will improve the performance of the PPC build I did earlier. Unfortunately, I am not making any progress on an OSX Intel build, or a Universal Fat Binary one, mostly because of the same FFTW library. The ideal solution would be to have a real Intel machine to build on, so I think I will put this effort on the back-burner for now, or at least until the price of OSX Intel machines gets below the $3.50 threshold 
- KVRAF
- 4805 posts since 21 Jan, 2008 from oO
Oh what? thats awful man...
really sad..maybe when you finished the pc version there will be someone who would like to port it for you/us to mac universal since ppc is out of time actualy..hm
anyway thanks for your effort dude
keep it up!
cheers Mark
really sad..maybe when you finished the pc version there will be someone who would like to port it for you/us to mac universal since ppc is out of time actualy..hm
anyway thanks for your effort dude
keep it up!
cheers Mark
