Commit 5609c6d2 authored by Dave Cooper's avatar Dave Cooper

trying to commit from build directory

parent cdedc128
This diff is collapsed.
;;;
;; Copyright 2002-2011 Genworks International and Genworks BV
;;
;; This file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; This file is free software: you can redistribute it
;; and/or modify it under the terms of the GNU Affero General Public
;; License as published by the Free Software Foundation, either
;; version 3 of the License, or (at your option) any later version.
;;
;; This source file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Affero General Public License for more details.
;;
;; You should have received a copy of the GNU Affero General Public
;; License along with this source file. If not, see
;; <http://www.gnu.org/licenses/>.
;;
Welcome to the General-purpose Declarative Language Open-Source Distribution.
Current Requirements:
o Common Lisp: LispWorks or AllegroCL
Note: Allegro CL 8.2 comes with ASDF, but (sys:update-allegro) will
bring it to ASDF2 which is what you want.
To load the entire system, you can do it from scratch with
(load ".../load.lisp")
We are working on making GDL to bootstrap with pure Quicklisp/asdf.
We plan to target SBCL as next CL host.
If you want to load individual modules, you can do so using quicklisp
or asdf.
To help in understanding the role of each module, the overall GDL
source architecture is described below.
GDL source code Architecture:
=============================
GDL is separated into layered components, some of which depend on
others. Some components also depend on third-party external libraries,
which are currently handled with the Quicklisp system with some local
modifications pending merging into the Quicklisp dists.
At the core "kernel" is the :gdl package, implemented with files in
the folder gdl/base/. This includes the compiler/expanders for
"define-object" and related macros as well as core primitives such as
vanilla-mixin.
Including gdl-base, there are approximately 12 modules supported with
GDL. One is proprietary and closed-source, the others are open-source
under AGPL.
:gdl-base - GDL language kernel.
depends-on: :asdf (and normally we use Quicklisp to bootstrap asdf).
:cl-lite - GDL system definitions and loading facility. Supplements our use of asdf.
depends-on: :gdl-base, :glisp+
:translators - Partially translate other KBE syntax such as PCPACK,
ICAD to and/or from GDL.
:depends-on: :gdl-base, :glisp+
:lift-utilities - regression test utilities.
:depends-on: :gdl-base, :lift, :glisp+
:geom-base - Built-in GDL wireframe primtives and basic geometry/vector manipulation functions.
depends-on: :gdl-base, :glisp+
:geom-base text-block and document primitives --
depends on: :geom-base, cl-typesetting, :glisp+.
:gwl - Generative Web Language, represent web pages using GDL
objects, includes Ajax interaction with your model.
depends-on: Native or Portable AllegroServe (aserve or paserve),
:cl-who, :glisp+.
:gwl-graphics - include graphics rendered from geometry object in GWL web pages.
depends-on: :gwl, :geom-base, :glisp+.
:surf - surface primitives without underlying geometry kernel middleware or implementation.
depends-on: :geom-base, :glisp+.
:smlib - (proprietary) add-on to implement :surf primitives with middleware and SMLib geometry kernel
depends-on: :surf, :uffi, :glisp+.
:yadd - self auto-documentation.
depends-on: gdl-base, gwl (and others if you want their documentation).
:build - Utilities for building development and runtime images with various GDL modules built-in.
depends-on: gdl-base.
;;;
;; Copyright 2002-2011 Genworks International and Genworks BV
;;
;; This file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; This file is free software: you can redistribute it
;; and/or modify it under the terms of the GNU Affero General Public
;; License as published by the Free Software Foundation, either
;; version 3 of the License, or (at your option) any later version.
;;
;; This source file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Affero General Public License for more details.
;;
;; You should have received a copy of the GNU Affero General Public
;; License along with this source file. If not, see
;; <http://www.gnu.org/licenses/>.
;;
Welcome to the General-purpose Declarative Language Open-Source Distribution.
Current Requirements:
o Common Lisp: LispWorks or AllegroCL
Note: Allegro CL 8.2 comes with ASDF, but (sys:update-allegro) will
bring it to ASDF2 which is what you want.
To load the entire system, you can do it from scratch with
(load ".../load.lisp")
We are working on making GDL to bootstrap with pure Quicklisp/asdf.
We plan to target SBCL as next CL host.
If you want to load individual modules, you can do so using quicklisp
or asdf.
To help in understanding the role of each module, the overall GDL
source architecture is described below.
GDL source code Architecture:
=============================
GDL is separated into layered components, some of which depend on
others. Some components also depend on third-party external libraries,
which are currently handled with the Quicklisp system with some local
modifications pending merging into the Quicklisp dists.
At the core "kernel" is the :gdl package, implemented with files in
the folder gdl/base/. This includes the compiler/expanders for
"define-object" and related macros as well as core primitives such as
vanilla-mixin.
Including gdl-base, there are approximately 12 modules supported with
GDL. One is proprietary and closed-source, the others are open-source
under AGPL.
:gdl-base - GDL language kernel.
depends-on: :asdf (and normally we use Quicklisp to bootstrap asdf).
:cl-lite - GDL system definitions and loading facility. Supplements our use of asdf.
depends-on: :gdl-base, :glisp+
:translators - Partially translate other KBE syntax such as PCPACK,
ICAD to and/or from GDL.
:depends-on: :gdl-base, :glisp+
:lift-utilities - regression test utilities.
:depends-on: :gdl-base, :lift, :glisp+
:geom-base - Built-in GDL wireframe primtives and basic geometry/vector manipulation functions.
depends-on: :gdl-base, :glisp+
:geom-base text-block and document primitives --
depends on: :geom-base, cl-typesetting, :glisp+.
:gwl - Generative Web Language, represent web pages using GDL
objects, includes Ajax interaction with your model.
depends-on: Native or Portable AllegroServe (aserve or paserve),
:cl-who, :glisp+.
:gwl-graphics - include graphics rendered from geometry object in GWL web pages.
depends-on: :gwl, :geom-base, :glisp+.
:surf - surface primitives without underlying geometry kernel middleware or implementation.
depends-on: :geom-base, :glisp+.
:smlib - (proprietary) add-on to implement :surf primitives with middleware and SMLib geometry kernel
depends-on: :surf, :uffi, :glisp+.
:yadd - self auto-documentation.
depends-on: gdl-base, gwl (and others if you want their documentation).
:build - Utilities for building development and runtime images with various GDL modules built-in.
depends-on: gdl-base.
(asdf:defsystem #:gdl-build :description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license "AGPL unless otherwise indicated" :serial t
:version "2011101800" :depends-on (:gdl-base)
:components
((:file "source/package") (:file "source/genworks")
(asdf:defsystem #:gdl-build :description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license "AGPL unless otherwise indicated" :serial t
:version "2011101800" :depends-on (:gdl-base)
:components
((:file "source/package") (:file "source/genworks")
(:file "source/make-gdl-app")))
\ No newline at end of file
("package" "genworks")
("package" "genworks")
(in-package :com.genworks.lisp)
(eval-when (compile load eval)
(defpackage :com.genworks.lisp
(:use :common-lisp)
(:export #:make-gdl-app
#:delete-directory-and-files
)))
#-allegro(warn "~&Please implement generate-application for the currently running lisp.~%")
(defun make-gdl-app (&rest args)
#+allegro
(let ((app-name (getf args :application-name))
(target (getf args :destination-directory))
(modules (append (list :asdf :compftype :aserve :phtml)
(getf args :modules)))
(args (normalize-generate-application-args args)))
(apply #'excl:generate-application app-name target modules args))
#-allegro (declare (ignore args))
#-allegro (error "~&generate-application is not implemented for the currently running lisp.~%"))
#+allegro
(defun normalize-generate-application-args (args)
(let ((class (getf args :application-class)))
(list :runtime (case class
(:development :partners)
(otherwise nil))
:include-compiler (case class
(:development t)
(otherwise nil))
:include-devel-env (case class
(:development t)
(otherwise nil))
:icon-file (merge-pathnames "gdl/gwl/static/gwl/images/favicon.ico"
glisp:*genworks-source-home*)
:demo (getf args :demo-days)
:init-file-names (getf args :init-file-names)
:pre-load-form (getf args :pre-load-form)
:post-load-form (getf args :post-load-form)
:restart-init-function (getf args :restart-init-function)
:purify t
:autoload-warning nil
:runtime-bundle t
:suppress-allegro-cl-banner t)))
#-(or allegro (and unix lispworks))
(warn "~&Please implement delete-directory-and-files for the currently running lisp.~%")
(defun delete-directory-and-files (target &key force quiet if-does-not-exist)
#+lispworks (declare (ignore force quiet if-does-not-exist))
#+lispworks (system:run-shell-command (format nil "rm -rf ~a" target))
#+allegro (excl.osi:delete-directory-and-files
target :force force :quiet quiet :if-does-not-exist if-does-not-exist))
(in-package :com.genworks.lisp)
(eval-when (compile load eval)
(defpackage :com.genworks.lisp
(:use :common-lisp)
(:export #:make-gdl-app
#:delete-directory-and-files
)))
#-allegro(warn "~&Please implement generate-application for the currently running lisp.~%")
(defun make-gdl-app (&rest args)
#+allegro
(let ((app-name (getf args :application-name))
(target (getf args :destination-directory))
(modules (append (list :asdf :compftype :aserve :phtml)
(getf args :modules)))
(args (normalize-generate-application-args args)))
(apply #'excl:generate-application app-name target modules args))
#-allegro (declare (ignore args))
#-allegro (error "~&generate-application is not implemented for the currently running lisp.~%"))
#+allegro
(defun normalize-generate-application-args (args)
(let ((class (getf args :application-class)))
(list :runtime (case class
(:development :partners)
(otherwise nil))
:include-compiler (case class
(:development t)
(otherwise nil))
:include-devel-env (case class
(:development t)
(otherwise nil))
:icon-file (merge-pathnames "gdl/gwl/static/gwl/images/favicon.ico"
glisp:*genworks-source-home*)
:demo (getf args :demo-days)
:init-file-names (getf args :init-file-names)
:pre-load-form (getf args :pre-load-form)
:post-load-form (getf args :post-load-form)
:restart-init-function (getf args :restart-init-function)
:purify t
:autoload-warning nil
:runtime-bundle t
:suppress-allegro-cl-banner t)))
#-(or allegro (and unix lispworks))
(warn "~&Please implement delete-directory-and-files for the currently running lisp.~%")
(defun delete-directory-and-files (target &key force quiet if-does-not-exist)
#+lispworks (declare (ignore force quiet if-does-not-exist))
#+lispworks (system:run-shell-command (format nil "rm -rf ~a" target))
#+allegro (excl.osi:delete-directory-and-files
target :force force :quiet quiet :if-does-not-exist if-does-not-exist))
(in-package :gdl-build)
(defun make-gdl-app (&rest args)
(let ((self (apply #'make-object 'make-gdl-app args)))
(the make!)))
(define-object make-gdl-app ()
:input-slots
(("String. The name which will be used for your application's executable and dxl file.
Defaults to \"gdl-base.\""
application-name "gdl-base")
("Keyword symbol. Should be one of <tt>:runtime</tt>, <tt>:development</tt>,
or <tt>:enterprise</tt>.
Indicates which level of application should be made. Defaults to :development."
application-class :development)
("Pathname. Indicates the directory to be created or overwritten for producing
the distribution.
Defaults to a directory called <tt>(the application-name)</tt> in the user
temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
destination-directory
(merge-pathnames (make-pathname :directory (list :relative (the application-name)))
(glisp:temporary-folder) ))
(pre-load-form `(progn (load ,(merge-pathnames "load.lisp"
glisp:*genworks-source-home*))
(setf (symbol-value (read-from-string
"glisp:*genworks-source-home*")) nil)
(setf (symbol-value (read-from-string
"asdf:*central-registry*")) nil)))
(post-load-form nil)
;;
;; FLAG -- leave this to nil for now while we are working on the basic build.
;;
(init-file-names (list "gdlinit.cl" ".gdlinit.cl"))
(modules nil)
(demo-days 30)
)
:functions
((make!
()
(when (probe-file (the destination-directory))
(glisp:delete-directory-and-files (the destination-directory)))
(glisp:make-gdl-app :application-name (the application-name)
:destination-directory (the destination-directory)
:modules (the modules)
:pre-load-form (the pre-load-form)
:post-load-form (the post-load-form)
:application-class (the application-class)
:demo-days (the demo-days)
;;
;; FLAG -- leave this to nil for now while we are working
;; on the basic build.
;;
:init-file-names (the init-file-names)
;;
;;:restart-init-function '(lambda()
;; (gdl:start-gdl :edition :open-source))
;;
))))
(defun make-gdl-site ()
(gdl-build:make-gdl-app :post-load-form '(progn
(load "~/genworks-1581-pre-git/gdl/dist/src/demos/site/gdl-site.asd")
(asdf:load-system :gdl-site)
(load "~/genworks-1580/gdl/apps/downloads/gdl-downloads.asd")
(asdf:load-system :gdl-downloads))
(in-package :gdl-build)
(defun make-gdl-app (&rest args)
(let ((self (apply #'make-object