Reposting to the list ...
Anfang der weitergeleiteten E-Mail:
Von: Frank Goenninger frgo@me.com Datum: 18. August 2008 08:52:56 MESZ An: Kenny Tilton kennytilton@optonline.net Kopie: cells-devel cells-devel@common-lisp.net Betreff: Re: [cells-devel] Need help getting Mac version of my Algebra software
Kenny, all:
Am 16.08.2008 um 01:35 schrieb Kenny Tilton:
Windows searches first the app directory, then the PATH values, then /windows/system32. The cool thing is I can just lob all my DLLs into the app folder and not worry about (a) conflicts or (b) learning how to use an installer (not that that would be the end of the world).
Does the Mac have a similar search sequence? I heard on the wiki it was customary for Mac apps to just "install" by copying a directory.
GM is a mystery, and their list was silent. One theory was about COM registration, even tho I am using FFI. Anyway, perhaps on the Mac if we /can/ just toss dylibs in the app directory it will work on the Mac where it did not on Windows.
Thx again, kt
On the Mac, things are a bit different. I'd first restate the requirements from the above paragraph:
- Install all libs in the app's folder in order to have full
control over the libs being loaded. 2. Get the app to find the libs in that folder.
Mac OS X's idea of an application is really a folder named App.app (notice the suffix "app"). In that ".app" folder we have:
/Contents/ ("/" denoting a directory)
and within the Contents folder the following structure:
/Info.plist /MacOS/ /Library /MacOS /Resources
While not going into too much detail here (see below how to make a suitable ".app" folder structure) I would advice to package up GM into the /Library folder. This folder holds "foreign" libs. Same for Tcl/Tk.
So, how to build that ".app" folder:
On Mac OS X there's a "Developer" folder right at the root directory of the internal disk if you have selected to install the developer tools (like Xcode etc.).
In folder /Developer/Applications/Utilities there's a tool called "PackageMaker". After having build your source folder tree like
.../StuckOnAlgebra/
as the root dir and then below that
/Library/TclTk8.5 /Library/GraphicsMagic /bin/stuckonalgebra (the "exe") /... whatever files else needed for the app
you may use the PackageMaker to build the package via drag-and-drop and customizing the install process.
In PackageMaker you want to select the options such that the install process is installing SoA in /Applications. This ensures that you can rely on the Library path to be "/Applications/StuckOnAlgebra.app/ Library/".
Then, in Cello and in Celtk, you have to adapt the load paths accordingly.
That should do it. You may want to automate that process when building stuff over and over again. It then may be required to use Xcode or a shell script to make this automated. 2 days work to get everything stable...
Complex? No ;-) Just Different.
I could make a first package if you want me to...
Cheers, Frank