--- scrt/makefile.orig Wed Feb 17 10:55:48 1993 +++ scrt/makefile Wed Feb 2 22:22:22 2000 @@ -5,7 +5,9 @@ # .SUFFIXES: -.SUFFIXES: .o .c .sc .s +.SUFFIXES: .o .c .sc .s .so + +SOVER = 1 SCC = ../scsc/scc SCCFLAGS = @@ -14,6 +16,8 @@ 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,6 +26,11 @@ 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,17 +52,27 @@ ${SCC} -C ${SCCFLAGS} $*.sc .c.o: - ${CC} -c ${CFLAGS} -I. $*.c + ${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} @@ -75,36 +94,42 @@ Xmv: Xsci Xlibsc.a mv Xsci sci mv Xlibsc.a libsc.a - + port: - make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = echo" \ - Xlibsc.a Xsci Xmv ${Plib} + ${MAKE} "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = echo" \ + Xlibsc.a Xsci Xmv ${Plib} libsc.so.${SOVER} libsc_p.a: libsc.a mkdir saveobj mv ${Sruntime} ${Cruntime} ${Aruntime} saveobj rm -f libsc_p.a - make "CC = ${CC}" "CFLAGS = ${CFLAGS} -pg" ${Sruntime} ${Cruntime} \ + ${MAKE} "CC = ${CC}" "CFLAGS = ${CFLAGS} -pg" ${Sruntime} ${Cruntime} \ ${Aruntime} ar q libsc_p.a ${Cruntime} ${Sruntime} ${Aruntime} ${RANLIB} libsc_p.a mv saveobj/* . rmdir saveobj +libsc.so.${SOVER}: ${SCruntime} ${SSruntime} ${SAruntime} + rm -f libsc.so.${SOVER} + ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text -Wl,-soname,$@ -o $@ \ + ${SCruntime} ${SSruntime} ${SAruntime} + install-private: - make "LIBDIR = ${DESTDIR}" "BINDIR = ${DESTDIR}" \ + ${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 - -${RANLIB} ${LIBDIR}/schemetoc/libsc_p.a - cp objects.h ${LIBDIR}/schemetoc - cp options.h ${LIBDIR}/schemetoc - cp predef.sc ${LIBDIR}/schemetoc - cp sci ${BINDIR}/sci + ${BSD_INSTALL_DATA} libsc.a ${LIBDIR} + -${RANLIB} ${LIBDIR}/libsc.a + ${BSD_INSTALL_DATA} libsc_p.a ${LIBDIR} + -${RANLIB} ${LIBDIR}/libsc_p.a + ${BSD_INSTALL_DATA} objects.h ${LIBDIR}/schemetoc + ${BSD_INSTALL_DATA} options.h ${LIBDIR}/schemetoc + ${BSD_INSTALL_DATA} predef.sc ${LIBDIR}/schemetoc + ${BSD_INSTALL_PROGRAM} sci ${BINDIR} + ${BSD_INSTALL_DATA} libsc.so.${SOVER} ${LIBDIR} + ln -sf libsc.so.${SOVER} ${LIBDIR}/libsc.so clean: rm -f ${Sruntime} ${Cruntime} ${Aruntime} sci.o embedded.o \ @@ -124,8 +149,8 @@ libsc.a ${Plib} sci ${destdir} all: - make "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = ${SCC}" \ - "SCCFLAGS = ${SCCFLAGS}" Xlibsc.a Xsci Xmv ${Plib} + ${MAKE} "CC = ${CC}" "CFLAGS = ${CFLAGS}" "SCC = ${SCC}" \ + "SCCFLAGS = ${SCCFLAGS}" Xlibsc.a Xsci Xmv ${Plib} libsc.so.${SOVER} srclinks: for x in ${Cruntimec} ${Chfiles} ${Sruntimec} ${Sruntimesc} ${Smisc}; \