= packnl(8) :doctype: manpage :revdate: {sys:date "+%Y-%m-%d %H:%M:%S"} :COLON: : :EQUALS: = :NEWLINE: \n == NAME packnl - Pack newlisp scripts into an embedded binary. == SYNOPSIS *packnl* *-w* _binary_ _main.lsp_ _member-option_* + *packnl* *-u* _binary_ _path_ + *packnl* *-t* _binary_ == DESCRIPTION *packnl* is a utility to pack a newlisp application into a binary using the embedding feature of newlisp. Such a packed binary will have the special +incore.lsp+ as embedded script and then contain the given application files in a "simple archive" format after an easily recognizable divider line of 40 "x" characters. The first application file is used as "main script" the gets loaded when running the binary. Any additional application files are set up as an in-core archive to be available as overriding filenames in the +load+, +read-file+ and +file?+ functions. I.e. where the running script has the expression "(load _file_)" then _file_ pathname is first looked up in the in-core archive and only secondarily looked up in the filesystem. == OPTIONS === Command Options *-w* _binary_ _members_:: The *-w* command option is used for writing an embedded newlisp binary with the nominated scripts. The subseqent arguments nominate the scripts to include in order. See *Member Options* below. *-u* _binary_ _path_:: The *-u* command option is used for unpacking an embedded binary into the nominated directory. *t* _binary_:: The *-t* command option is used for enlisting then names of the included members of an embedded binary. === Member Otions _member_:: Member arguments other than the options below are undestood to nominate scripts to embed with file names as given. *-a* _library_:: The *-a* option installs the script members from a given +ar+ style library to be available for embedding. The subsequent arguments nominate members to include. *-A* _library_:: The *-A* option incorporates all the script members from the given +ar+ style library into the embedding. *-C* _path_:: The *-C* option changes the working directory for the program so that subsequent relative pathnames (file members and libraries) are found relative that working directory. == NOTES Note that _ar_ typically adds members using their basenames. With +packnl+ packaging the added modules would thus be loaded by basenames. == SEE ALSO *newlisp*, *ar* == AUTHOR Ralph Ronnquist