| Allegro CL version 8.2 Minimal update since 8.2 release. 8.1 version |
Arguments: application-name destination-directory input-files &rest rest &key allow-existing-directory application-files application-administration application-type copy-shared-libraries copy-file-function debug icon-file demo image-only pure-files purify runtime-bundle include-locales file-version-info... build-lisp-image keyword arguments... dumplisp ignore-command-line-arguments keyword argument...
See delivery.htm for a complete description of the issues and functionality associated with this function. Note that this function is only available in Enterprise versions of Allegro CL.
This function writes a collection of files to destination-directory. In theory, all the files needed to deliver an application will be in that directory when generate-application completes (but you should test that carefully).
Note that this function calls build-lisp-image and like build-lisp-image, this function does not inherit from the currently running image (except for the defaults for certain arguments).
The required arguments:
"myapp"
). When coerced to a
pathname, this name should not have a directory or type. It is
used to create the name of the executable or .dll or
.so or .sl (whichever is appropriate for the
platform) and ancillary files.
:lisp-files
. That argument is ignored even
if specified to
generate-application.
The section Use of
custom.cl in building-images.htm
has information on when sys:custom.cl is loaded when an
image is built.
The keyword arguments:
nil
and the
directory exists, then an error is signaled.
(type-keyword ...)
or
((type-keyword ...) (type-keyword ...) ...)
(type-keyword ...)
can be:
This creates a lisprc in the destination directory which sets the default command line arguments to ...command line arguments.... See the Resources section in delivery.htm for more information.
This creates either a batch file or a shortcut named filename that will initialize the application. For a shortcut, the filename must have type "lnk" (the letter L, the letter N, the letter K). command line arguments are the arguments to application-name.exe. The filename argument should actually be a format control string given one argument, the name of the application. It is used like this:
(format nil filename application-name)
. This allows the customization of the generated filename based on information generate-application has already been given.One use of this is for OLE registration. For example:
'(:shortcut "One-time registration of ~a.lnk" "-register")If the given
application-name
was "foo" this would create a shortcut named One-time registration of foo with the following command line:foo.exe -- -register
An error is signaled if application-type is not
:exe
.
:exe
, :ole-in-proc-server
, or
:dll
. If :exe
is used, then an executable
file named application-name.exe (on Windows) and
application-name (on UNIX) is created.
If :dll
, then the application will be used as a
dll and no executable file is created. The dll used is the
Allegro CL shared library,
and the application itself will live in the newly created
.dxl file. The Allegro CL shared library
is used to initialize the Allegro CL runtime system, which loads the user's
app in the .dxl file. See dll.htm.
If :ole-in-proc-server
, a file is created in the
destination directory called application-name.dll.
See the OLE samples in ole/samples/sample05/
and ole/samples/sample06/.
t
.
t
if the shared object is to be copied, and nil
if it is to be ignored by shared-library copying process. The
predicate can also return a relative pathname, which will be used as
the name of the copied shared library relative to the
destination-directory. Note:
shared libraries may be specified without a directory path and found
using Operating System tools (such as LD_LIBRARY_PATH or PATH), as
described in section Load foreign code with cl:load in
the foreign-functions.htm document. However, the
shared library copying functionality will not use Operating System
tools to find shared libraries. If a shared library is specified
without a directory path and is not in the current directory, it will
not be found.
For shared objects that are copied, the image that is created will load them from the destination directory upon startup. That is, in the image built by generate-application, the name of the shared libraries loaded on startup will be sys:[name], for each [name] copied by generate-application.
nil
value for this argument. If you are
licensed, there is a maximum number of days that a demo will work
specified in your license. The value of this argument, if specified
and non-nil
, should be an integer less than
or equal the maximum number of days that a demo is allowed to work.
The application license written to the application directory will then
be valid for that number of days. Contact your Franz Inc. Account
Manager (send email
to [email protected] if you do not
know who your Account Manager is) for information on the demo license.
:file-version-info '(:company-name "Foo Inc" :product-name "Foo Bar" :legal-copyright "Copyright (C) 2009 Foo, Inc." :product-version "1.0.0.0"))
runtime
: the value defaults to
:standard
and must be either
:standard
, :dynamic
or
:partners
. See runtime.htm.
:lisp-files
. The required
input-files argument is used to specify files to
be loaded. :lisp-files
, even if specified, is ignored.
-
). Command-line
arguments prefixed by a +
(used on Windows only)
are never ignored. See Command line arguments in
startup.htm for details of command-line arguments.
The function generate-executable is a wrapper for generate-application, producing an application whose input is the command-line arguments. It can be used either as a quick way to create an application, or as an example of using generate-application. The source for generate-executable can be found in the file [allegro cl dir]/src/genexe.cl.
See delivery.htm for a complete description of this function.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page has had moderate revisions compared to the 8.1 page.
Created 2016.6.21.
| Allegro CL version 8.2 Minimal update since 8.2 release. 8.1 version |