X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=Makefile;h=c372b853007b72ff1325a33a92f22f11ccd59ea3;hp=ba1fb28e5cbf133af7484ce63cfec7456fda1232;hb=c700f5a65d664d4c0a3e76d33aa3769266bf330c;hpb=a5cc4e8d9bbdb4b462de09a221f958bf3020895e diff --git a/Makefile b/Makefile index ba1fb28..c372b85 100644 --- a/Makefile +++ b/Makefile @@ -1,32 +1,86 @@ -coqc := coqc -noglob -coqfiles := $(shell find src -name \*.v) -allfiles := $(coqfiles) $(shell find src -name \*.hs) +coqc := coqc -noglob -opt +coqfiles := $(shell find src -name \*.v | grep -v \\\#) +allfiles := $(coqfiles) $(shell find src -name \*.hs | grep -v \\\#) +coq_version := $(shell coqc -v | head -n1 | sed 's_.*version __' | sed 's_ .*__') +coq_version_wanted := 8.3pl2-tracer -default: build/CoqPass.hs +default: all -build/CoqPass.hs: build/Makefile.coq $(allfiles) +all: $(allfiles) + $(MAKE) build/Makefile.coq + cd build; $(MAKE) -f Makefile.coq OPT="-opt -dont-load-proofs" All.vo - # first we build with -dont-load-proofs, since that runs very quickly - cd build; make -f Makefile.coq OPT="-dont-load-proofs" Main.vo +build/CoqPass.hs: $(allfiles) +ifeq ($(coq_version),$(coq_version_wanted)) + make build/Makefile.coq + cd build; $(MAKE) -f Makefile.coq OPT="-opt -dont-load-proofs" ExtractionMain.vo + cd build; $(MAKE) -f Makefile.coq Extraction.vo + cat src/Extraction-prefix.hs > build/CoqPass.hs + cat build/Extraction.hs | grep -v '^module' | grep -v '^import' >> build/CoqPass.hs +else + @echo + @echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + @echo ++ YOU DO NOT HAVE COQ VERSION $(coq_version_wanted) INSTALLED ++ + @echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + @echo + @echo Therefore, I am going to "git pull -f" from the coq-extraction-baked-in + @echo branch of the repository. + @echo + git pull -f http://git.megacz.com/coq-hetmet.git coq-extraction-baked-in:master +endif - # however the final extraction must be done without -dont-load-proofs - cd build; make -f Makefile.coq Extraction.vo - cat src/Extraction-prefix.hs build/Extraction.hs > build/CoqPass.hs -build/Makefile.coq: $(coqfiles) +build/Makefile.coq: $(coqfiles) src/categories/src mkdir -p build rm -f build/*.v rm -f build/*.d - cd build; ln -s ../src/*.v . + cd build; ln -fs `find ../src -name \*.v` . cd build; coq_makefile *.v > Makefile.coq +src/categories/src: + git submodule update --init src/categories + cd src/categories; git checkout master + clean: rm -rf build +examples/test.pdf: + ../../../inplace/bin/ghc-stage2 GArrowTikZ.hs + ./GArrowTikZ > test.tex + pdflatex test.tex + open test.pdf + +examples/doc/index.html: + mkdir -p examples/doc + haddock --html Unify.hs + open Unify.html + + +merged: + mkdir -p .temp + cd src; for A in *.v; do cat $$A | grep -v '^Require Import' > ../.temp/`echo $$A | sed s_\\\\.v_._`; done + cd src/categories/src; for A in *.v; do cat $$A | \ + grep -v '^Require Import' > ../../../.temp/`echo $$A | sed s_\\\\.v_._`; done + cp src/Banner.v .temp/GArrows.v + cd .temp; grep '^Require Import ' ../src/All.v | sed 's_Require Import _echo;echo;echo;echo;echo;cat _' | bash >> GArrows.v + cd .temp; time $(coqc) -dont-load-proofs -verbose GArrows.v + echo + echo COMPILATION OK + echo + +pushcheck: + ssh megacz.com -- 'rm -rf /tmp/pushcheck; mkdir /tmp/pushcheck; cd /tmp/pushcheck; git clone http://git.megacz.com/ghc-hetmet.git && git clone http://git.megacz.com/coq-hetmet.git ghc-hetmet/compiler/hetmet' + rsync -are ssh --progress --verbose --exclude .git --exclude src/categories/build/ --exclude build/ ./ megacz.com:/tmp/pushcheck/ghc-hetmet/compiler/hetmet/ + ssh megacz.com -- '/vol/megacz/pushcheck2.sh' # this is for Adam's use only! -publish: +push: build/CoqPass.hs + git push http://git.megacz.com/coq-hetmet.git master + git add -f build/CoqPass.hs; \ + git commit -m 'update baked-in CoqPass.hs' && \ + (git push -f http://git.megacz.com/coq-hetmet.git master:coq-extraction-baked-in; \ + git reset HEAD^) rm -rf .temp mkdir .temp cd .temp; ln -s ../src/*.v . @@ -49,4 +103,4 @@ publish: pdflatex $$A.tex < /dev/null; done ssh login.eecs.berkeley.edu -- 'rm public_html/coq-in-ghc/pdfs/*.pdf' ; true scp .temp/*.pdf login.eecs.berkeley.edu:public_html/coq-in-ghc/pdfs/ - rm -rf .temp \ No newline at end of file + rm -rf .temp