Towards an initial release.

This commit is contained in:
mainzelm 2005-10-04 13:29:43 +00:00
parent 349d20e923
commit 54e9e1cee4
8 changed files with 176 additions and 22 deletions

View File

@ -1 +1,3 @@
Christoph de Mattia Christoph de Mattia
Eric Knauel
Martin Gasbichler

28
COPYING Normal file
View File

@ -0,0 +1,28 @@
Copyright (c) 2004 Christoph de Mattia
Copyright (c) 2004-2005 Eric Knauel
Copyright (c) 2004-2005 Martin Gasbichler
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the authors may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

43
INSTALL Normal file
View File

@ -0,0 +1,43 @@
These are generic installation instructions for scsh packages.
Prerequisites
=============
The scsh installation library is required to install this package.
This library *must* be present on your system before the current
package can be installed. It can be obtained from the following Web
page:
http://lamp.epfl.ch/~schinz/scsh_packages/
The installation library comes with its own documentation which
explains in detail how to install and use scsh packages. It is
recommended that you read it before installing your first scsh
package. What follows is a very brief summary of this documentation,
intended to get you started quickly.
Installation
============
Installation of a scsh package is performed by launching the
"scsh-install-pkg" script, which is part of the scsh installation
library. This script must be launched from within the directory which
resulted from the expansion of the current package's archive, i.e. the
one containing the file you are reading now.
A list of all the arguments accepted by the "scsh-install-pkg" script
can be obtained by launching it with the "--help" option. One of these
arguments, "--prefix", is mandatory and specifies the location where
installation should be performed. Ideally, you should use the same
prefix to install all scsh packages, as this makes them easier to
manage and use.
For example, to install the current package in
"/usr/local/share/scsh-modules", you should type the following:
scsh-install-pkg --prefix=/usr/local/share/scsh-modules
Provided that no errors are encountered during installation, a
message will be printed at the end explaining how to use the newly
installed package.

View File

@ -1,8 +1,8 @@
SUBDIRS = c SUBDIRS = c
EXTRA_DIST = c/ncurses.c \ EXTRA_DIST = \
scheme/ncurses-interfaces.scm \ scheme/ncurses-packages.scm \
scheme/scsh-package.scm \
scheme/ncurses.scm \ scheme/ncurses.scm \
scheme/ncurses-constants.scm \ scheme/ncurses-constants.scm \
scheme/input-buffer.scm \
pkg-def.scm pkg-def.scm

4
NEWS Normal file
View File

@ -0,0 +1,4 @@
* Version 1.0 (released 2005-10-31)
First public release.

51
README Normal file
View File

@ -0,0 +1,51 @@
scsh-ncurses 1.0 README -*-outline -*-
scsh ncurses bindings
=====================
This library adds bindings for the ncurses library to scsh, the Scheme
shell.
* Installation
==============
scsh-ncurses conforms to the packaging proposal for
scsh by Michel Schinz. Please see:
<http://lamp.epfl.ch/~schinz/scsh_packages/>
In short, this means that you can install scsh-ncurses by unpacking
the scsh-ncurses tarball and issuing the following command in the
created directory:
scsh-install-pkg --prefix /path/to/your/package/root
See the file INSTALL for the generic installation instructions for
scsh packages.
* Documentation
===============
There is currently no documentation specific to scsh-ncurses. However,
this library maps most of the C functions directly to Scheme
procedures, hence the man pages for ncurses are sufficient in most
cases.
* Loading the code
==================
Start scsh like this:
scsh -lel scsh-ncurses/load.scm
* Support
=========
Please direct questions, comments, answers about scsh-ncurses to the regular
scsh mailing list at
scsh-users@scsh.net

View File

@ -1,4 +1,4 @@
AC_INIT(scsh-ncurses, 0.1) AC_INIT(scsh-ncurses, 1.0)
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR(configure.in) AC_CONFIG_SRCDIR(configure.in)

View File

@ -1,5 +1,5 @@
(define-package "scsh-ncurses" (0 2) (define-package "scsh-ncurses" (1 0)
((install-lib-version (1 0))) ((install-lib-version (1 1 2)))
(display "configuring, compiling and installing c-stubs") (display "configuring, compiling and installing c-stubs")
(newline) (newline)
@ -31,25 +31,51 @@
(let ((schemedir (get-directory 'scheme #f)) (let ((schemedir (get-directory 'scheme #f))
(libdir (get-directory 'lib #f))) (libdir (get-directory 'lib #f)))
(write-to-load-script (write-to-load-script
`((user) `((new-package)
(structure 'load-scsh-ncurses '(export))
(open 'scheme-with-scsh)
(open 'srfi-13)
(load-package 'dynamic-externals) (load-package 'dynamic-externals)
(open 'dynamic-externals) (open 'dynamic-externals)
(open 'external-calls) (open 'external-calls)
(open 'configure) (open 'configure)
(open 'signals) (open 'signals)
,@(map (lambda (x) `(run ',x)) tmpl-libtool-la-reader) (open 'define-record-types)
(run '(let* ((lib-dir (string-append ,libdir "/" (host))) (open 'records)
(open 'i/o)
(run '(define (scsh-ncurses-init)
,@tmpl-libtool-la-reader
(let* ((lib-dir (string-append ,libdir "/" (host)))
(la-file-name (string-append lib-dir "/libscshncurses.la")) (la-file-name (string-append lib-dir "/libscshncurses.la"))
(initializer-name "s48_init_ncurses")) (initializer-name "s48_init_ncurses"))
(let ((la-alist (read-libtool-la la-file-name))) (let ((la-alist (read-libtool-la la-file-name)))
(cond (cond
((assoc 'dlname la-alist) ((assoc 'dlname la-alist)
=> (lambda (p) => (lambda (p)
(let ((module-file (string-append lib-dir "/" (cdr p)))) (let ((module-file (string-append lib-dir "/" (cdr p))))
(dynamic-load module-file) (dynamic-load module-file)
(lookup-all-externals) ;;; important when resuming images
(call-external (get-external initializer-name))))) (call-external (get-external initializer-name)))))
(else (else
(error "Could not figure out libscshncurses' name" la-file-name)))))) (error "Could not figure out libscshncurses' name" )))))))
(run '(scsh-ncurses-init))
;; TODO: This is also in sunterlib/heap-images/reinitializer.scm
(run '(define-record-type reinitializer :reinitializer
(make-reinitializer thunk)
reinitializer?
(thunk reinitializer-thunk)))
(run '(define-record-resumer :reinitializer
(lambda (r)
((reinitializer-thunk r)))))
(run '(define scsh-ncurses-reinitializer
(make-reinitializer scsh-ncurses-init)))
(config) (config)
(load ,(string-append schemedir "/ncurses-packages.scm")) (load ,(string-append schemedir "/ncurses-packages.scm"))
(user)))) (user))))
@ -58,5 +84,5 @@
(newline) (newline)
(install-directory-contents "scheme" 'scheme) (install-directory-contents "scheme" 'scheme)
; (install-file '("COPYING" . "LICENSE") 'doc) (install-file '("COPYING" . "LICENSE") 'doc)
) )