# Makefile for SCM (Scheme implementation intended for JACAL).
# Copyright (C) 1989, 1990 Aubrey Jaffer.
# See the file `scm.c' for terms applying to this program */
#
# use this CFLAGS definition to disable error checking:
#CFLAGS=-O -DRECKLESS
# for BSD nm format
SED_TO_STRIP_NM=sed -e '/.*\.o$$/d' -e 's/.* _//'
# for Sys5 nm format
#SED_TO_STRIP_NM=sed -e '/.*\.o/d' -e 's/.* _//'
hfiles = scm.h config.h
cfiles = scm.c scl.c sys.c eval.c subr.c
scmfiles= test.scm fib.scm utils.scm
tfiles = README ChangeLog code.doc public.lic MESSAGE
mfiles = makefile makefile.msc makefile.bor
#
scm:	scm.o scl.o sys.o eval.o subr.o
	cc -o scm scm.o scl.o sys.o eval.o subr.o
sys.o:	sys.c scm.h config.h
	cc -c $(CFLAGS) sys.c
eval.o: eval.c scm.h
	cc -c $(CFLAGS) eval.c
subr.o:	subr.c scm.h
	cc -c $(CFLAGS) subr.c
scm.o:	scm.c scm.h config.h
	cc -c $(CFLAGS) -DWARRANTY=\"`pwd`/public.lic\" scm.c
scl.o:	scl.c scm.h
	cc -c $(CFLAGS) scl.c
#
shar:	scm.shar
scm.shar:	$(cfiles) $(hfiles) $(scmfiles) $(mfiles) $(tfiles)
	shar $(cfiles) $(hfiles) $(scmfiles) $(mfiles) $(tfiles) >scm.shar
tar:	scm.tar
scm.tar:	$(cfiles) $(hfiles) $(scmfiles) $(mfiles) $(tfiles)
	tar -cf scm.tar $(cfiles) $(hfiles) $(scmfiles) $(mfiles) $(tfiles)
tar.Z:	scm.tar.Z
scm.tar.Z:	scm.tar
	compress scm.tar
lint:	lints
lints:	$(cfiles) $(hfiles)
	lint $(cfiles) | tee lints
name8:	name8s
name8s: scm
	nm scm |\
	$(SED_TO_STRIP_NM) |\
	sort -u|\
	awk '{	if (substr(l,1,8)==substr($$1,1,8)) {\
			if (p) print l;\
			print $$1;p=0;stat=1\
		}else p=1;\
		l=$$1\
	     }END{exit stat}' -
tags:	$(cfiles) $(hfiles)
	etags $(cfiles) $(hfiles)
clean:
	-rm -f *~ \#* *.o a.out core TAGS lints tmp*
