Added a whole bunch of .h files describing the module structure of the C

files. These files mostly mediate between the C source (export) and
the corresponding C stub files (import) generated by the Scheme files
calling the C routines.

This provided much better argument type checking that before; lots of
small bugs were caught.

Also added const keywords wherever I could find a reasonable place
to improve error detection and efficiency.

Tuned up the makefile to reflect all of this structure. It's dependencies
were pretty out-of-date as it was. It could probably use further work.
This commit is contained in:
shivers 1995-10-22 12:28:25 +00:00
parent 7d2447407a
commit 1d62cb2182
1 changed files with 38 additions and 7 deletions

View File

@ -108,14 +108,13 @@ SCSHOBJS = \
scsh/machine/time_dep1.o \ scsh/machine/time_dep1.o \
scsh/network.o scsh/network1.o \ scsh/network.o scsh/network1.o \
scsh/putenv.o \ scsh/putenv.o \
scsh/re.o \ scsh/rdelim.o \
scsh/rescm.o \ scsh/re.o scsh/re1.o \
scsh/regexp/libregexp.a \
scsh/syscalls.o scsh/syscalls1.o \ scsh/syscalls.o scsh/syscalls1.o \
scsh/time.o scsh/time1.o \ scsh/time.o scsh/time1.o \
scsh/tty.o scsh/tty1.o \ scsh/tty.o scsh/tty1.o \
scsh/userinfo.o \ scsh/userinfo1.o \
scsh/regexp/libregexp.a \
scsh/rdelim.o \
scsh/select.o scsh/select1.o scsh/select.o scsh/select1.o
# scsh/$(DBOPEN) \ # scsh/$(DBOPEN) \
@ -136,6 +135,7 @@ CONFIG_FILES = interfaces.scm low-packages.scm rts-packages.scm \
enough: $(VM) $(IMAGE) script $(LIBCIG) scsh $(MANPAGE) .notify enough: $(VM) $(IMAGE) script $(LIBCIG) scsh $(MANPAGE) .notify
# The developers are curious to know. Don't be concerned if this fails. # The developers are curious to know. Don't be concerned if this fails.
# You may comment these lines out if you wish to be discourteous.
.notify: minor-version-number .notify: minor-version-number
touch .notify touch .notify
-echo SCSH 0.`cat $(srcdir)/scsh/minor-version-number` \ -echo SCSH 0.`cat $(srcdir)/scsh/minor-version-number` \
@ -149,6 +149,25 @@ enough: $(VM) $(IMAGE) script $(LIBCIG) scsh $(MANPAGE) .notify
.scm.c: .scm.c:
$(srcdir)/$(VM) -o $(srcdir)/$(VM) -i $(CIG) < $< > $*.c $(srcdir)/$(VM) -o $(srcdir)/$(VM) -i $(CIG) < $< > $*.c
# These .h files mediate between the code exported from foo1.c
# and imported into foo.scm's stub foo.c.
scsh/dirstuff1.o: scsh/dirstuff1.h
scsh/rdelim.o: scsh/fdports1.h
scsh/userinfo1.o: scsh/userinfo1.h
scsh/fdports1.o scsh/fdports.o: scsh/fdports1.h
scsh/flock1.o scsh/flock.o: scsh/flock1.h
scsh/network1.o scsh/network.o: scsh/network1.h
scsh/re1.o scsh/re.o: scsh/re1.h
scsh/select1.o scsh/select.o: scsh/select1.h
scsh/syscalls1.o scsh/syscalls.o: scsh/syscalls1.h
scsh/time1.o scsh/time.o: scsh/time1.h
scsh/tty1.o scsh/tty.o: scsh/tty1.h
scsh/syscalls.o: scsh/syscalls1.h scsh/dirstuff1.h scsh/fdports1.h \
scsh/select1.h scsh/userinfo1.h
include $(srcdir)/scsh/machine/Makefile.inc include $(srcdir)/scsh/machine/Makefile.inc
#NetBSD make wants to see this instead: (or use GNU make on BSD. -bri) #NetBSD make wants to see this instead: (or use GNU make on BSD. -bri)
#.include "$(srcdir)/scsh/machine/Makefile.inc" #.include "$(srcdir)/scsh/machine/Makefile.inc"
@ -511,14 +530,19 @@ $(CIG).image: $(IMAGE) $(VM) $(srcdir)/cig/cig.scm $(srcdir)/cig/libcig.scm
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
scsh: cig scsh/scsh scsh/scsh.image scsh: cig scsh/scsh scsh/scsh.image
SCHEME =scsh/defrec.scm \ SCHEME =scsh/awk.scm \
scsh/char-set.scm \
scsh/defrec.scm \
scsh/enumconst.scm \
scsh/fdports.scm \ scsh/fdports.scm \
scsh/fileinfo.scm \ scsh/fileinfo.scm \
scsh/filemtch.scm \ scsh/filemtch.scm \
scsh/filesys.scm \ scsh/filesys.scm \
scsh/flock.scm \ scsh/flock.scm \
scsh/fname.scm \ scsh/fname.scm \
scsh/fr.scm \
scsh/glob.scm \ scsh/glob.scm \
scsh/here.scm \
scsh/machine/bufpol.scm \ scsh/machine/bufpol.scm \
scsh/machine/errno.scm \ scsh/machine/errno.scm \
scsh/machine/fdflags.scm \ scsh/machine/fdflags.scm \
@ -528,16 +552,21 @@ SCHEME =scsh/defrec.scm \
scsh/machine/time_dep.scm \ scsh/machine/time_dep.scm \
scsh/machine/tty-consts.scm \ scsh/machine/tty-consts.scm \
scsh/machine/waitcodes.scm \ scsh/machine/waitcodes.scm \
meta-arg.scm \
scsh/network.scm \ scsh/network.scm \
scsh/newports.scm \ scsh/newports.scm \
scsh/procobj.scm \ scsh/procobj.scm \
scsh/rdelim.scm \
scsh/re.scm \ scsh/re.scm \
scsh/rw.scm \ scsh/rw.scm \
scsh/scsh-condition.scm \ scsh/scsh-condition.scm \
scsh/scsh-interfaces.scm \ scsh/scsh-interfaces.scm \
scsh/scsh-package.scm \ scsh/scsh-package.scm \
scsh/scsh-read.scm \
scsh/scsh-version.scm \
scsh/scsh.scm \ scsh/scsh.scm \
scsh/select.scm \ scsh/select.scm \
scsh/startup.scm \
scsh/stringcoll.scm \ scsh/stringcoll.scm \
scsh/syntax-helpers.scm \ scsh/syntax-helpers.scm \
scsh/syntax.scm \ scsh/syntax.scm \
@ -547,7 +576,9 @@ SCHEME =scsh/defrec.scm \
scsh/tty.scm \ scsh/tty.scm \
scsh/utilities.scm scsh/utilities.scm
# scsh/dbm.scm # scsh/dbm.scm db.scm ndbm.scm
# static.scm static-heap.scm static1.scm
# jcontrol
# Bogus, but it makes the scm->c->o two-ply dependency work. # Bogus, but it makes the scm->c->o two-ply dependency work.
# Explicitly giving the .o/.c dependency also makes it go. # Explicitly giving the .o/.c dependency also makes it go.