Sine Sine Everywhere a Sine

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

@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.

Post

Billstei makes his very first OSX Application Bundle. Huh, imagine that, and now it works.

Post

billstei wrote:Billstei makes his very first OSX Application Bundle. Huh, imagine that, and now it works.
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 that :hail: :hail: :hail:

Post

xh3rv wrote:
billstei wrote:Billstei makes his very first OSX Application Bundle. Huh, imagine that, and now it works.
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 that :hail: :hail: :hail:
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...

Edit: Look Ma! No Libraries! :party: Everything is gone except for that old wx 2.5, and I renamed the main wx lib there, so I'm 99.9% sure.

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.

Post

billstei wrote:I am curious what an Intel Mac does with this... hopefully nothing bad.
Generates the expected error "not supported on this architecture".

Did you have an XCode project and/or makefiles w/ proper linking?

Post

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 :cry:
I have xcode but pretty unuseable with my hands at the moment...

Post

xh3rv wrote:
billstei wrote:I am curious what an Intel Mac does with this... hopefully nothing bad.
Generates the expected error "not supported on this architecture".

Did you have an XCode project and/or makefiles w/ proper linking?
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).

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 ;) Also keep in mind that wx-config is used by the linker like this:

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. :cry: And I don't expect you to do any of this stuff, I just figure you are interested in learning...

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. :roll:

Post

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 :cool: 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.

Post

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.

Post

Nice One!

Keep it going... ;)

Post

Update: I managed to compile gcc & friends :clap: but my initial Ubuntu deb attempt to put the pieces in the proper places was pathetic.

Post

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.

Post

hehe..good stuff & hopefully a good sign ;)

Post

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 ;)

Post

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

Post Reply

Return to “u-he”