OBJECT_DIR := build/$(shell uname -s)-$(shell uname -m) INTERFACE_DIR := build/Interface MODULES = $(wildcard src/*.hs) \ $(wildcard src/NumericPrelude/*.hs) \ $(wildcard src/Algebra/*.hs) \ $(wildcard src/Algebra/NormedSpace/*.hs) \ $(wildcard src/Number/*.hs) \ $(wildcard src/Number/Physical/*.hs) \ $(wildcard src/Number/DimensionTerm/*.hs) \ $(wildcard src/Number/SI/*.hs) \ $(wildcard src/Number/ResidueClass/*.hs) \ $(wildcard src/Number/FixedPoint/*.hs) \ $(wildcard src/Number/Positional/*.hs) \ $(wildcard src/MathObj/*hs) \ $(wildcard src/MathObj/Permutation/*.hs) \ $(wildcard src/MathObj/Permutation/CycleList/*.hs) \ $(wildcard src/MathObj/PowerSeries/*.hs) GHC_OPTIONS = -Wall -odir$(OBJECT_DIR) -hidir$(INTERFACE_DIR) # names of literate modules after removing literary information UNLIT_MODULES = $(patsubst %.lhs, %.hs, $(patsubst %.hs, , $(MODULES))) # names of all modules without literary information HS_MODULES = $(patsubst %.lhs, %.hs, $(MODULES)) STDINTERFACES = base/base.haddock parsec/parsec.haddock HADDOCK_INCL = $(patsubst %, -i /usr/local/share/ghc-6.2/html/libraries/%, \ $(STDINTERFACES)) HC = ghc HCI = ghci .INTERMEDIATE: $(UNLIT_MODULES) .PHONY: all doc clean build test ghci publish all: build clean: -rm `find $(OBJECT_DIR) -name "*.o"` -rm `find $(INTERFACE_DIR) -name "*.hi"` test: build # $(HC) -Wall -i:$(INTERFACE_DIR) -hide-package NumericPrelude -c test/Test.hs $(HC) $(GHC_OPTIONS) -i:src:test --make -hide-package numeric-prelude -o testsuite test/Test/Run.hs ./testsuite ghci: $(HCI) -Wall -i:src:test +RTS -M256m -c30 -RTS test/Test.hs ghci-gauss: $(HCI) -Wall -i:src:test +RTS -M256m -c30 -RTS test/Test/MathObj/Gaussian/Variance.hs ghci-compile: $(HCI) -Wall -i:src:test +RTS -M256m -c30 -RTS -fobject-code -O -hidir=dist/build -odir=dist/build test/Test.hs build: -mkdir $(OBJECT_DIR) $(HC) $(GHC_OPTIONS) -hide-package numeric-prelude --make -O $(MODULES) doc: $(HS_MODULES) haddock -o docs/html --dump-interface=docs/numericprelude.haddock $(HADDOCK_INCL) -h $(HS_MODULES) %.hs: %.lhs unlit $< $@ HASKELLORG_HTMLDIR = /home/darcs/numericprelude/docs/html publish: scp -r dist/doc/html/* cvs.haskell.org:$(HASKELLORG_HTMLDIR)/ #scp -r docs/html/* cvs.haskell.org:$(HASKELLORG_HTMLDIR)/ ssh cvs.haskell.org chmod -R o+r $(HASKELLORG_HTMLDIR) #ssh cvs.haskell.org chmod o+x `find $(HASKELLORG_HTMLDIR) -type d`