xfconf-4.8.0.0: Makefile
GHCIFLAGS = -XForeignFunctionInterface -lxfconf-0 -idist/build/
PROFDIR = Prof
### Artificial Makefile dependencies tree #############################
DISTDIR = ./dist
SOURCES = $(wildcard System/XFCE/Xfconf/*.chs Tests/*.hs)
BUILDDIR = $(DISTDIR)/build
_MYBIN = $(BUILDDIR)/tests/tests $(BUILDDIR)/testGlib/testGlib
_MYDOC = $(DISTDIR)/doc/html/xfconf/index.html
### Cabal frontend ####################################################
all: build
configure: | $(DISTDIR)
$(DISTDIR): xfconf.cabal
cabal configure -f "buildTests" --ghc-options="-prof -rtsopts=all"
build: $(_MYBIN)
$(_MYBIN): $(SOURCES) | configure
cabal build
.PHONY: clean
clean:
cabal clean
rm -fr $(PROFDIR)
docs doc: $(_MYDOC)
$(_MYDOC): $(SOURCES) | configure
cabal haddock
.PHONY: doc_view
doc_view: $(_MYDOC)
xdg-open $^
### Debug helpers #####################################################
.PHONY: debug
debug: build
ghci $(GHCIFLAGS) System/XFCE/Xfconf.hs;
.PHONY: debugTest
debugTest: build
ghci $(GHCIFLAGS) Tests/Tests.hs;
.PHONY: debugGlib
debugGlib: build
ghci $(GHCIFLAGS) Tests/TestGlib.hs;
.PHONY: debugDemo
debugDemo: build
ghci $(GHCIFLAGS) Demo/Demo.hs;
### Launch pre-configured tests #######################################
.PHONY: watch
watch:
watch xfconf-query -c quickcheck -vl
.PHONY: tests test
tests test: $(_MYBIN)
$(BUILDDIR)/tests/tests --maximum-generated-tests=500 -j3
.PHONY: testGlib
testGlib: $(_MYBIN)
$(BUILDDIR)/testGlib/testGlib
.PHONY: demo
demo: build
runghc Demo/Demo.hs
### Profiling #########################################################
Prof/tests.prof:
rm -fr $(PROFDIR) && mkdir -p $(PROFDIR)
( cd $(PROFDIR)\
; ../$(BUILDDIR)/tests/tests --maximum-generated-tests=500 -j3 +RTS -p -hc -sstderr\
; hp2ps -c tests.hp )
profiling: Prof/tests.prof
( cd $(PROFDIR)\
; xdg-open tests.ps 2>&1 1>/dev/null\
; less tests.prof )