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.
············@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