The following is a rough sketch of how to install nonstandard course software on a linux system. Some of the commands are specific to csh. This file has not been tested. The author is not responsible for any damage that might occur on your system based on your use of this file. That being said: If there is a checksum available for any of the files that you download, please check that checksum to be sure that the file has not been corrupted. #! /bin/csh # The following is not all executable code: if you want to try it, cut # and paste as necessary into a c-shell. exit # # bison (GNU parser generator) # wget ftp://ftp.gnu.org/gnu/bison/bison-1.35.tar.gz zcat bison-1.35.tar.gz | tar xf - cd bison-1.35 ./configure --prefix=$HOME make install cd .. rm -fr bison-1.35.tar.gz bison-1.35/ # # gperf (generate perfect hash) is not part of some linux distributions. # The following sequence of commands _may_ result in gperf being built # into $HOME/bin, with additional files in $HOME/info and # $HOME/man/man1 # ncftpget ftp://ftp.gnu.org/pub/gnu/gperf/gperf-2.7.2.tar.gz zcat gperf-2.7.2.tar.gz | tar xf - cd gperf-2.7.2 ./configure --prefix=$HOME make install cd .. rm -fr gperf-2.7.2.tar.gz gperf-2.7.2/ # # This course uses David Hanson's basic data structures for C so as to # avoid writing some unnecessary code. # The following sequence of commands _may_ result in some useful files # in $HOME/lib and $HOME/lib/include. # mkdir cii cd cii ncftpget ftp://ftp.cs.princeton.edu/pub/packages/cii/cii11.tar.gz zcat cii11.tar.gz | tar xf - setenv BUILDDIR $HOME/lib/cii/1/$HOSTTYPE mkdir -p $BUILDDIR mkdir $BUILDDIR/include cp -p include/*.h $BUILDDIR/include make CC='cc -DMAXALIGN=4' AS='cc -c -x assembler-with-cpp -traditional' pushd $BUILDDIR mv libcii.a $HOME/lib mv memchk.o $HOME/lib mv include/* $HOME/lib/include popd cd .. rm -fr cii rm -fr $BUILDDIR # # If you want to use the noweb literate programming tool, you will # need to install the Icon language. The following will change # $HOME/bin, $HOME/lib, $HOME/doc # wget http://www.cs.arizona.edu/icon/ftp/binaries/unix/linux.v941.tgz tar zxf linux.v941.tgz cd icon.v941/ mv bin/* $HOME/bin/ mv lib/* $HOME/lib/ mv man/man1/* $HOME/man/man1/ mv doc $HOME/doc/icon cd .. rm -fr icon.v941 linux.v941.tgz # # As for Noweb itself, the Makefile doesn't seem to work as # advertised. You need to comment out some code as mentioned below. # Since you are hacking the files anyway, you can set up the locations # the way you want them without having a long stream of redefines on # your "make" line. # mkdir noweb-2.10c cd noweb-2.10c ncftpget ftp://ftp.eecs.harvard.edu/pub/nr/noweb-2.10c.tgz tar zxf noweb-2.10c.tgz setenv PATH $HOME/bin:$PATH make cd src make touch make make install cd ../contrib make # make the folowing edits in src/Makefile: # LIBSRC=awk becomes LIBSRC=icon # ICONC=iconc becomes ICONC=icont # BIN=/usr/local/noweb becomes BIN=$(HOME)/bin # LIB=/usr/local/noweb/lib becomes LIB=$(HOME)/lib # MAN=/usr/local/noweb/man becomes MAN=$(HOME)/man # TEXINPUTS=/usr/local/tex/inputs becomes TEXINPUTS=$(HOME)/tex_inputs # ELISP=/dev/null becomes ELISP=$(HOME)/emacs_lisp # # comment out (with # in first column) # FAQ: FAQ.html # sleep 1; html2ascii FAQ.html > FAQ # # FAQ.html: $(HOME)/www/noweb/FAQ.html # rm -f FAQ.html # /bin/cp $(HOME)/www/noweb/FAQ.html FAQ.html # chmod -w FAQ.html # # make the folowing edits in conbtrib/Makefile: # LIB=/dev/null becomes LIB=$(HOME)/lib setenv PATH $HOME/bin:$PATH make cd src make touch make make install cd ../contrib make make install cd ../.. rm -fr noweb-2.10c # # The Cocktail compiler construction kit is a commercial product # requiring a license to run after the initial demo period. The # license is not cheap, so you will probably want to run "ast", the # only program that we use from the kit, on mercury.cs.uml.edu where # we have a license. An alternative is to try to install the last # public domain version before the product went commercial. You can # find a link to the public domain version at the bottom of the page # http://www.first.gmd.de/cocktail/ # ncftpget ftp://www.cocolab.de/products/cocktail/demo/ct-linux.tgz tar zxf ct-linux.tgz cd linux make cd .. rm -fr linux cd doc mkdir cocktail cd cocktail ncftpget ftp://www.cocolab.de/products/cocktail/doca4.ps/ast.ps.zip unzip ast.ps.zip cd ../.. rm -f ct-linux.tgz # # If you want to run the interpreters for the intermediate languages: # they are written in java. Unfortunately they don't run under the # latest version. You will need jdk1.2 or 1.3 from Sun. #