# ===== # Cross-platform build scripts for FASL files (dbindel, Sep 2005) # ===== # # These scripts manage Lisp software builds for several targets: # # intel-6.2 -- Linux/FreeBSD, ACL 6.2 (modern) # intel-7.0 -- Linux/FreeBSD, ACL 7.0 (modern) # sunos-6.2 -- SunOS, ACL 6.2 (modern) # osx-7.0 -- OS X, ACL 7.0 (modern) # osx-mcl-0.14 -- OS X, OpenMCL 0.14 (ANSI) # clisp-2.33 -- Generic, CLISP 2.33.2 (ANSI) # clisp-2.35 -- Generic, CLISP 2.35 (ANSI) # # There is also a Windows target, which is built manually: # # windows-7.0 -- Windows, ACL 7.0 (modern) # # I assume the primary source files are kept in the CS 164 software/source # subdirectory on the instructional machines (e.g. cory). As currently # set up, the scripts are meant to be run from my OS X laptop (tensor). # However, on each platform supported, running "make hostname" should build # the software for that platform. dummy: echo "Specify which machine" # --- # Targets for cross-platform build/copy. Should be run from tensor. # --- all: sync-lisp build-all sync-fasl build-all: echo "-- Running builds -- " ssh cs164 "(cd software/build; make cory; make cory-windows)" ssh camaro "(cd class/build; make camaro)" (make tensor) sync-make: echo "-- Syncing Makefile from cory --" (echo 'cd software/build' ; \ echo 'get Makefile') | sftp cs164 (echo 'cd class/build' ; \ echo 'put Makefile') | sftp camaro sync-lisp: echo "-- Syncing build sources from cory --" (echo 'cd software/build' ; \ echo 'mget *.cl' ; \ echo 'mget *.lisp') | sftp cs164 (echo 'cd class/build' ; \ echo 'mput *.cl' ; \ echo 'mput *.lisp') | sftp camaro sync-fasl: echo "-- Syncing up FASL files --" (echo 'lcd intel-6.2' ; \ echo 'cd class/build/intel-6.2' ; \ echo 'mget *.fasl' ; \ echo 'lcd ../intel-7.0' ; \ echo 'cd ../intel-7.0' ; \ echo 'mget *.fasl' ; \ echo 'lcd ../clisp-2.33' ; \ echo 'cd ../clisp-2.33' ; \ echo 'mget *.fas' ; \ echo 'lcd ../clisp-2.35' ; \ echo 'cd ../clisp-2.35' ; \ echo 'mget *.fas' ) | sftp camaro (echo 'lcd intel-6.2' ; \ echo 'cd software/build/intel-6.2' ; \ echo 'mput *.fasl' ; \ echo 'lcd ../intel-7.0' ; \ echo 'cd ../intel-7.0' ; \ echo 'mput *.fasl' ; \ echo 'lcd ../osx-7.0' ; \ echo 'cd ../osx-7.0' ; \ echo 'mput *.fasl' ; \ echo 'lcd ../osx-mcl-0.14' ; \ echo 'cd ../osx-mcl-0.14' ; \ echo 'mput *.dfsl' ; \ echo 'lcd ../clisp-2.33' ; \ echo 'cd ../clisp-2.33' ; \ echo 'mput *.fas' ; \ echo 'lcd ../clisp-2.35' ; \ echo 'cd ../clisp-2.35' ; \ echo 'mput *.fas' ; \ echo 'lcd ../sunos-6.2' ; \ echo 'cd ../sunos-6.2' ; \ echo 'mget *.fasl' ; \ echo 'lcd ../windows-7.0' ; \ echo 'cd ../windows-7.0' ; \ echo 'mget *.fasl') | sftp cs164 clean-fasl: ssh cs164 "(cd software/build; make clean-fasl-local)" ssh camaro "(cd class/build; make clean-fasl-local)" (make clean-fasl-local) clean-fasl-local: rm -f clisp-2.33/*.fas rm -f clisp-2.35/*.fas rm -f intel-6.2/*.fasl rm -f intel-7.0/*.fasl rm -f osx-7.0/*.fasl rm -f osx-mcl-0.14/*.fasl rm -f sunos-6.2/*.fasl # --- # Build fasl files on different platforms # --- MJ_FASL=util.fasl make-ll1.fasl simple-lex.fasl \ simple-parse.fasl simple-interp.fasl \ simple-machine.fasl simple-compile.fasl MJ_FAS=${MJ_FASL:.fasl=.fas} MJ_DFSL=${MJ_FASL:.fasl=.dfsl} camaro: camaro-acl-62 camaro-acl-70 camaro-clisp-233 camaro-clisp-235 camaro-acl-62: echo "-- Building Intel 6.2 binaries --" echo '(load "build.lisp")' | /usr/sww/lang/acl/mlisp cat $(MJ_FASL) > mj.fasl mv *.fasl intel-6.2 camaro-acl-70: echo "-- Building Intel 7.0 binaries --" echo '(load "build.lisp")' | /tmp/acl/mlisp cat $(MJ_FASL) > mj.fasl mv *.fasl intel-7.0 camaro-clisp-233: echo "-- Building CLISP 2.33.2 binaries --" ( echo '(load (compile-file "base-util.lisp"))' ; \ echo '(load "build.lisp")' ) | clisp-233 cat base-util.fas $(MJ_FAS) > mj.fas mv *.fas clisp-2.33 camaro-clisp-235: echo "-- Building CLISP 2.35 binaries --" ( echo '(load (compile-file "base-util.lisp"))' ; \ echo '(load "build.lisp")' ) | clisp cat base-util.fas $(MJ_FAS) > mj.fas mv *.fas clisp-2.35 cory: cory-sunos cory-windows cory-sunos: echo "-- Building SunOS ACL 6.2 binaries --" echo '(load "build.lisp")' | mlisp cat $(MJ_FASL) > mj.fasl mv *.fasl sunos-6.2 cory-windows: echo "-- Concatenating Windows stuff on Cory --" (cd windows-7.0; cat $(MJ_FASL) > mj.fasl) tensor: tensor-acl tensor-mcl tensor-acl: echo "-- Building Mac OS X ACL 7.0 binaries --" echo '(load "build.lisp")' | /Users/dbindel/bin/acl70_trial/mlisp cat $(MJ_FASL) > mj.fasl mv *.fasl osx-7.0 tensor-mcl: echo "-- Building Mac OS X OpenMCL binaries --" ( echo '(load (compile-file "base-util.lisp"))' ; \ echo '(load "build.lisp")' ) | openmcl cat base-util.dfsl $(MJ_DFSL) > mj.dfsl mv *.dfsl osx-mcl-0.14