summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile143
1 files changed, 84 insertions, 59 deletions
diff --git a/Makefile b/Makefile
index b483503..76d3c99 100644
--- a/Makefile
+++ b/Makefile
@@ -55,9 +55,21 @@ SHOBJS = *.so
#BUILD = ./build -hsystem -p svr4-gcc-sun-ld
BUILD = ./build -hsystem
-# Workaround for unexec on Fedora Linux i386
+# Workaround for unexec on Fedora Core 1 Linux i386
#SETARCH = setarch i386
+# http://jamesthornton.com/writing/emacs-compile.html
+# [For FC3] combreloc has become the default for recent GNU ld, which
+# breaks the unexec/undump on all versions of both Emacs and
+# XEmacs...
+#
+# Add the following to udscm5.opt:
+#--linker-options="-z nocombreloc"
+
+# http://www.opensubscriber.com/message/emacs-devel@gnu.org/1007118.html
+# Kernels later than 2.6.11 must do (as root) before dumping:
+#echo 0 > /proc/sys/kernel/randomize_va_space
+
#for RPMs
RELEASE = 1
@@ -95,7 +107,7 @@ cfiles = scmmain.c scm.c time.c repl.c ioext.c scl.c sys.c eval.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
+# continue-ia64.o
ifiles = Init$(VERSION).scm Transcen.scm Link.scm Macro.scm Macexp.scm \
Tscript.scm compile.scm Iedline.scm Idiffer.scm
hobfiles = hobbit.scm scmhob.scm scmhob.h
@@ -120,6 +132,7 @@ scmflags:
echo "#ifndef IMPLINIT" > newflags.h
echo "#define IMPLINIT \"$(IMPLINIT)\"" >> newflags.h
echo "#endif" >> newflags.h
+ echo "#define CHEAP_CONTINUATIONS" >> newflags.h
echo "#define CAUTIOUS" >> newflags.h
-if (cmp -s newflags.h scmflags.h) then rm newflags.h; \
else mv newflags.h scmflags.h; fi
@@ -138,6 +151,10 @@ time.o: time.c scm.h scmfig.h scmflags.h
subr.o: subr.c scm.h scmfig.h scmflags.h
rope.o: rope.c scm.h scmfig.h scmflags.h
continue.o: continue.c continue.h setjump.h scm.h scmfig.h scmflags.h
+continue-ia64.o: continue-ia64.S get-contoffset-ia64.c
+ gcc -o get-contoffset-ia64 get-contoffset-ia64.c
+ ./get-contoffset-ia64 contoffset-ia64.S
+ gcc -c -o continue-ia64.o continue-ia64.S
# Simple build with bignums for running JACAL
scm: scmlit
@@ -165,23 +182,40 @@ udscm4: $(cfiles) $(hfiles) build.scm build udscm4.opt
$(BUILD) -f udscm4.opt -o udscm4 -s $(IMPLPATH)
rm $(ofiles) scmmain.o
dscm4: udscm4 $(ifiles) require.scm
- -rm slibcat implcat
+ if [ -f /proc/sys/kernel/randomize_va_space -a\
+ "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\
+ cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\
+ echo 0 > /proc/sys/kernel/randomize_va_space;\
+ } fi
+ -rm -f slibcat implcat scm~
-mv scm scm~
echo "(quit)" | $(SETARCH) ./udscm4 -no-init-file -o scm
+ if [ -f randomize_va_space.tmp ]; then {\
+ cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\
+ rm randomize_va_space.tmp;\
+ } fi
# dumpable R5RS interpreter
udscm5.opt:
$(MAKE) udscm4.opt
cat udscm4.opt >> udscm5.opt
echo "-F macro" >> udscm5.opt
-# echo "-DNO_SYM_GC" >> udscm5.opt
-udscm5: $(cfiles) $(hfiles) build.scm build Makefile udscm5.opt
+udscm5: $(cfiles) $(hfiles) build.scm build udscm5.opt
$(BUILD) -f udscm5.opt -o udscm5 -s $(IMPLPATH)
rm $(ofiles) scmmain.o
dscm5: udscm5 $(ifiles) require.scm
- -rm slibcat implcat
+ if [ -f /proc/sys/kernel/randomize_va_space -a\
+ "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\
+ cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\
+ echo 0 > /proc/sys/kernel/randomize_va_space;\
+ } fi
+ -rm -f slibcat implcat scm~
-mv scm scm~
echo "(quit)" | $(SETARCH) ./udscm5 -no-init-file -r5 -o scm
+ if [ -f randomize_va_space.tmp ]; then {\
+ cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\
+ rm randomize_va_space.tmp;\
+ } fi
$(MAKE) check
$(MAKE) checkmacro
@@ -226,19 +260,19 @@ dlls.opt:
echo "--compiler-options=-Wall" >> dlls.opt
echo "--linker-options=-Wall" >> dlls.opt
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
- $(BUILD) -t dll -f dlls.opt -c rgx.c
+ $(BUILD) -t dll -f dlls.opt -c ramap.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 byte.c
+ $(BUILD) -t dll -f dlls.opt -c sc2.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
+ $(BUILD) -t dll -f dlls.opt -c unix.c
+ $(BUILD) -t dll -f dlls.opt -F curses
+ $(BUILD) -t dll -f dlls.opt -c rgx.c
+ if [ -f /usr/lib/libreadline.so ]; \
+ then $(BUILD) -t dll -f dlls.opt -F edit-line; fi
rwb-isam.scm wbtab.scm: ../wb/rwb-isam.scm ../wb/wbtab.scm
cp ../wb/rwb-isam.scm ../wb/wbtab.scm ./
@@ -270,7 +304,7 @@ x.h: x.c xevent.h
# Check SCM; SCMLIT function.
checklit:
- $(SCMLIT) -fr4rstest.scm -e'(test-sc4)(test-cont)(test-delay)(gc)' \
+ $(SCMLIT) -fr4rstest.scm -e'(test-sc4)(test-delay)(gc)' \
-e '(or (null? errs) (quit 1))'
check: r4rstest.scm
$(SCMEXE) -fr4rstest.scm -e'(test-sc4)(test-cont)(test-delay)(gc)' \
@@ -320,51 +354,36 @@ implcat: $(SHOBJS) mkimpcat.scm
$(SCMLIT) -lmkimpcat.scm
htmldir=../public_html/
-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);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);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)scm.texi
-$(dvidir)Xlibscm.dvi: version.txi Xlibscm.texi $(dvidir)Xlibscm.fn Makefile
-# 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);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)Xlibscm.texi
-$(dvidir)hobbit.dvi: version.txi hobbit.texi $(dvidir)hobbit.fn Makefile
-# 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);TEXINPUTS=$(srcdir):;export TEXINPUTS;tex $(srcdir)hobbit.texi
-xdvi: $(dvidir)scm.dvi
- xdvi -s 3 $(dvidir)scm.dvi
-Xdvi: $(dvidir)Xlibscm.dvi
- xdvi -s 3 $(dvidir)Xlibscm.dvi
-hobdvi: $(dvidir)hobbit.dvi
- xdvi -s 3 $(dvidir)hobbit.dvi
+dvi: scm.dvi Xlibscm.dvi hobbit.dvi
+scm.dvi: version.txi scm.texi platform.txi features.txi Makefile
+ texi2dvi -b -c $(srcdir)scm.texi
+Xlibscm.dvi: version.txi Xlibscm.texi Makefile
+ texi2dvi -b -c $(srcdir)Xlibscm.texi
+hobbit.dvi: version.txi hobbit.texi Makefile
+ texi2dvi -b -c $(srcdir)hobbit.texi
+xdvi: scm.dvi
+ xdvi scm.dvi
+Xdvi: Xlibscm.dvi
+ xdvi Xlibscm.dvi
+hobdvi: hobbit.dvi
+ xdvi 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);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);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);TEXINPUTS=$(srcdir):;export TEXINPUTS;pdftex $(srcdir)hobbit.texi
- mv $(dvidir)hobbit.pdf $(htmldir)
+$(htmldir)scm.pdf: version.txi scm.texi platform.txi features.txi Makefile
+ texi2pdf -b -c $(srcdir)scm.texi
+ mv scm.pdf $(htmldir)
+$(htmldir)Xlibscm.pdf: version.txi Xlibscm.texi Makefile
+ texi2pdf -b -c $(srcdir)Xlibscm.texi
+ mv Xlibscm.pdf $(htmldir)
+$(htmldir)hobbit.pdf: version.txi hobbit.texi Makefile
+ texi2pdf -b -c $(srcdir)hobbit.texi
+ mv hobbit.pdf $(htmldir)
xpdf: $(htmldir)scm.pdf
- xpdf -z 3 $(htmldir)scm.pdf
+ xpdf $(htmldir)scm.pdf
Xpdf: $(htmldir)Xlibscm.pdf
- xpdf -z 3 $(htmldir)Xlibscm.pdf
+ xpdf $(htmldir)Xlibscm.pdf
hobpdf: $(htmldir)hobbit.pdf
- xpdf -z 3 $(htmldir)hobbit.pdf
+ xpdf $(htmldir)hobbit.pdf
PREVDOCS = prevdocs/
html: $(htmldir)scm_toc.html $(htmldir)Xlibscm_toc.html $(htmldir)hobbit_toc.html
@@ -399,7 +418,7 @@ $(PREVDOCS)scm.info: srcdir.mk Makefile
################ INSTALL DEFINITIONS ################
-rpm_prefix=/usr/src/redhat/
+rpm_prefix=$(HOME)/rpmbuild/
prefix = /usr/local/
exec_prefix = $(prefix)
@@ -497,6 +516,11 @@ uninstallinfo:
scm.doc: scm.1
nroff -man $< | ul -tunknown >$@
+docs: $(infodir)scm.info.gz $(htmldir)scm_toc.html scm.doc \
+ scm.dvi Xlibscm.dvi hobbit.dvi \
+ $(htmldir)scm.pdf $(htmldir)Xlibscm.pdf $(htmldir)hobbit.pdf
+ xdvi -s 4 scm.dvi
+
#### Stuff for maintaining SCM below ####
ver = $(VERSION)
@@ -523,10 +547,11 @@ dfiles = ANNOUNCE README COPYING scm.1 scm.doc QUICKREF \
version.txi platform.txi features.txi ChangeLog
mfiles = Makefile build.scm build build.bat requires.scm \
.gdbinit mkimpcat.scm disarm.scm scm.spec
-vfiles = setjump.mar setjump.s
+sfiles = setjump.mar setjump.s ugsetjump.s continue-ia64.S \
+ get-contoffset-ia64.c
wbfiles = wbtab.scm rwb-isam.scm
afiles = $(dfiles) $(cfiles) $(hfiles) $(ifiles) $(tfiles) $(mfiles) \
- $(hobfiles) $(vfiles) $(ufiles) $(xfiles) $(turfiles) $(wbfiles)
+ $(hobfiles) $(sfiles) $(ufiles) $(xfiles) $(turfiles) $(wbfiles)
makedev = make -f $(HOME)/makefile.dev
CHPAT=$(HOME)/bin/chpat
@@ -681,7 +706,7 @@ ctagfiles = $(hfiles) $(cfiles) $(xfiles)
ctags: $(ctagfiles)
etags $(ctagfiles)
-TAGFILES = $(hfiles) $(cfiles) $(ifiles) $(vfiles)\
+TAGFILES = $(hfiles) $(cfiles) $(ifiles) $(sfiles)\
version.txi scm.texi Xlibscm.texi hobbit.texi build $(xfiles) $(mfiles)\
hobbit.scm
# # $(ufiles) ChangeLog