| 1 | # Makefile for Scheme Library |
| 2 | # Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998 Aubrey Jaffer. |
| 3 | |
| 4 | SHELL = /bin/sh |
| 5 | intro: |
| 6 | @echo |
| 7 | @echo "Welcome to SLIB. Read \"README\" and \"slib.info\" (or" |
| 8 | @echo "\"slib.texi\") to learn how to install and use SLIB." |
| 9 | @echo |
| 10 | @echo |
| 11 | -make slib.info |
| 12 | |
| 13 | srcdir=$(HOME)/slib/ |
| 14 | PREVDOCS = slib/ |
| 15 | dvidir=../dvi/ |
| 16 | dvi: $(dvidir)slib.dvi |
| 17 | $(dvidir)slib.dvi: version.txi slib.texi $(dvidir)slib.fn schmooz.texi |
| 18 | # cd $(dvidir);export TEXINPUTS=$(srcdir):;texi2dvi $(srcdir)slib.texi |
| 19 | -(cd $(dvidir);export TEXINPUTS=$(srcdir):;texindex slib.??) |
| 20 | cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)slib.texi |
| 21 | $(dvidir)slib.fn: |
| 22 | cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)slib.texi \ |
| 23 | $(srcdir)schmooz.texi |
| 24 | xdvi: $(dvidir)slib.dvi |
| 25 | xdvi -s 6 $(dvidir)slib.dvi |
| 26 | htmldir=../public_html/ |
| 27 | slib_toc.html: version.txi slib.texi htmlform.txi schmooz.texi |
| 28 | texi2html -split -verbose slib.texi |
| 29 | |
| 30 | $(PREVDOCS)slib_toc.html: |
| 31 | cd slib;make slib_toc.html |
| 32 | cd slib;texi2html -split -verbose slib.texi |
| 33 | |
| 34 | html: $(htmldir)slib_toc.html |
| 35 | $(htmldir)slib_toc.html: slib slib_toc.html Makefile |
| 36 | hitch $(PREVDOCS)slib_\*.html slib_\*.html $(htmldir) |
| 37 | |
| 38 | rpm_prefix=/usr/src/redhat/ |
| 39 | |
| 40 | prefix = /usr/local |
| 41 | exec_prefix = $(prefix) |
| 42 | bindir = $(exec_prefix)/bin |
| 43 | libdir = $(exec_prefix)/lib |
| 44 | infodir = $(exec_prefix)/info |
| 45 | RUNNABLE = scheme48 |
| 46 | LIB = $(libdir)/$(RUNNABLE) |
| 47 | VM = scheme48vm |
| 48 | IMAGE = slib.image |
| 49 | INSTALL_DATA = install -c |
| 50 | |
| 51 | slib48.036: |
| 52 | (echo ,load `pwd`/scheme48.init; \ |
| 53 | echo "(define *args* '())"; \ |
| 54 | echo "(define (program-arguments) (cons \"$(VM)\" *args*))"; \ |
| 55 | echo ,dump $(LIB)/$(IMAGE); \ |
| 56 | echo ,exit) | scheme48 |
| 57 | (echo '#!/bin/sh'; \ |
| 58 | echo exec '$(LIB)/$(VM)' -i '$(LIB)/$(IMAGE)' \"\$$\@\") \ |
| 59 | > $(bindir)/slib48 |
| 60 | chmod +x $(bindir)/slib48 |
| 61 | |
| 62 | $(LIB)/slibcat: |
| 63 | touch $(LIB)/slibcat |
| 64 | |
| 65 | slib48: $(LIB)/slibcat Makefile |
| 66 | (echo ",batch on"; \ |
| 67 | echo ",config"; \ |
| 68 | echo ",load =scheme48/misc/packages.scm"; \ |
| 69 | echo "(define-structure slib-primitives"; \ |
| 70 | echo " (export s48-error"; \ |
| 71 | echo " s48-ascii->char"; \ |
| 72 | echo " s48-force-output"; \ |
| 73 | echo " s48-current-error-port"; \ |
| 74 | echo " s48-system";\ |
| 75 | echo " s48-with-handler";\ |
| 76 | echo " s48-getenv)";\ |
| 77 | echo " (open scheme signals ascii extended-ports i/o"; \ |
| 78 | echo " primitives handle unix-getenv)"; \ |
| 79 | echo " (begin"; \ |
| 80 | echo " (define s48-error error)"; \ |
| 81 | echo " (define s48-ascii->char ascii->char)"; \ |
| 82 | echo " (define s48-force-output force-output)"; \ |
| 83 | echo " (define s48-current-error-port current-error-port)"; \ |
| 84 | echo " (define (s48-system c) (vm-extension 96 c))"; \ |
| 85 | echo " (define s48-with-handler with-handler)"; \ |
| 86 | echo " (define s48-getenv getenv)))"; \ |
| 87 | echo ",user"; \ |
| 88 | echo ",open slib-primitives"; \ |
| 89 | echo "(define (implementation-vicinity) \"$(LIB)/\")"; \ |
| 90 | echo "(define (library-vicinity) \"`pwd`/\")"; \ |
| 91 | echo ",load scheme48.init"; \ |
| 92 | echo "(define *args* '())"; \ |
| 93 | echo "(define (program-arguments) (cons \"scheme48\" *args*))"; \ |
| 94 | echo "(set! *catalog* #f)"; \ |
| 95 | echo ",collect"; \ |
| 96 | echo ",batch off"; \ |
| 97 | echo ",dump $(IMAGE) \"(slib $(VERSION))\""; \ |
| 98 | echo ",exit") | scheme48 |
| 99 | |
| 100 | install48: slib48 |
| 101 | $(INSTALL_DATA) $(IMAGE) $(LIB) |
| 102 | (echo '#!/bin/sh'; \ |
| 103 | echo exec $(RUNNABLE) -i '$(LIB)/$(IMAGE)' \"\$$\@\") \ |
| 104 | > $(bindir)/slib48 |
| 105 | chmod +x $(bindir)/slib48 |
| 106 | |
| 107 | #### Stuff for maintaining SLIB below #### |
| 108 | |
| 109 | VERSION = 2d1 |
| 110 | ver = $(VERSION) |
| 111 | version.txi: Makefile |
| 112 | echo @set SLIBVERSION $(VERSION) > version.txi |
| 113 | echo @set SLIBDATE `date +"%B %Y"` >> version.txi |
| 114 | |
| 115 | scheme = scm |
| 116 | |
| 117 | htmlform.txi: *.scm |
| 118 | $(scheme) -rschmooz -e'(schmooz "slib.texi")' |
| 119 | slib.info: version.txi slib.texi htmlform.txi objdoc.txi schmooz.texi |
| 120 | makeinfo slib.texi --no-split -o slib.info |
| 121 | mv slib.info slib$(VERSION).info |
| 122 | if [ -f $(PREVDOCS)slib.info ]; \ |
| 123 | then infobar $(PREVDOCS)slib.info slib$(VERSION).info slib.info; \ |
| 124 | else cp slib$(VERSION).info slib.info;fi |
| 125 | info: installinfo |
| 126 | installinfo: $(infodir)/slib.info |
| 127 | $(infodir)/slib.info: slib.info |
| 128 | cp -a slib.info $(infodir)/slib.info |
| 129 | -install-info $(infodir)/slib.info $(infodir)/dir |
| 130 | -rm $(infodir)/slib.info.gz |
| 131 | infoz: installinfoz |
| 132 | installinfoz: $(infodir)/slib.info.gz |
| 133 | $(infodir)/slib.info.gz: $(infodir)/slib.info |
| 134 | gzip -f $(infodir)/slib.info |
| 135 | |
| 136 | ffiles = printf.scm format.scm genwrite.scm obj2str.scm pp.scm \ |
| 137 | ppfile.scm strcase.scm debug.scm trace.scm lineio.scm \ |
| 138 | strport.scm scanf.scm chap.scm qp.scm break.scm stdio.scm \ |
| 139 | strsrch.scm prec.scm schmooz.scm |
| 140 | lfiles = sort.scm comlist.scm tree.scm logical.scm random.scm tsort.scm \ |
| 141 | coerce.scm |
| 142 | revfiles = sc4opt.scm sc4sc3.scm sc2.scm mularg.scm mulapply.scm \ |
| 143 | trnscrpt.scm withfile.scm dynwind.scm promise.scm values.scm \ |
| 144 | eval.scm |
| 145 | afiles = ratize.scm randinex.scm modular.scm factor.scm \ |
| 146 | charplot.scm root.scm minimize.scm cring.scm determ.scm \ |
| 147 | selfset.scm psxtime.scm cltime.scm timezone.scm tzfile.scm |
| 148 | bfiles = collect.scm fluidlet.scm struct.scm object.scm recobj.scm yasyn.scm |
| 149 | scfiles = r4rsyn.scm scmacro.scm synclo.scm synrul.scm synchk.scm \ |
| 150 | repl.scm macwork.scm mwexpand.scm mwdenote.scm mwsynrul.scm |
| 151 | scafiles = scainit.scm scaglob.scm scamacr.scm scaoutp.scm scaexpp.scm \ |
| 152 | structure.scm |
| 153 | dfiles = defmacex.scm mbe.scm |
| 154 | efiles = record.scm dynamic.scm queue.scm process.scm \ |
| 155 | priorque.scm hash.scm hashtab.scm alist.scm \ |
| 156 | wttree.scm wttest.scm array.scm arraymap.scm \ |
| 157 | sierpinski.scm soundex.scm byte.scm nclients.scm pnm.scm \ |
| 158 | simetrix.scm |
| 159 | rfiles = rdms.scm alistab.scm dbutil.scm paramlst.scm report.scm \ |
| 160 | batch.scm makcrc.scm dbrowse.scm comparse.scm getopt.scm \ |
| 161 | htmlform.scm db2html.scm http-cgi.scm getparam.scm glob.scm \ |
| 162 | fft.scm uri.scm |
| 163 | gfiles = tek40.scm tek41.scm |
| 164 | docfiles = ANNOUNCE README FAQ slib.info slib.texi schmooz.texi ChangeLog \ |
| 165 | coerce.txi lineio.txi nclients.txi factor.txi minimize.txi \ |
| 166 | obj2str.txi randinex.txi random.txi uri.txi db2html.txi \ |
| 167 | htmlform.txi http-cgi.txi version.txi fmtdoc.txi objdoc.txi |
| 168 | mfiles = Makefile require.scm Template.scm syncase.sh mklibcat.scm \ |
| 169 | Bev2slib.scm slib.spec |
| 170 | ifiles = bigloo.init chez.init elk.init macscheme.init \ |
| 171 | mitscheme.init scheme2c.init scheme48.init gambit.init t3.init \ |
| 172 | vscm.init mitcomp.pat scm.init scsh.init pscheme.init STk.init \ |
| 173 | RScheme.init DrScheme.init umbscheme.init |
| 174 | tfiles = plottest.scm formatst.scm macrotst.scm scmactst.scm \ |
| 175 | dwindtst.scm structst.scm |
| 176 | sfiles = $(ffiles) $(lfiles) $(revfiles) $(afiles) $(scfiles) $(efiles) \ |
| 177 | $(rfiles) $(gfiles) $(scafiles) $(dfiles) |
| 178 | allfiles = $(docfiles) $(mfiles) $(ifiles) $(sfiles) $(tfiles) $(bfiles) |
| 179 | |
| 180 | makedev = make -f $(HOME)/makefile.dev |
| 181 | CHPAT=$(HOME)/bin/chpat |
| 182 | RSYNC=rsync -avessh |
| 183 | dest = $(HOME)/dist/ |
| 184 | temp/slib: $(allfiles) |
| 185 | -rm -rf temp |
| 186 | mkdir temp |
| 187 | mkdir temp/slib |
| 188 | ln $(allfiles) temp/slib |
| 189 | |
| 190 | infotemp/slib: slib.info |
| 191 | -rm -rf infotemp |
| 192 | mkdir infotemp |
| 193 | mkdir infotemp/slib |
| 194 | ln slib.info slib.info-* infotemp/slib |
| 195 | #For change-barred HTML. |
| 196 | slib: |
| 197 | unzip -a $(dest)slib[0-9]*.zip |
| 198 | |
| 199 | distinfo: $(dest)slib.info.zip |
| 200 | $(dest)slib.info.zip: infotemp/slib |
| 201 | $(makedev) TEMP=infotemp/ DEST=$(dest) PROD=slib ver=.info zip |
| 202 | rm -rf infotemp |
| 203 | |
| 204 | release: dist rpm |
| 205 | cvs tag -F slib$(VERSION) |
| 206 | cp ANNOUNCE $(htmldir)SLIB_ANNOUNCE.txt |
| 207 | $(RSYNC) $(htmldir)SLIB.html $(htmldir)SLIB_ANNOUNCE.txt nestle.ai.mit.edu:public_html/ |
| 208 | $(RSYNC) $(dest)README $(dest)slib$(VERSION).zip \ |
| 209 | $(dest)slib-$(VERSION)-1.noarch.rpm nestle.ai.mit.edu:dist/ |
| 210 | # upload $(dest)README $(dest)slib$(VERSION).zip ftp.gnu.org:gnu/jacal/ |
| 211 | # $(MAKE) indiana |
| 212 | indiana: |
| 213 | upload $(dest)slib$(VERSION).zip ftp@ftp.cs.indiana.edu:/pub/scheme-repository/incoming |
| 214 | echo -e \ |
| 215 | 'I have uploaded slib$(VERSION).zip to ftp.cs.indiana.edu:/pub/scheme-repository/incoming\n' \ |
| 216 | 'for placement into ftp.cs.indiana.edu:/pub/scheme-repository/code/lib/' \ |
| 217 | | mail -s 'SLIB upload' -b jaffer scheme-repository-request@cs.indiana.edu |
| 218 | |
| 219 | postnews: |
| 220 | echo -e "Newsgroups: comp.lang.scheme\n" | cat - ANNOUNCE | \ |
| 221 | inews -h -O -S \ |
| 222 | -f "announce@docupress.com (Aubrey Jaffer & Radey Shouman)" \ |
| 223 | -t "SLIB$(VERSION) Released" -d world |
| 224 | |
| 225 | upzip: $(HOME)/pub/slib.zip |
| 226 | $(RSYNC) $(HOME)/pub/slib.zip nestle.ai.mit.edu:pub/ |
| 227 | |
| 228 | dist: $(dest)slib$(VERSION).zip |
| 229 | $(dest)slib$(VERSION).zip: temp/slib |
| 230 | $(makedev) DEST=$(dest) PROD=slib ver=$(VERSION) zip |
| 231 | |
| 232 | rpm: $(dest)slib-$(VERSION)-1.noarch.rpm |
| 233 | $(dest)slib-$(VERSION)-1.noarch.rpm: $(dest)slib$(VERSION).zip |
| 234 | cp $(dest)slib$(VERSION).zip $(rpm_prefix)SOURCES |
| 235 | rpm -bb --clean slib.spec |
| 236 | rm $(rpm_prefix)SOURCES/slib$(VERSION).zip |
| 237 | mv $(rpm_prefix)RPMS/noarch/slib-$(VERSION)-1.noarch.rpm $(dest) |
| 238 | |
| 239 | shar: slib.shar |
| 240 | slib.shar: temp/slib |
| 241 | $(makedev) PROD=slib shar |
| 242 | dclshar: slib.com |
| 243 | com: slib.com |
| 244 | slib.com: temp/slib |
| 245 | $(makedev) PROD=slib com |
| 246 | zip: slib.zip |
| 247 | slib.zip: temp/slib |
| 248 | $(makedev) PROD=slib zip |
| 249 | doszip: /c/scm/dist/slib$(VERSION).zip |
| 250 | /c/scm/dist/slib$(VERSION).zip: temp/slib |
| 251 | $(makedev) DEST=/c/scm/dist/ PROD=slib ver=$(VERSION) zip |
| 252 | zip -d /c/scm/dist/slib$(VERSION).zip slib/slib.info |
| 253 | pubzip: temp/slib |
| 254 | $(makedev) DEST=$(HOME)/pub/ PROD=slib zip |
| 255 | |
| 256 | diffs: pubdiffs |
| 257 | pubdiffs: temp/slib |
| 258 | $(makedev) DEST=$(HOME)/pub/ PROD=slib pubdiffs |
| 259 | distdiffs: temp/slib |
| 260 | $(makedev) DEST=$(dest) PROD=slib ver=$(ver) distdiffs |
| 261 | announcediffs: temp/slib |
| 262 | $(makedev) DEST=$(dest) PROD=slib ver=$(VERSION) announcediffs |
| 263 | |
| 264 | psdfiles=COPYING.psd README.psd cmuscheme.el comint.el instrum.scm pexpr.scm \ |
| 265 | primitives.scm psd-slib.scm psd.el read.scm runtime.scm version.scm |
| 266 | psdocfiles=article.bbl article.tex manual.bbl manual.tex quick-intro.tex |
| 267 | |
| 268 | psdtemp/slib: |
| 269 | -rm -rf psdtemp |
| 270 | mkdir psdtemp |
| 271 | mkdir psdtemp/slib |
| 272 | mkdir psdtemp/slib/psd |
| 273 | cd psd; ln $(psdfiles) ../psdtemp/slib/psd |
| 274 | mkdir psdtemp/slib/psd/doc |
| 275 | cd psd/doc; ln $(psdocfiles) ../../psdtemp/slib/psd/doc |
| 276 | |
| 277 | psdist: $(dest)slib-psd.tar.gz |
| 278 | $(dest)slib-psd.tar.gz: psdtemp/slib |
| 279 | $(makedev) DEST=$(dest) PROD=slib ver=-psd tar.gz TEMP=psdtemp/ |
| 280 | |
| 281 | new: |
| 282 | echo `date` \ Aubrey Jaffer \ \<`whoami`@`hostname`\>> change |
| 283 | echo>> change |
| 284 | echo \ \* require.scm \(*SLIB-VERSION*\): Bumped from $(VERSION) to $(ver).>>change |
| 285 | echo>> change |
| 286 | cat ChangeLog >> change |
| 287 | mv -f change ChangeLog |
| 288 | $(CHPAT) slib$(VERSION) slib$(ver) ANNOUNCE FAQ ../scm/ANNOUNCE \ |
| 289 | ../jacal/ANNOUNCE ../wb/README ../wb/ANNOUNCE \ |
| 290 | ../synch/ANNOUNCE \ |
| 291 | $(htmldir)README.html ../dist/README \ |
| 292 | $(htmldir)JACAL.html \ |
| 293 | $(htmldir)SCM.html $(htmldir)Hobbit.html \ |
| 294 | $(htmldir)SIMSYNCH.html ../scm/scm.texi \ |
| 295 | /c/scm/dist/install.bat /c/scm/dist/makefile \ |
| 296 | /c/scm/dist/mkdisk.bat |
| 297 | $(CHPAT) slib-$(VERSION) slib-$(ver) ANNOUNCE FAQ ../scm/ANNOUNCE \ |
| 298 | ../jacal/ANNOUNCE ../wb/README ../wb/ANNOUNCE \ |
| 299 | ../synch/ANNOUNCE \ |
| 300 | $(htmldir)README.html ../dist/README \ |
| 301 | $(htmldir)JACAL.html \ |
| 302 | $(htmldir)SCM.html $(htmldir)Hobbit.html \ |
| 303 | $(htmldir)SIMSYNCH.html ../scm/scm.texi \ |
| 304 | /c/scm/dist/install.bat /c/scm/dist/makefile \ |
| 305 | /c/scm/dist/mkdisk.bat |
| 306 | $(CHPAT) $(VERSION) $(ver) README slib.texi require.scm Makefile \ |
| 307 | $(htmldir)SLIB.html slib.spec |
| 308 | cvs commit -m '(*SLIB-VERSION*): Bumped from $(VERSION) to $(ver).' |
| 309 | cvs tag -F slib$(ver) |
| 310 | |
| 311 | tagfiles = version.txi slib.texi $(mfiles) $(sfiles) $(bfiles) $(tfiles) \ |
| 312 | $(ifiles) |
| 313 | # README and $(ifiles) cause semgentation faults in ETAGS for Emacs version 19. |
| 314 | tags: $(tagfiles) |
| 315 | etags $(tagfiles) |
| 316 | test: $(sfiles) |
| 317 | scheme Template.scm $(sfiles) |
| 318 | rights: |
| 319 | scm -ladmin -e"(admin:check-all)" $(sfiles) $(tfiles) \ |
| 320 | $(bfiles) $(ifiles) |
| 321 | report: |
| 322 | scmlit -e"(slib:report #t)" |
| 323 | scm -e"(slib:report #t)" |
| 324 | clean: |
| 325 | -rm -f *~ *.bak *.orig *.rej core a.out *.o \#* |
| 326 | -rm -rf *temp |
| 327 | distclean: realclean |
| 328 | realclean: |
| 329 | -rm -f *~ *.bak *.orig *.rej TAGS core a.out *.o \#* |
| 330 | -rm -f slib.info* slib.?? slib.??? |
| 331 | -rm -rf *temp |
| 332 | realempty: temp/slib |
| 333 | -rm -f $(allfiles) |