aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile152
1 files changed, 91 insertions, 61 deletions
diff --git a/Makefile b/Makefile
index 4f2a011..a59ddbc 100644
--- a/Makefile
+++ b/Makefile
@@ -49,10 +49,15 @@ SHELL = /bin/sh
LD = $(CC)
SCMLIT = ./scmlit
SCMEXE = ./scm
+#SHOBJS = *.sl
+SHOBJS = *.so
#BUILD = ./build -hsystem -p svr4-gcc-sun-ld
BUILD = ./build -hsystem
+# Workaround for unexec on Fedora Linux i386
+#SETARCH = setarch i386
+
#for RPMs
RELEASE = 1
@@ -60,16 +65,16 @@ intro:
@echo
@echo "This is the scm$(VERSION) distribution. Read \"scm.info\""
@echo "to learn how to build and install SCM. Or browse"
- @echo " http://swissnet.ai.mit.edu/~jaffer/SCM"
+ @echo " http://swiss.csail.mit.edu/~jaffer/SCM"
@echo
$(MAKE) scm
-#srcdir=$(HOME)/scm/
-#srcdir=/usr/local/src/scm/
-include srcdir.mk
srcdir.mk: Makefile
echo "CPROTO=`type cproto | sed 's%.* %%'`" > srcdir.mk
echo "srcdir=`pwd`/" >> srcdir.mk
+#srcdir=$(HOME)/scm/
+#srcdir=/usr/local/src/scm/
+include srcdir.mk
# directory where COPYING and InitXXX.scm reside.
#IMPLPATH = /usr/local/src/scm/
@@ -85,21 +90,22 @@ IMPLINIT = $(IMPLPATH)Init$(VERSION).scm
cfiles = scmmain.c scm.c time.c repl.c ioext.c scl.c sys.c eval.c \
subr.c sc2.c unif.c rgx.c crs.c dynl.c record.c posix.c socket.c\
- unix.c rope.c ramap.c gsubr.c edline.c Iedline.scm continue.c \
- findexec.c script.c debug.c byte.c
+ unix.c rope.c ramap.c gsubr.c edline.c continue.c \
+ findexec.c script.c debug.c byte.c differ.c
ofiles = scm.o time.o repl.o scl.o sys.o eval.o subr.o unif.o rope.o \
continue.o findexec.o script.o debug.o
# ramap.o
ifiles = Init$(VERSION).scm Transcen.scm Link.scm Macro.scm Macexp.scm \
- Tscript.scm compile.scm
+ Tscript.scm compile.scm Iedline.scm Idiffer.scm
hobfiles = hobbit.scm scmhob.scm scmhob.h
xafiles = xatoms.scm x11.scm xevent.scm keysymdef.scm
xfiles = x.c x.h xgen.scm xevent.h inc2scm $(xafiles)
all: require.scm
$(MAKE) mydlls
- $(MAKE) myscm5
+ $(MAKE) dscm5
$(MAKE) x.so
+ $(MAKE) db.so
require.scm:
cp -p requires.scm require.scm
@@ -113,7 +119,7 @@ scmflags:
echo "#define IMPLINIT \"$(IMPLINIT)\"" >> newflags.h
echo "#endif" >> newflags.h
echo "#define CAUTIOUS" >> newflags.h
- -if (diff newflags.h scmflags.h) then rm newflags.h; \
+ -if (cmp -s newflags.h scmflags.h) then rm newflags.h; \
else mv newflags.h scmflags.h; fi
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
@@ -132,23 +138,34 @@ rope.o: rope.c scm.h scmfig.h scmflags.h
continue.o: continue.c continue.h setjump.h scm.h scmfig.h scmflags.h
# Simple build with bignums for running JACAL
-scm:
+scm: scmlit
$(BUILD) -s $(IMPLPATH) -F cautious bignums arrays # i/o-extensions
$(MAKE) check
-# R4RS interpreter
+# R5RS interpreter (not dumpable)
+scm5.opt:
+ echo "-F cautious bignums arrays inexact" >> scm5.opt
+ echo "-F engineering-notation dynamic-linking" >> scm5.opt
+ echo "-F macro" >> scm5.opt
+scm5: $(cfiles) $(hfiles) build.scm build scm5.opt
+ $(BUILD) -f scm5.opt -o scm -s $(IMPLPATH)
+ rm $(ofiles) scmmain.o
+ -$(MAKE) check
+ -$(MAKE) checkmacro
+
+# dumpable R4RS interpreter
udscm4.opt:
echo "-F cautious bignums arrays inexact" >> udscm4.opt
echo "-F engineering-notation dump dynamic-linking" >> udscm4.opt
udscm4: $(cfiles) $(hfiles) build.scm build udscm4.opt
$(BUILD) -f udscm4.opt -o udscm4 -s $(IMPLPATH)
rm $(ofiles) scmmain.o
-myscm4: udscm4 $(ifiles) require.scm
+dscm4: udscm4 $(ifiles) require.scm
-rm slibcat implcat
-mv scm scm~
- echo "(quit)" | ./udscm4 -no-init-file -o scm
+ echo "(quit)" | $(SETARCH) ./udscm4 -no-init-file -o scm
-# R5RS interpreter
+# dumpable R5RS interpreter
udscm5.opt: udscm4.opt
cat udscm4.opt >> udscm5.opt
echo "-F macro" >> udscm5.opt
@@ -156,10 +173,10 @@ udscm5.opt: udscm4.opt
udscm5: $(cfiles) $(hfiles) build.scm build Makefile udscm5.opt
$(BUILD) -f udscm5.opt -o udscm5 -s $(IMPLPATH)
rm $(ofiles) scmmain.o
-myscm5: udscm5 $(ifiles) require.scm
+dscm5: udscm5 $(ifiles) require.scm
-rm slibcat implcat
-mv scm scm~
- echo "(quit)" | ./udscm5 -no-init-file -r5 -o scm
+ echo "(quit)" | $(SETARCH) ./udscm5 -no-init-file -r5 -o scm
$(MAKE) check
$(MAKE) checkmacro
@@ -174,7 +191,7 @@ gdb.opt: udscm5.opt
udgdbscm: gdb.opt
$(BUILD) -f gdb.opt -o udgdbscm -s $(IMPLPATH)
gdbscm: udgdbscm
- echo "(quit)" | ./udgdbscm -no-init-file -r5 -o gdbscm
+ echo "(quit)" | $(SETARCH) ./udgdbscm -no-init-file -r5 -o gdbscm
# R4RS interpreter for profiling
pg.opt: udscm4.opt
@@ -185,7 +202,7 @@ pg.opt: udscm4.opt
udpgscm: pg.opt
$(BUILD) -f pg.opt -o udpgscm -s $(IMPLPATH)
pgscm: udpgscm
- echo "(quit)" | ./udpgscm -no-init-file -o pgscm
+ echo "(quit)" | $(SETARCH) ./udpgscm -no-init-file -o pgscm
# R4RS SCM library
libscm.opt:
@@ -207,9 +224,25 @@ mydlls: dlls.opt
if [ -f /usr/lib/libreadline.so ]; \
then $(BUILD) -t dll -f dlls.opt -F edit-line; fi
$(BUILD) -t dll -f dlls.opt -F curses
- $(BUILD) -t dll -f dlls.opt -c sc2.c rgx.c record.c gsubr.c \
- ioext.c posix.c unix.c socket.c ramap.c byte.c
-
+ $(BUILD) -t dll -f dlls.opt -c sc2.c
+ $(BUILD) -t dll -f dlls.opt -c rgx.c
+ $(BUILD) -t dll -f dlls.opt -c record.c
+ $(BUILD) -t dll -f dlls.opt -c gsubr.c
+ $(BUILD) -t dll -f dlls.opt -c ioext.c
+ $(BUILD) -t dll -f dlls.opt -c posix.c
+ $(BUILD) -t dll -f dlls.opt -c unix.c
+ $(BUILD) -t dll -f dlls.opt -c socket.c
+ $(BUILD) -t dll -f dlls.opt -c ramap.c
+ $(BUILD) -t dll -f dlls.opt -c byte.c
+
+rwb-isam.scm wbtab.scm: ../wb/rwb-isam.scm ../wb/wbtab.scm
+ cp ../wb/rwb-isam.scm ../wb/wbtab.scm ./
+db.so: dlls.opt rwb-isam.scm wbtab.scm
+ if [ -f ../wb/blink.c ]; then \
+ $(BUILD) -t dll -f dlls.opt -F wb; fi
+
+differ.so: differ.c
+ $(BUILD) -t dll -f dlls.opt -F differ
myturtle: dlls.opt
$(BUILD) -t dll -f dlls.opt -F turtlegr
@@ -228,7 +261,7 @@ keysymdef.scm: inc2scm
xevent.h xevent.scm xatoms.scm: xgen.scm Makefile
$(SCMLIT) -l xgen.scm $(incdir)X11/Xlib.h
x.h: x.c xevent.h
- if [ ! -z "$(CPROTO)" ]; then $(CPROTO) x.c > x.h; fi
+ if [ -x "$(CPROTO)" ]; then $(CPROTO) x.c > x.h; fi
# Check SCM; SCMLIT function.
checklit:
@@ -278,7 +311,7 @@ report:
$(SCMLIT) -e"(slib:report #t)"
$(SCMEXE) -e"(slib:report #t)"
-implcat: *.so mkimpcat.scm
+implcat: $(SHOBJS) mkimpcat.scm
$(SCMLIT) -lmkimpcat.scm
htmldir=../public_html/
@@ -286,23 +319,23 @@ dvidir=../dvi/
dvi: $(dvidir)scm.dvi $(dvidir)Xlibscm.dvi $(dvidir)hobbit.dvi
$(dvidir)scm.dvi: version.txi scm.texi platform.txi features.txi\
$(dvidir)scm.fn Makefile
-# cd $(dvidir);export TEXINPUTS=$(srcdir):;texi2dvi $(srcdir)scm.texi
- -(cd $(dvidir);export TEXINPUTS=$(srcdir):;texindex scm.??)
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)scm.texi
+# cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texi2dvi $(srcdir)scm.texi
+ -(cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texindex scm.??)
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)scm.texi
$(dvidir)scm.fn:
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)scm.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)scm.texi
$(dvidir)Xlibscm.dvi: version.txi Xlibscm.texi $(dvidir)Xlibscm.fn Makefile
-# cd $(dvidir);export TEXINPUTS=$(srcdir):;texi2dvi $(srcdir)Xlibscm.texi
- -(cd $(dvidir);export TEXINPUTS=$(srcdir):;texindex Xlibscm.??)
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)Xlibscm.texi
+# cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texi2dvi $(srcdir)Xlibscm.texi
+ -(cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texindex Xlibscm.??)
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)Xlibscm.texi
$(dvidir)Xlibscm.fn:
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)Xlibscm.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)Xlibscm.texi
$(dvidir)hobbit.dvi: version.txi hobbit.texi $(dvidir)hobbit.fn Makefile
-# cd $(dvidir);export TEXINPUTS=$(srcdir):;texi2dvi $(srcdir)hobbit.texi
- -(cd $(dvidir);export TEXINPUTS=$(srcdir):;texindex hobbit.??)
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)hobbit.texi
+# cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texi2dvi $(srcdir)hobbit.texi
+ -(cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;texindex hobbit.??)
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)hobbit.texi
$(dvidir)hobbit.fn:
- cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)hobbit.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)hobbit.texi
xdvi: $(dvidir)scm.dvi
xdvi -s 3 $(dvidir)scm.dvi
Xdvi: $(dvidir)Xlibscm.dvi
@@ -313,13 +346,13 @@ hobdvi: $(dvidir)hobbit.dvi
pdf: $(htmldir)scm.pdf $(htmldir)Xlibscm.pdf $(htmldir)hobbit.pdf
$(htmldir)scm.pdf: version.txi scm.texi platform.txi features.txi\
$(dvidir)scm.fn Makefile
- cd $(dvidir);export TEXINPUTS=$(srcdir):;pdftex $(srcdir)scm.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;pdftex $(srcdir)scm.texi
mv $(dvidir)scm.pdf $(htmldir)
$(htmldir)Xlibscm.pdf: version.txi Xlibscm.texi $(dvidir)Xlibscm.fn Makefile
- cd $(dvidir);export TEXINPUTS=$(srcdir):;pdftex $(srcdir)Xlibscm.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;pdftex $(srcdir)Xlibscm.texi
mv $(dvidir)Xlibscm.pdf $(htmldir)
$(htmldir)hobbit.pdf: version.txi hobbit.texi $(dvidir)hobbit.fn Makefile
- cd $(dvidir);export TEXINPUTS=$(srcdir):;pdftex $(srcdir)hobbit.texi
+ cd $(dvidir);TEXINPUTS=$(srcdir):;export TEXINPUTS;pdftex $(srcdir)hobbit.texi
mv $(dvidir)hobbit.pdf $(htmldir)
xpdf: $(htmldir)scm.pdf
xpdf -z 3 $(htmldir)scm.pdf
@@ -420,7 +453,7 @@ $(infodir)Xlibscm.info.gz: $(infodir)Xlibscm.info
$(infodir)hobbit.info.gz: $(infodir)hobbit.info
gzip -f $(infodir)hobbit.info
-install: scm.1
+install: scm.1 db.so wbtab.scm rwb-isam.scm
test -d $(bindir) || mkdir $(bindir)
test -d $(mandir) || mkdir $(mandir)
test -d $(man1dir) || mkdir $(man1dir)
@@ -432,8 +465,9 @@ install: scm.1
-cp $(ifiles) $(hobfiles) COPYING r4rstest.scm $(libscmdir)
test -f $(libscmdir)require.scm || \
cp requires.scm $(libscmdir)require.scm
- -cp build build.scm mkimpcat.scm Iedline.scm *.sl *.so patchlvl.h\
+ -cp build build.scm mkimpcat.scm Iedline.scm $(SHOBJS) patchlvl.h\
$(xafiles) $(libscmdir)
+ -cp db.so wbtab.scm rwb-isam.scm $(libscmdir)
installlib:
test -d $(includedir) || mkdir $(includedir)
@@ -446,18 +480,10 @@ uninstall:
-rm $(man1dir)scm.1
-rm $(includedir)scm.h $(includedir)scmfig.h $(includedir)scmflags.h
-rm $(libdir)libscm.a
- -rm $(libscmdir)Transcen.scm\
- $(libscmdir)Link.scm\
- $(libscmdir)Macro.scm\
- $(libscmdir)Macexp.scm\
- $(libscmdir)Tscript.scm\
- $(libscmdir)compile.scm\
- $(libscmdir)hobbit.scm\
- $(libscmdir)scmhob.scm\
- $(libscmdir)scmhob.h\
- $(libscmdir)COPYING\
- $(libscmdir)r4rstest.scm
- -rm $(libscmdir)Init$(VERSION).scm
+ -(cd $(libscmdir); rm $(ifiles) $(hobfiles) COPYING r4rstest.scm)
+ -(cd $(libscmdir); rm build build.scm mkimpcat.scm \
+ $(SHOBJS) patchlvl.h $(xafiles))
+ -(cd $(libscmdir); rm db.so wbtab.scm rwb-isam.scm require.scm)
uninstallinfo:
-rm $(infodir)scm.info.gz $(infodir)Xlibscm.info.gz\
@@ -499,9 +525,11 @@ afiles = $(dfiles) $(cfiles) $(hfiles) $(ifiles) $(tfiles) $(mfiles) \
makedev = make -f $(HOME)/makefile.dev
CHPAT=$(HOME)/bin/chpat
-RSYNC=rsync -avessh
+RSYNC=rsync --rsync-path=bin/rsync -bav
UPLOADEE=swissnet_upload
dest = $(HOME)/dist/
+DOSCM = /misc/usb1/scm/
+
temp/scm: $(afiles)
-$(RM_R) temp
mkdir temp
@@ -532,6 +560,8 @@ postnews:
upzip: $(HOME)/pub/scm.zip
$(RSYNC) $(HOME)/pub/scm.zip $(UPLOADEE):pub/
+ $(RSYNC) r4rstest.scm $(HOME)/dist/
+ $(RSYNC) r4rstest.scm $(UPLOADEE):dist/
dist: $(dest)scm$(VERSION).zip
$(dest)scm$(VERSION).zip: temp/scm
@@ -540,7 +570,7 @@ $(dest)scm$(VERSION).zip: temp/scm
rpm: pubzip
# $(dest)scm-$(VERSION)-$(RELEASE).i386.rpm: $(dest)scm$(VERSION).zip
cp -f $(HOME)/pub/scm.zip $(rpm_prefix)SOURCES/scm$(VERSION).zip
- rpm -ba scm.spec # --clean
+ rpmbuild -ba scm.spec # --clean
rm $(rpm_prefix)SOURCES/scm$(VERSION).zip
mv $(rpm_prefix)RPMS/i386/scm-$(VERSION)-$(RELEASE).i386.rpm \
$(rpm_prefix)SRPMS/scm-$(VERSION)-$(RELEASE).src.rpm $(dest)
@@ -555,12 +585,12 @@ scm.com: temp/scm
zip: scm.zip
scm.zip: temp/scm
$(makedev) PROD=scm zip
-doszip: /c/scm/dist/scm$(VERSION).zip
-/c/scm/dist/scm$(VERSION).zip: temp/scm turtle turtlegr.c grtest.scm
- $(makedev) DEST=/c/scm/dist/ PROD=scm ver=$(VERSION) zip
- cd ..; zip -9ur /c/scm/dist/scm$(VERSION).zip \
+doszip: $(DOSCM)dist/scm$(VERSION).zip
+$(DOSCM)dist/scm$(VERSION).zip: temp/scm turtle turtlegr.c grtest.scm
+ $(makedev) DEST=$(DOSCM)dist/ PROD=scm ver=$(VERSION) zip
+ cd ..; zip -9ur $(DOSCM)dist/scm$(VERSION).zip \
scm/turtle scm/turtlegr.c scm/grtest.scm
- zip -d /c/scm/dist/scm$(VERSION).zip scm/scm.info scm/Xlibscm.info scm/hobbit.info
+ zip -d $(DOSCM)dist/scm$(VERSION).zip scm/scm.info scm/Xlibscm.info scm/hobbit.info
pubzip: $(HOME)/pub/scm.zip
$(HOME)/pub/scm.zip: temp/scm
$(makedev) DEST=$(HOME)/pub/ PROD=scm zip
@@ -577,8 +607,8 @@ CITERS = ANNOUNCE ../jacal/ANNOUNCE \
$(htmldir)SLIB.html $(htmldir)JACAL.html \
$(htmldir)SCM.html $(htmldir)SIMSYNCH.html \
../jacal/jacal.texi ../wb/wb.texi \
- /c/scm/dist/install.bat /c/scm/dist/makefile \
- /c/scm/dist/mkdisk.bat hobbit.texi hobbit.scm
+ $(DOSCM)dist/install.bat $(DOSCM)dist/makefile \
+ $(DOSCM)dist/mkdisk.bat hobbit.texi hobbit.scm
updates: Init$(ver).scm
$(CHPAT) scm$(VERSION) scm$(ver) $(CITERS)