rewrite Haskell parts in Scala
[wix.git] / Makefile
index 007ac4b..a1373e3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,56 +1,68 @@
+sbp     = $(shell pwd)/sbp/
+
+lambdavm_jars  = $(ghcroot)/rts/HSrts.jar
+lambdavm_jars += $(ghcroot)/libraries/base/HSbase.jar
+lambdavm_jars += $(ghcroot)/libraries/stm/HSstm.jar
+
 ghcroot = /usr/local/brian/ghc
 pwd     = $(shell pwd)
-ghc     = $(ghcroot)/compiler/ghc-inplace -fallow-undecidable-instances -fallow-overlapping-instances
+ghc     = $(ghcroot)/compiler/ghc-inplace -fallow-undecidable-instances -fallow-overlapping-instances -java
+#ghc     = ghc -fallow-undecidable-instances -fallow-overlapping-instances -package javavm
 ghc    += -fglasgow-exts -cpp -hidir $(pwd)/build/hi -i$(pwd)/build/hi -odir $(pwd)/build/class/ 
 ghclibs = $(ghcroot)/rts/HSrts.jar:$(ghcroot)/libraries/base/HSbase.jar:$(ghcroot)/libraries/stm/HSstm.jar
 
-java =  java -Xmx800m
-java += $(profile) -cp $(ghclibs):lib/edu.berkeley.sbp.jar:build/class
+jvmargs = -Xmx800m -XX:ThreadStackSize=160000
+
+java =  java $(jvmargs) $(profile) -cp src:$(ghclibs):$(sbp)/edu.berkeley.sbp.jar:build/class
 
-run: build/class/Main.class build/class/Tib.class
-       $(java) HaskellHelper xt html
+scala = JAVA_OPTS="$(jvmargs)" scala
 
-install: build/class/Main.class build/class/Tib.class
-       $(java) HaskellHelper xt/ ~/www/
+wix   = $(java) HaskellHelper
 
-install2: build/class/Main.class build/class/Tib.class
-#      $(java) HaskellHelper xt/slipway/ ~/www/slipway/
-#      $(java) HaskellHelper xt/research/ ~/www/research/
-#      $(java) HaskellHelper xt/research.cs.berkeley.edu/ ~/www/research.cs.berkeley.edu/
-#      $(java) HaskellHelper xt/random/ ~/www/random/
-#      $(java) HaskellHelper xt/otherpeople/ ~/www/otherpeople/
-#      $(java) HaskellHelper xt/sbp ~/www/sbp
-       $(java) HaskellHelper xt/software/wix ~/www/software/wix
-#      $(java) HaskellHelper xt/thoughts ~/www/thoughts
-#      $(java) HaskellHelper xt2 ~/
+install: wix.jar
+       aklog research.cs.berkeley.edu || true
+       $(scala) -cp wix.jar:lib/edu.berkeley.sbp.jar Main ~/docs/wix/src/ ~/docs/wix/dest/
+
+# --delete disabled until I can keep it from clobbering GArrow.v
+       rsync -arL --rsync-path=/usr/sww/bin/rsync \
+               --progress --verbose \
+               ~/docs/wix/dest/cs.berkeley.edu/ \
+               login.eecs.berkeley.edu:public_html/
 
 docs:
-       $(java) HaskellHelper xt2/docs/ ~/docs/
+       $(wix) xt2/docs/ ~/docs/
+
+$(sbp):
+       darcs get --partial --repo-name=$@ http://research.cs.berkeley.edu/project/sbp/edu.berkeley.sbp 
 
-debug: build/class/Main.class build/class/Tib.class
-       $(java) -Dsbp.verbose=true HaskellHelper xt html
+$(sbp)/edu.berkeley.sbp.jar: $(sbp)
+       cd $(sbp); make edu.berkeley.sbp.jar
 
-wix.jar: build/class/Main.class build/class/Tib.class
-       rm -rf tmp
-       mkdir tmp
-       cd build/class; for A in $(ghcroot)/rts/HSrts.jar $(ghcroot)/libraries/base/HSbase.jar $(ghcroot)/libraries/stm/HSstm.jar ../../lib/edu.berkeley.sbp.jar; \
-         do jar xvf $$A; done
-       echo 'Main-Class: HaskellHelper' > build/manifest
-       cd build/class; jar cvmf ../manifest ../../wix.jar .
+wix.jar: $(shell find src -name \*.java -or -name \*.scala)
+       rm -rf build
+       mkdir build
+       javac -cp lib/edu.berkeley.sbp.jar -d build `find src -name \*.java`
+       scalac -deprecation -cp lib/edu.berkeley.sbp.jar -sourcepath src -d build `find src -name \*.scala`
+       echo 'Main-Class: Main' > build/manifest
+       cp src/*.g build/
+       cd build; jar cvmf manifest ../wix.jar .
 
-build/class/Tib.class: $(shell find src -name \*.java)
+build/class/Tib.class: $(shell find src -name \*.java) lib/edu.berkeley.sbp.jar
        javac -d build/class -cp lib/edu.berkeley.sbp.jar $(shell find src -name \*.java)
 
-build/class/Main.class: $(shell find src -name \*.lhs)
+build/class/Main.class: $(shell find src -name \*.lhs) lib/edu.berkeley.sbp.jar
        mkdir -p build/class/Text/PrettyPrint
+       mkdir -p build/class/edu/berkeley/sbp/haskell/
        mkdir -p build/hi
-       cd src; $(ghc) -c -java Util.lhs
-       cd src; $(ghc) -c -java Text/PrettyPrint/Leijen.hs
-       cd src; $(ghc) -c -java SBP.lhs
-       cd src; $(ghc) -c -java FromTree.lhs
-       cd src; $(ghc) -c -java Doc.lhs
-       cd src; $(ghc) -c -java Html.lhs
-       cd src; $(ghc) -c -java Wix.lhs
-       cd src; $(ghc) -c -java Main.lhs
+       cd src; $(ghc) -c Util.lhs
+       cd src; $(ghc) -c Text/PrettyPrint/Leijen.hs
+       cd src; $(ghc) -c $(sbp)/src/edu/berkeley/sbp/haskell/SBP.lhs
+       cd src; $(ghc) -c FromTree.lhs
+       cd src; $(ghc) -c Doc.lhs
+       cd src; $(ghc) -c Html.lhs
+       cd src; $(ghc) -c Wix.lhs
+       cd src; $(ghc) -c Main.lhs
+
+echojava:; echo $(java)
 
 clean:; rm -rf build
\ No newline at end of file