java = java -Xmx900m default: edu.berkeley.sbp.jar tibdoc: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.tib.TibDoc \ tests/tibdoc.g \ tests/bitstream.tib java15: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.Java15 \ tests/java15.g \ tests/java15.test demo: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.Demo \ tests/demo.g \ '(11+2*3)-44' demo2: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.Demo2 regress: make boot rm edu.berkeley.sbp.jar make test profile: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ -profile -agentlib:yjpagent \ tests/meta.g \ tests/testcase.g \ tests/regression.tc test: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ tests/meta.g \ tests/testcase.g \ tests/regression.tc archscript: edu.berkeley.sbp.jar cd tests; \ $(java) -cp ArchSimA3.jar:../$< ArchScript \ test.archscript codebag: edu.berkeley.sbp.jar cd tests; \ $(java) -cp ArchSimA3.jar:../$< CodeBagParser \ test.fleet javatest: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ tests/meta.g \ tests/testcase.g \ tests/java.tc loop: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ -graph \ tests/meta.g \ tests/testcase.g \ tests/loop.tc pain: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ -graph \ tests/meta.g \ tests/testcase.g \ tests/pain.tc ifthen: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.RegressionTests \ tests/meta.g \ tests/testcase.g \ tests/ifthen.tc boot: edu.berkeley.sbp.jar cd src; \ $(java) -cp ../$< \ edu.berkeley.sbp.meta.MetaGrammar \ ../tests/meta.g \ edu.berkeley.sbp.meta.MetaGrammar edu.berkeley.sbp.jar: $(shell find src -name \*.java) mkdir -p bin javac -cp javax.servlet.jar -d bin -sourcepath src $^ echo 'Main-Class: edu.berkeley.sbp.misc.CommandLine' > bin/manifest cd bin; jar cmf manifest ../$@ . #-Xlint:unchecked javadoc: rm -rf doc/api mkdir -p doc/api javadoc \ -linksource \ -windowtitle "SBP: the Scannerless Boolean Parser" \ -sourcepath src \ -header "SBP
v1.0" \ -public \ -notree \ -noindex \ -nonavbar \ -stylesheetfile doc/javadoc.css \ -noqualifier all \ -d doc/api \ edu.berkeley.sbp javadoc \ -linksource \ -windowtitle "SBP: the Scannerless Boolean Parser" \ -sourcepath src \ -header "SBP
v1.0" \ -public \ -notree \ -noindex \ -nonavbar \ -noqualifier all \ -d doc/api \ edu.berkeley.sbp.meta \ edu.berkeley.sbp.bind \ edu.berkeley.sbp.chr \ edu.berkeley.sbp.misc \ edu.berkeley.sbp.tib \ edu.berkeley.sbp.util clean: rm -rf doc/api edu.berkeley.sbp.jar bin edu.berkeley.sbp.tar.gz rm -rf Makefile.bak *.hi *.o *.class *.jar Header_*.hs Class_*.hs *_JVM.hs InterfaceMyClass upload: make clean make javadoc darcs dist echo '' > index.html rsync -are ssh --progress --verbose --delete ./ argus.cs.berkeley.edu:public_html/sbp/ ################################################################### ## Experimental Haskell bindings ## ## make runHaskellDemo JAVA_HOME= ## include Makefile.haskell .jvm-bridge: mkdir -p $(prefix)/src cd $(prefix)/src; \ curl $(jvm-bridge-url) | tar -xvzf - cd $(prefix)/src/haskell-jvm-bridge-*; \ patch -p0 < $(shell pwd)/misc/broken-cygwin-detection-patch && \ $(patchmac) \ $(patchghc) \ (cd Native; autoreconf; true) && \ (cd Haskell; autoreconf; true) cd $(prefix)/src/haskell-jvm-bridge-*/Native; \ ./configure --prefix=$(prefix) $(with_jvmdir) && \ make && \ make install cd $(prefix)/src/haskell-jvm-bridge-*/Haskell; \ ./configure --prefix=$(prefix) $(with_jvmdir) && \ make && \ make install touch $@ runHaskellDemo: .jvm-bridge mkdir -p bin make bin/HaskellDemo bin/HaskellDemo bin/Header_%.o: edu.berkeley.sbp.jar .jvm-bridge cd bin; $(bin)/MakeHeaderModule -module Header_$* -jar ../edu.berkeley.sbp.jar cd bin; $(ghc) -c Header_$*.hs $(link) bin/Class_%.o: make bin/Header_$*.o cd bin; $(bin)/MakeClassModule -import Header_Java -import Header_$* -cp ../edu.berkeley.sbp.jar `echo $* | sed s/_/./g` cd bin; $(ghc) -c Class_$*.hs $(link) bin/JVM_%.o: make bin/Class_$*.o make bin/Header_$*.o cd bin; echo -e $($*_list) | $(bin)/MakeJVMModule JVM_$* cd bin; $(ghc) -c JVM_$*.hs $(link) edu_berkeley_sbp_misc_HaskellHelper_list = "edu.berkeley.sbp.misc.HaskellHelper\njava.lang.String\nedu.berkeley.sbp.Tree\njava.lang.Object" bin/HaskellDemo: src/SBP.hs \ src/HaskellDemo.hs \ bin/Class_java_lang_Object.o \ bin/Class_java_lang_String.o \ bin/Class_edu_berkeley_sbp_Tree.o \ bin/JVM_edu_berkeley_sbp_misc_HaskellHelper.o cd bin; $(ghc) -c ../src/SBP.hs $(link) -o SBP.o cd bin; $(ghc) -i../src/ -c ../src/HaskellDemo.hs $(link) -o HaskellDemo.o cd bin; for A in *.hs; do $(ghc) -c $$A $(link); done cd bin; $(ghc) $(linkopts) $(link) -o HaskellDemo *.o ghcroot = /usr/local/brian/ghc ghc = $(ghcroot)/compiler/ghc-inplace -fallow-undecidable-instances -fallow-overlapping-instances ghclibs = $(ghcroot)/rts/HSrts.jar:$(ghcroot)/libraries/base/HSbase.jar:$(ghcroot)/libraries/stm/HSstm.jar bin/Main.class: src/Main.lhs src/SBP.lhs cd src; $(ghc) -fglasgow-exts -cpp -odir ../bin -c -java SBP.lhs cd src; $(ghc) -fglasgow-exts -cpp -odir ../bin -java Main.lhs #profile=-agentlib:yjpagent go: bin/Main.class edu.berkeley.sbp.jar java $(profile) -cp bin:$(ghclibs):edu.berkeley.sbp.jar Main