From: Venkat
Subject: help needed regarding generate-application in ACL6.2.
Date: 
Message-ID: <55442638.0403010322.2ca02fd3@posting.google.com>
Hi All,

   I have to generate an executable application of Lisp in the following directory
  structure.

  root/--> config(directory containing configuration files)
       --> fasls (directory containing the fasls of lisp source code)

       -->generated(directory containing the text files which contains 
           the generate output from the applciation)

       --> xxxx.so or xxxx.exe (executable file which starts application)

   How can I generate the above directory structre using 'generate-application' 
   of ACL 6.2.
From: Jock Cooper
Subject: Re: help needed regarding generate-application in ACL6.2.
Date: 
Message-ID: <m3y8qkl7r8.fsf@jcooper02.sagepub.com>
············@yahoo.com (Venkat) writes:

> Hi All,
> 
>    I have to generate an executable application of Lisp in the following directory
>   structure.
> 
>   root/--> config(directory containing configuration files)
>        --> fasls (directory containing the fasls of lisp source code)
> 
>        -->generated(directory containing the text files which contains 
>            the generate output from the applciation)
> 
>        --> xxxx.so or xxxx.exe (executable file which starts application)
> 
>    How can I generate the above directory structre using 'generate-application' 
>    of ACL 6.2.

I use something like the file below.  For the extra directories and
such, just use MAKE-DIRECTORY and SYS:COPY-FILE after your
GENERATE-APPLICATION runs.  Put the whole thing into a file which
you ^U compile and load.  Once it's built I use the NSIS installer (from
Winamp/Nullsoft) because it's free and easy to setup/use.   

(defun path-init (root sub)
  (setf (logical-pathname-translations root)
	(list (list "*;*;*;*;*.*.*"     (concatenate 'string sub "\\*\\*\\*\\*\\*"))
	      (list "*;*;*;*.*.*"       (concatenate 'string sub "\\*\\*\\*\\*"))
	      (list "*;*;*.*.*"         (concatenate 'string sub "\\*\\*\\*"))
	      (list "*;*.*.*"           (concatenate 'string sub "\\*\\*"))
	      (list "*.*.*"             (concatenate 'string sub "\\*"))
	      )))

(defparameter *dest* "C:\\root") ; where the executable will be built
(path-init "sys" "Y:\\where\\your\\software\\is")
(path-init "acl" "C:\\Program Files\\acl62") ; in case you need to refer into this dir
(path-init "dest" *dest*)

(defun tlp (string)
  (translate-logical-pathname string))

(generate-application "app-name"    ; final app will be app-name.exe and app-name.dxl 
		      (concatenate 'string *dest* "\\")
		      (list ;first list features you need
                            :sock :process :foreign :ffcompat :list2 :ssl :streama :phtml 
			    (tlp "sys:dir1;dir2;file1.fasl")
                             ; ... list all your fasls here
			    (tlp "sys:dir1;dir2;file2.fasl")
                        )
		      :application-files 
                        (list (tlp "sys:dir1;dir2;other-file.ext") 
                         ;incl extra files that will be copied to the ROOT dir
			 )
		      :allow-existing-directory t  ; set these options as neede
		      :application-type :exe
		      :copy-shared-libraries t
		      :include-compiler nil
		      :include-tpl t
		      :include-debugger t
		      :restart-app-function 'package::entry-func
		      )

(make-directory "C:\\root\\generated")
(make-directory "C:\\root\\config")
(sys:copy-file  (tlp "sys:dir1;dir2;config.ext") (tlp "dest:config;config.ext"))
; copy your other files here