Added shared library support.

Submitted by:	jmacd@uclink.berkeley.edu
This commit is contained in:
Steven Wallace 1994-12-31 03:48:36 +00:00
parent d688b79a89
commit 2a24946928
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=652
5 changed files with 41 additions and 10 deletions

View File

@ -10,16 +10,15 @@ all:
(cd FREEBSD;make port)
(cd FREEBSD/cdecl; make all)
(cd FREEBSD/xlib; make all)
install:
mkdir -p ${SCHEME_DIR}/doc
(cd FREEBSD/scrt; make "LIBDIR = ${LIB_DIR}" \
"BINDIR = ${BIN_DIR}" install)
(cd FREEBSD/scsc; make "LIBDIR = ${LIB_DIR}" \
"BINDIR = ${BIN_DIR}" install)
strip ${BIN_DIR}/sccomp ${BIN_DIR}/sci
cp FREEBSD/xlib/scxl.a ${SCHEME_DIR}
ranlib ${SCHEME_DIR}/scxl.a
install -cs -g bin -o bin FREEBSD/xlib/scixl ${BIN_DIR}
(cd FREEBSD/xlib; make "LIBDIR = ${LIB_DIR}" \
"BINDIR = ${BIN_DIR}" install)
(cd doc; install -c -m 444 index.psf \
embedded.psf \
intro.psf \
@ -29,10 +28,12 @@ install:
cp test/test51.sc ${SCHEME_DIR}/doc/test.sc
cp xlib/hello.sc ${SCHEME_DIR}/doc
cp xlib/puzzle.sc ${SCHEME_DIR}/doc
cp README.FreeBSD ${SCHEME_DIR}/doc
cp doc/scc.l ${MAN_DIR}/scc.1
cp doc/sci.l ${MAN_DIR}/sci.1
gzip -f ${MAN_DIR}/sci.1 ${MAN_DIR}/scc.1
@if [ ! -e ${MAN_DIR}/scixl.1.gz ] ; then ln ${MAN_DIR}/sci.1.gz ${MAN_DIR}/scixl.1.gz;fi
@if [ ! -e ${MAN_DIR}/sccxl.1.gz ] ; then ln ${MAN_DIR}/scc.1.gz ${MAN_DIR}/sccxl.1.gz;fi
chmod 444 ${LIB_DIR}/libsc.so.1.0 ${LIB_DIR}/libscxl.so.1.0
chown -R bin:bin ${SCHEME_DIR}
strip ${BIN_DIR}/sccomp ${BIN_DIR}/sci ${BIN_DIR}/scixl

View File

@ -0,0 +1,20 @@
Notes for Scheme-to-C port for FreeBSD:
The documentation provided on the X library interface for Scheme-to-C
was very limited and as a result I'm not sure if I've got it right.
Instead of using having the compiler link the library archives libsc.a
(the standard schemetoc library) or scxl.a (the x library), two shared
libraries are included, libsc.so.1.0 and libscxl.so.1.0.
The syntax of the scc compiler has been extended to automatically
use dynamic linking unless the -static flag is specified on the scc
command line.
Those not wishing to use the X library support can delete the following
files:
libscxl.so.1.0 The shared lib.
schemetoc/scxl.a The library archive.
bin/scixl The X lib interpreter.
Each is about 1.4 megabytes.

View File

@ -10,6 +10,7 @@ CC = gcc
# Assembly language object files.
Aruntime = x86.o
SAruntime = x86.so
# Profiled library
@ -18,10 +19,14 @@ Plib = libsc_p.a
# Installation tools
RANLIB = ranlib
AS = as
CPP = cpp
# X library
XLIB = -lX11
XLIBCFLAGS =
PICFLAGS = -fpic -DPIC
# End of FREEBSD header.

View File

@ -6,6 +6,8 @@ This implementation has certain extensions to the language which
allows Scheme to be compiled to C into standalone programs, combined
with other languages, or compiled into the interpreter itself.
Scheme->C also includes an X interface library.
Scheme->C also includes an X interface library.
This port includes shared libs.
Ported to FreeBSD by Josh MacDonald, jmacd@uclink.berkeley.edu

View File

@ -3,9 +3,12 @@ bin/sci
bin/scc
bin/sccomp
bin/scixl
bin/sccxl
man/man1/sci.1.gz
man/man1/scc.1.gz
man/man1/scixl.1.gz
man/man1/sccxl.1.gz
lib/schemetoc
lib/libsc.so.1.0
lib/libscxl.so.1.0
@exec ranlib lib/schemetoc/libsc.a
@exec ranlib lib/schemetoc/libsc_p.a
@exec ranlib lib/schemetoc/scxl.a
@exec ldconfig