#!/bin/csh -f

#  Copyright (c) 1991, 1992, 1993 Xerox Corporation.  All Rights Reserved.  
#  
#  Unlimited use, reproduction, and distribution of this software is
#  permitted.  Any copy of this software must include both the above
#  copyright notice of Xerox Corporation and this paragraph.  Any
#  distribution of this software must comply with all applicable United
#  States export control laws.  This software is made available AS IS,
#  and XEROX CORPORATION DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
#  INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY
#  AND FITNESS FOR A PARTICULAR PURPOSE, AND NOTWITHSTANDING ANY OTHER
#  PROVISION CONTAINED HEREIN, ANY LIABILITY FOR DAMAGES RESULTING FROM
#  THE SOFTWARE OR ITS USE IS EXPRESSLY DISCLAIMED, WHETHER ARISING IN
#  CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, EVEN IF
#  XEROX CORPORATION IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
#  
#  $Id: ilu-build-lisp,v 1.4 1993/09/23 01:19:58 janssen Exp $

if ( $#argv < 1 ) exit 1
set package = $1

if ( $#argv > 1 ) then
	set directory = $2
else
	set directory = .
endif

if ( ! ( -r ${directory}/${package}.isl ) ) then
	echo "Can't find interface file ${directory}/${package}.isl."
	exit 1
endif

cd $directory

echo "Building Common Lisp for interface '${package}.isl' from directory $directory..."

rm -rf /usr/tmp/${package}
mkdir /usr/tmp/${package}
cp ${package}.isl /usr/tmp/${package}/

cd /usr/tmp/${package}

${ILUHOME}/bin/lisp-stubber -dir /usr/tmp/${package} -basics -sysdcl -serverstubs -classrecord ${package}.isl

${ILUHOME}/bin/ilu-franz -qq -batch -- ${package} <<EOF
(load "/import/commonlisp-library/pdefsys")
(if (listp pdefsys:*sysdcl-pathname-defaults*)
    (push "${ILUHOME}/lisp/" pdefsys:*sysdcl-pathname-defaults*)
  (setq pdefsys:*sysdcl-pathname-defaults* (list "${ILUHOME}/lisp/" pdefsys:*sysdcl-pathname-defaults*)))
(load "${ILUHOME}/lisp/ilu-sysdcl")
(format t "command line args are ~s~%" (sys:command-line-arguments))
(progn
  (defun build-system (p)
    (compile-file (format nil "~a-sysdcl" p))
    (load (format nil "~a-sysdcl" p))
    (pdefsys:compile-system (format nil "~a" p))
    (pdefsys:compile-system (format nil "~a-server" p))
    )
  (build-system (sys:command-line-argument 1 :application t)))
(exit 0)
EOF

