*** scrt/makefile.old	Tue Feb 16 17:55:48 1993
--- scrt/makefile	Fri Dec 30 03:45:48 1994
***************
*** 5,11 ****
  #
  
  .SUFFIXES:
! .SUFFIXES:	.o .c .sc .s
  
  SCC = ../scsc/scc
  SCCFLAGS = 
--- 5,11 ----
  #
  
  .SUFFIXES:
! .SUFFIXES:	.o .c .sc .s .so
  
  SCC = ../scsc/scc
  SCCFLAGS = 
***************
*** 14,19 ****
--- 14,21 ----
  
  Cruntime = scinit.o apply.o callcc.o cio.o heap.o objects.o mtraps.o
  
+ SCruntime = scinit.so apply.so callcc.so cio.so heap.so objects.so mtraps.so
+ 
  Cruntimec = scinit.c apply.c callcc.c cio.c heap.c objects.c mtraps.c
  
  Chfiles = scinit.h apply.h callcc.h cio.h heap.h objects.h options.h
***************
*** 22,27 ****
--- 24,34 ----
  	   scqquote.o screp.o \
  	   scrt1.o scrt2.o scrt3.o scrt4.o scrt5.o scrt6.o scrt7.o scrtuser.o
  
+ SSruntime = scdebug.so sceval.so scexpand.so scexpnd1.so scexpnd2.so \
+ 	   scqquote.so screp.so \
+ 	   scrt1.so scrt2.so scrt3.so scrt4.so scrt5.so scrt6.so scrt7.so \
+ 	   scrtuser.so
+ 
  Sruntimec = scdebug.c sceval.c scexpand.c scexpnd1.c scexpnd2.c \
              scqquote.c screp.c \
              scrt1.c scrt2.c scrt3.c scrt4.c scrt5.c scrt6.c scrt7.c scrtuser.c
***************
*** 43,59 ****
  	${SCC} -C ${SCCFLAGS} $*.sc
  
  .c.o:
! 	${CC} -c ${CFLAGS} -I. $*.c
  
  .s.o:
  	${CC} -c $*.s
  
  sc-to-c:	${Sruntimec} sci.c
  
  c-to-o:		${Sruntimec} ${Sruntime} ${Cruntime}
  
  s-to-o:		${Aruntime}
  
  Xlibsc.a:	${Sruntimec} ${Sruntime} ${Cruntime} ${Aruntime}
  	rm -f Xlibsc.a
  	ar q Xlibsc.a ${Cruntime} ${Sruntime} ${Aruntime}
--- 50,76 ----
  	${SCC} -C ${SCCFLAGS} $*.sc
  
  .c.o:
! 	${CC} ${CFLAGS} -c ${.IMPSRC} -I. -o ${.TARGET}
! 
! .c.so:	
! 	${CC} ${PICFLAGS} ${CFLAGS} -c ${.IMPSRC} -I. -o ${.TARGET}
  
  .s.o:
  	${CC} -c $*.s
  
+ .s.so:
+ 	${CPP} -E -DPIC ${CFLAGS:M-[ID]*} ${.IMPSRC} | \
+ 		${AS} -k -o ${.TARGET}
+ 
  sc-to-c:	${Sruntimec} sci.c
  
  c-to-o:		${Sruntimec} ${Sruntime} ${Cruntime}
  
  s-to-o:		${Aruntime}
  
+ OBJS = ${Sruntime} ${Cruntime} ${Aruntime}
+ SHAREDOBJS = ${OBJS:.o=.so}
+ 
  Xlibsc.a:	${Sruntimec} ${Sruntime} ${Cruntime} ${Aruntime}
  	rm -f Xlibsc.a
  	ar q Xlibsc.a ${Cruntime} ${Sruntime} ${Aruntime}
***************
*** 78,84 ****
  	
  port:
  	make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = echo" \
! 	     Xlibsc.a Xsci Xmv ${Plib}
  
  libsc_p.a:	libsc.a
  	mkdir saveobj
--- 95,101 ----
  	
  port:
  	make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = echo" \
! 	     Xlibsc.a Xsci Xmv ${Plib} libsc.so.1.0
  
  libsc_p.a:	libsc.a
  	mkdir saveobj
***************
*** 91,102 ****
  	mv saveobj/* .
  	rmdir saveobj
  
  install-private:
  	make "LIBDIR = ${DESTDIR}" "BINDIR = ${DESTDIR}" \
  	     "OWNER = -o `whoami`" install
  
  install:
- 	-mkdir ${LIBDIR}/schemetoc
  	cp libsc.a ${LIBDIR}/schemetoc/libsc.a
  	${RANLIB} ${LIBDIR}/schemetoc/libsc.a
  	-cp libsc_p.a ${LIBDIR}/schemetoc/libsc_p.a
--- 108,123 ----
  	mv saveobj/* .
  	rmdir saveobj
  
+ libsc.so.1.0:	${SCruntime} ${SSruntime} ${SAruntime}
+ 	rm -f libsc.so.1.0
+ 	ld -Bshareable -Bforcearchive -o libsc.so.1.0 \
+ 		${SCruntime} ${SSruntime} ${SAruntime}
+ 
  install-private:
  	make "LIBDIR = ${DESTDIR}" "BINDIR = ${DESTDIR}" \
  	     "OWNER = -o `whoami`" install
  
  install:
  	cp libsc.a ${LIBDIR}/schemetoc/libsc.a
  	${RANLIB} ${LIBDIR}/schemetoc/libsc.a
  	-cp libsc_p.a ${LIBDIR}/schemetoc/libsc_p.a
***************
*** 105,110 ****
--- 126,132 ----
  	cp options.h ${LIBDIR}/schemetoc
  	cp predef.sc ${LIBDIR}/schemetoc
  	cp sci ${BINDIR}/sci
+ 	cp libsc.so.1.0 ${LIBDIR}
  
  clean:
  	rm -f ${Sruntime} ${Cruntime} ${Aruntime} sci.o embedded.o \
***************
*** 125,131 ****
  
  all:
  	make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = ${SCC}" \
! 	     "SCCFLAGS = ${SCCFLAGS}" Xlibsc.a Xsci Xmv ${Plib}
  
  srclinks:
  	for x in ${Cruntimec} ${Chfiles} ${Sruntimec} ${Sruntimesc} ${Smisc}; \
--- 148,154 ----
  
  all:
  	make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = ${SCC}" \
! 	     "SCCFLAGS = ${SCCFLAGS}" Xlibsc.a Xsci Xmv ${Plib} libsc.so.1.0
  
  srclinks:
  	for x in ${Cruntimec} ${Chfiles} ${Sruntimec} ${Sruntimesc} ${Smisc}; \
