Creating a Mac standalone on pc without “build collective/application”
I know the topic of building standalone applications on various OS's has been discussed a few times here, but my question here is slightly different.
I made a standalone of my project on pc, but in order to show it to some of my friends (many of whom use macs), I had to send it to my friend ben, who had both a mac and max/msp, to pack up a mac version for me. This is tedious, and I'd prefer not to have to bother Ben every time I want to show people a new project.
So I was wondering if anybody here knew of a way to construct the mac application package from scratch. I'm still kind of a novice when it comes to programming, so I can't really tell if this is reasonable to ask or not or not. Here's what I understand about the situation so far:
Each of the applications that max builds is a folder containing an executable and the files required to run. For the apps on my pc, this folder contains
.mxf – the crossplatform collective file
.exe – the windows executable
marxcrt.dll, maxcrt_p.dll, msvcr70.dll, msvcr71.dll – a few dll files. I'm not sure what their function is but they're in all of the apps I build
and a 'support' folder containing the maxapi.dll maxaudio.dll, some graphics, and some other stuff.
For mac we appear to have:
the same .mxf file
a MacOS folder containing the executable
a frameworks folder containing what a ppears to be the same info ass the maxapi/audio .dlls
a resources folder with some icons
a support folder with similar things as in the windows one
a pkginfo file that appears in a text editor as just the line 'APPL????', not sure what the deal with this one is
and 'quicktime preferences' file called info
Now I have already confirmed that in my pc standalone if I swap the .exe and .mxf from another project, it works in any other application folder, so for the pc version, the only things in these folders that change from project to project are the .exe and the .mxf. So can somebody tell me what this .exe is actually doing and if I can simply create one myself?
For the mac version it seems the only thing that might change from project to project is executable and possibly the two info files. The .mxf is the same as on windows and the other folders appear as though they would be the same for every project. Can somebody confirm this? Can anybody tell me what is inside these files?
And the final and most important question of course is would it be possible to put these mac application and info files together myself, which would basically allow me to build a mac standalone myself?
No, unless the end user of your app has the Max runtime installed. The externals for the other platform would not be present in the collective.
You could always distribute the collective and have the user install the Max RT. In fact, we don't mind if you build your own Max RT installer around your app.
Cheers
-A
Ahhhh okay, I didn't quite realize that there was a separate max runtime program that allows users to run the patches without having a copy of max/msp. I could certainly ask users to download the runtime for their respective OS, and that would solve the problem.
Of course the goal in distributing these things is to make it as easy to access as possible, so it would be nicer to have it work as though it were a standalone. After finding out about the runtime I checked more into what the .exe was and apparently it's literally just a copy of the runtime. It's the same for every standalone, the only difference is the name of the exe file. In fact, if you change the name to another max collective name thats in the same standalone folder, it runs that other collective instead.
In that case, if the mac packages work the same as the windows ones I ought to be able to just copy and rename the app file. This seemed to work fine when I tested on windows. I'll have to try it on a mac patch and have somebody test it.
Thanks
interested to hear whether this worked, but I think the Mac version of the "Runtime App" is quite different than the Windows one (just as the Max app itself differs across platforms), otherwise I imagine you could have the choice to build collectives for either platform, from either platform. The .mxf should be identical, but how the OS is coerced into running it as an app is different.
All that said, I'm certainly not the authority... :)
You're not the authority but certainly correct in this case. It works just fine on windows to just rename the executable and replace the collective, but if I do the same to a mac max app and send it to my friend who has a mac, he gets an error saying the file is "incomplete or damaged". I guess I should have expected this, since the runtimes for each respective system are drastically different filesizes, and thus they're probably drastically different files that work in different ways. It was worth a try though.
But yeah, back to the drawing board. Distributing patches and telling users to dl the runtime for now.