[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: stand alone apps in MCL



>How can I compile something into a stand alone app in MCL.  I know that I
>can compile it into a .fasl file, but I would like to make that file into a
>stand alone app.

Well....

The function you need to read up on is save-application.

BUUUUUT...

If you have *any* pointers or handles to macdata, you *must* trash them
*before* doing save-application.

Then you must be able to restore these pointers.  Add a function to the
*END* of the list *restore-lisp-pointers* [check the manual or apropos] for
actual name.

eg

(defun restore-myapp ()
   <set any mac pointers, open any windows, change the menus>
   ;actually, the menus may be taken care of by MCL.
)

(setq *restore-lisp-pointers*
   (append *restore-lisp-pointers* (list #'restore-myapp))

Note that if you re-evaluate restore-myapp, you *MUST* get rid of the
previous incarnation of the function from *restore-lisp-pointers* and put
in the new function.

MCL2 *should* have gotten "nicer" so you can just use 'restore-myapp in the
setq above, so the previous note is then not needed.  No promises.

There also used to be global variables (in the environment window) that had
to be set correctly or you would be hosed, but as I don't remember what
they are and I think it's cargo-cult programming nowadays, I won't mention
it.  :-)

This is gonna create a *huge* application which includes *all* of MCL 2.0
plus your stuff.  It may get fixed in 2.0 final so that some sort of paring
down is done.

Check your program *very* carefully.  All sorts of nifty things can go
wrong in this process.  Good luck.  :-)

Holler if you have trouble, it might be one I've seen and ring a bell...
"TANSTAAFL" Rich lynch@ils.nwu.edu