|Allegro CL version 8.2|
Minimal update since 8.2 release.
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:
niland the directory exists, then an error is signaled.
((type-keyword ...) (type-keyword ...) ...)
(type-keyword ...) can be:
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-namewas "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
:exeis used, then an executable file named application-name.exe (on Windows) and application-name (on UNIX) is created.
: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.
:ole-in-proc-server, a file is created in the
destination directory called application-name.dll.
See the OLE samples in ole/samples/sample05/
tif the shared object is to be copied, and
nilif 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.
nilvalue 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 firstname.lastname@example.org 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 "126.96.36.199"))
runtime: the value defaults to
:standardand must be either
: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.
|Allegro CL version 8.2|
Minimal update since 8.2 release.