tools: make stack command configurable, for ghc 8 testing
This commit is contained in:
parent
ad3c5dfb4d
commit
25a2fe100c
56
Makefile
56
Makefile
@ -49,7 +49,7 @@ help2: \
|
|||||||
export LANG?=en_US.UTF-8
|
export LANG?=en_US.UTF-8
|
||||||
|
|
||||||
# command to run during profiling (time and heap)
|
# command to run during profiling (time and heap)
|
||||||
#PROFCMD=stack exec -- hledgerprof balance -f data/1000x1000x10.journal >/dev/null
|
PROFCMD=stack exec -- hledgerprof balance -f data/10000x1000x10.journal >/dev/null
|
||||||
|
|
||||||
#PROFRTSFLAGS=-p
|
#PROFRTSFLAGS=-p
|
||||||
PROFRTSFLAGS=-P
|
PROFRTSFLAGS=-P
|
||||||
@ -74,14 +74,16 @@ GHCI=ghci #-package ghc-datasize #-package ghc-heap-view
|
|||||||
# HADDOCK=haddock
|
# HADDOCK=haddock
|
||||||
# CABAL=cabal
|
# CABAL=cabal
|
||||||
# CABALINSTALL=cabal install -w $(GHC)
|
# CABALINSTALL=cabal install -w $(GHC)
|
||||||
|
STACK=stack
|
||||||
|
#STACK=stack --stack-yaml=stack-ghc8.yaml
|
||||||
|
|
||||||
# -j16 sometimes gives "commitAndReleaseBuffer: resource vanished (Broken pipe)" but seems harmless
|
# -j16 sometimes gives "commitAndReleaseBuffer: resource vanished (Broken pipe)" but seems harmless
|
||||||
SHELLTESTOPTS=--execdir -- -j16 --hide-successes
|
SHELLTESTOPTS=--execdir -- -j16 --hide-successes
|
||||||
# run shell tests using the executable specified in tests
|
# run shell tests using the executable specified in tests
|
||||||
SHELLTEST=shelltest $(SHELLTESTOPTS)
|
SHELLTEST=shelltest $(SHELLTESTOPTS)
|
||||||
# run shell tests using the stack build
|
# run shell tests using the stack build
|
||||||
SHELLTESTSTK=stack exec -- shelltest $(SHELLTESTOPTS)
|
|
||||||
#SHELLTESTSTK=shelltest -w `stack exec which hledger` $(SHELLTESTOPTS)
|
#SHELLTESTSTK=shelltest -w `stack exec which hledger` $(SHELLTESTOPTS)
|
||||||
|
SHELLTESTSTK=$(STACK) exec -- shelltest $(SHELLTESTOPTS)
|
||||||
|
|
||||||
# # used for make auto, http://joyful.com/repos/searchpath
|
# # used for make auto, http://joyful.com/repos/searchpath
|
||||||
# SP=sp
|
# SP=sp
|
||||||
@ -218,7 +220,7 @@ $(call def-help-subsection,INSTALLING:)
|
|||||||
|
|
||||||
install: \
|
install: \
|
||||||
$(call def-help,install, download dependencies and install hledger executables to ~/.local/bin or equivalent (with stack))
|
$(call def-help,install, download dependencies and install hledger executables to ~/.local/bin or equivalent (with stack))
|
||||||
stack install
|
$(STACK) install
|
||||||
|
|
||||||
# cabal-install: \
|
# cabal-install: \
|
||||||
# $(call def-help,cabal-install,\
|
# $(call def-help,cabal-install,\
|
||||||
@ -247,7 +249,7 @@ $(call def-help-subsection,BUILDING:)
|
|||||||
|
|
||||||
build: \
|
build: \
|
||||||
$(call def-help,build, download dependencies and build hledger executables (with stack))
|
$(call def-help,build, download dependencies and build hledger executables (with stack))
|
||||||
stack build
|
$(STACK) build
|
||||||
|
|
||||||
# check-setup: \
|
# check-setup: \
|
||||||
# $(call def-help,check-setup,\
|
# $(call def-help,check-setup,\
|
||||||
@ -335,9 +337,9 @@ bin/hledgerdev hledgerdev: \
|
|||||||
|
|
||||||
hledgerprof: \
|
hledgerprof: \
|
||||||
$(call def-help,hledgerprof, build "hledgerprof" for profiling (with stack) )
|
$(call def-help,hledgerprof, build "hledgerprof" for profiling (with stack) )
|
||||||
stack build hledger-lib hledger --library-profiling --executable-profiling --ghc-options=-fprof-auto
|
$(STACK) build hledger-lib hledger --library-profiling --executable-profiling --ghc-options=-fprof-auto
|
||||||
cp `stack exec which hledger`{,prof}
|
cp `$(STACK) exec which hledger`{,prof}
|
||||||
@echo to profile, use stack exec -- hledgerprof ...
|
@echo to profile, use $(STACK) exec -- hledgerprof ...
|
||||||
|
|
||||||
# bin/hledgerprof: \
|
# bin/hledgerprof: \
|
||||||
# $(call def-help,bin/hledgerprof,\
|
# $(call def-help,bin/hledgerprof,\
|
||||||
@ -359,21 +361,21 @@ hledgercov: \
|
|||||||
# hledger-lib/Hledger/Read/TimeclockReaderPP.hs
|
# hledger-lib/Hledger/Read/TimeclockReaderPP.hs
|
||||||
dev: dev.hs $(SOURCEFILES) \
|
dev: dev.hs $(SOURCEFILES) \
|
||||||
$(call def-help,dev, build the dev.hs script for quick experiments (with ghc) )
|
$(call def-help,dev, build the dev.hs script for quick experiments (with ghc) )
|
||||||
stack ghc -- $(CABALMACROSFLAGS) -ihledger-lib dev.hs \
|
$(STACK) ghc -- $(CABALMACROSFLAGS) -ihledger-lib dev.hs \
|
||||||
|
|
||||||
# dev0: dev.hs $(SOURCEFILES) \
|
# dev0: dev.hs $(SOURCEFILES) \
|
||||||
# $(call def-help,dev, build the dev.hs script for quick experiments (with ghc -O0) )
|
# $(call def-help,dev, build the dev.hs script for quick experiments (with ghc -O0) )
|
||||||
# stack ghc -- -O0 $(CABALMACROSFLAGS) -ihledger-lib dev.hs -o dev0 \
|
# $(STACK) ghc -- -O0 $(CABALMACROSFLAGS) -ihledger-lib dev.hs -o dev0 \
|
||||||
|
|
||||||
# dev2: dev.hs $(SOURCEFILES) \
|
# dev2: dev.hs $(SOURCEFILES) \
|
||||||
# $(call def-help,dev, build the dev.hs script for quick experiments (with ghc -O2) )
|
# $(call def-help,dev, build the dev.hs script for quick experiments (with ghc -O2) )
|
||||||
# stack ghc -- -O2 $(CABALMACROSFLAGS) -ihledger-lib dev.hs -o dev2 \
|
# $(STACK) ghc -- -O2 $(CABALMACROSFLAGS) -ihledger-lib dev.hs -o dev2 \
|
||||||
|
|
||||||
# to get profiling deps installed, first do something like:
|
# to get profiling deps installed, first do something like:
|
||||||
# stack build --library-profiling hledger-lib timeit criterion
|
# stack build --library-profiling hledger-lib timeit criterion
|
||||||
devprof: dev.hs $(SOURCEFILES) \
|
devprof: dev.hs $(SOURCEFILES) \
|
||||||
$(call def-help,devprof, build the dev.hs script with profiling support )
|
$(call def-help,devprof, build the dev.hs script with profiling support )
|
||||||
stack ghc -- $(CABALMACROSFLAGS) -ihledger-lib dev.hs -rtsopts -prof -fprof-auto -osuf p_o -o devprof
|
$(STACK) ghc -- $(CABALMACROSFLAGS) -ihledger-lib dev.hs -rtsopts -prof -fprof-auto -osuf p_o -o devprof
|
||||||
|
|
||||||
dev-profile: devprof \
|
dev-profile: devprof \
|
||||||
$(call def-help,dev-profile, get a time & space profile of the dev.hs script )
|
$(call def-help,dev-profile, get a time & space profile of the dev.hs script )
|
||||||
@ -505,7 +507,7 @@ dev-heap-upload:
|
|||||||
|
|
||||||
tools/simplebench: tools/simplebench.hs \
|
tools/simplebench: tools/simplebench.hs \
|
||||||
$(call def-help,tools/simplebench, build the standalone generic benchmark runner. Requires libs installed by stack build --bench. )
|
$(call def-help,tools/simplebench, build the standalone generic benchmark runner. Requires libs installed by stack build --bench. )
|
||||||
stack exec -- $(GHC) tools/simplebench.hs
|
$(STACK) exec -- $(GHC) tools/simplebench.hs
|
||||||
|
|
||||||
# tools/criterionbench: tools/criterionbench.hs \
|
# tools/criterionbench: tools/criterionbench.hs \
|
||||||
# $(call def-help,tools/criterionbench,\
|
# $(call def-help,tools/criterionbench,\
|
||||||
@ -580,14 +582,14 @@ test: pkgtest builtintest functest \
|
|||||||
#@echo package tests:
|
#@echo package tests:
|
||||||
pkgtest: \
|
pkgtest: \
|
||||||
$(call def-help,pkgtest, run the test suites for each package )
|
$(call def-help,pkgtest, run the test suites for each package )
|
||||||
@(stack test \
|
@($(STACK) test \
|
||||||
&& echo $@ PASSED) || echo $@ FAILED
|
&& echo $@ PASSED) || echo $@ FAILED
|
||||||
|
|
||||||
# NB ensure hledger executable is current (eg do pkgtest first)
|
# NB ensure hledger executable is current (eg do pkgtest first)
|
||||||
#@echo "built-in tests (hledger cli unit tests)":
|
#@echo "built-in tests (hledger cli unit tests)":
|
||||||
builtintest: \
|
builtintest: \
|
||||||
$(call def-help,builtintest, run tests built in to the hledger executable (subset of pkg tests) )
|
$(call def-help,builtintest, run tests built in to the hledger executable (subset of pkg tests) )
|
||||||
@(stack exec hledger test \
|
@($(STACK) exec hledger test \
|
||||||
&& echo $@ PASSED) || echo $@ FAILED
|
&& echo $@ PASSED) || echo $@ FAILED
|
||||||
|
|
||||||
# builtintestghc: bin/hledgerdev \
|
# builtintestghc: bin/hledgerdev \
|
||||||
@ -610,7 +612,7 @@ builtintest: \
|
|||||||
|
|
||||||
functest: tests/addons/hledger-addon \
|
functest: tests/addons/hledger-addon \
|
||||||
$(call def-help,functest, run the functional tests for hledger )
|
$(call def-help,functest, run the functional tests for hledger )
|
||||||
@stack build hledger
|
@$(STACK) build hledger
|
||||||
@(COLUMNS=80 $(SHELLTESTSTK) tests \
|
@(COLUMNS=80 $(SHELLTESTSTK) tests \
|
||||||
&& echo $@ PASSED) || echo $@ FAILED
|
&& echo $@ PASSED) || echo $@ FAILED
|
||||||
|
|
||||||
@ -723,7 +725,7 @@ quickbench: samplejournals bench.tests tools/simplebench \
|
|||||||
|
|
||||||
quickprof-%: hledgerprof samplejournals \
|
quickprof-%: hledgerprof samplejournals \
|
||||||
$(call def-help,quickprof-"CMD", run some command against a sample journal and display the execution profile )
|
$(call def-help,quickprof-"CMD", run some command against a sample journal and display the execution profile )
|
||||||
stack exec -- hledgerprof +RTS $(PROFRTSFLAGS) -RTS $* -f data/10000x1000x10.journal >/dev/null
|
$(STACK) exec -- hledgerprof +RTS $(PROFRTSFLAGS) -RTS $* -f data/10000x1000x10.journal >/dev/null
|
||||||
profiteur hledgerprof.prof
|
profiteur hledgerprof.prof
|
||||||
@echo
|
@echo
|
||||||
@head -20 hledgerprof.prof
|
@head -20 hledgerprof.prof
|
||||||
@ -749,7 +751,7 @@ quickprof-%: hledgerprof samplejournals \
|
|||||||
|
|
||||||
quickheap-%: hledgerprof samplejournals \
|
quickheap-%: hledgerprof samplejournals \
|
||||||
$(call def-help,quickheap-"CMD", run some command against a sample journal and display the heap profile )
|
$(call def-help,quickheap-"CMD", run some command against a sample journal and display the heap profile )
|
||||||
stack exec -- hledgerprof +RTS -hc -RTS $* -f data/10000x1000x10.journal >/dev/null
|
$(STACK) exec -- hledgerprof +RTS -hc -RTS $* -f data/10000x1000x10.journal >/dev/null
|
||||||
hp2ps hledgerprof.hp
|
hp2ps hledgerprof.hp
|
||||||
@echo generated hledgerprof.ps
|
@echo generated hledgerprof.ps
|
||||||
$(VIEWPS) hledgerprof.ps
|
$(VIEWPS) hledgerprof.ps
|
||||||
@ -791,26 +793,26 @@ quickheap-%: hledgerprof samplejournals \
|
|||||||
# multi-package GHCI prompts
|
# multi-package GHCI prompts
|
||||||
ghci: \
|
ghci: \
|
||||||
# $(call def-help,ghci, start a GHCI REPL and load the hledger-lib and hledger packages)
|
# $(call def-help,ghci, start a GHCI REPL and load the hledger-lib and hledger packages)
|
||||||
stack exec -- $(GHCI) $(BUILDFLAGS) hledger/Hledger/Cli/Main.hs
|
$(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger/Hledger/Cli/Main.hs
|
||||||
|
|
||||||
ghci-dev: \
|
ghci-dev: \
|
||||||
# $(call def-help,ghci, start a GHCI REPL and load the dev.hs script plus hledger-lib and hledger)
|
# $(call def-help,ghci, start a GHCI REPL and load the dev.hs script plus hledger-lib and hledger)
|
||||||
stack exec -- $(GHCI) $(BUILDFLAGS) -fno-warn-unused-imports -fno-warn-unused-binds dev.hs
|
$(STACK) exec -- $(GHCI) $(BUILDFLAGS) -fno-warn-unused-imports -fno-warn-unused-binds dev.hs
|
||||||
|
|
||||||
ghci-ui: \
|
ghci-ui: \
|
||||||
# $(call def-help,ghci-ui, start a GHCI REPL and load the hledger-lib, hledger and hledger-ui packages)
|
# $(call def-help,ghci-ui, start a GHCI REPL and load the hledger-lib, hledger and hledger-ui packages)
|
||||||
stack exec -- $(GHCI) $(BUILDFLAGS) hledger-ui/Hledger/UI/Main.hs
|
$(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger-ui/Hledger/UI/Main.hs
|
||||||
|
|
||||||
ghci-web: \
|
ghci-web: \
|
||||||
# $(call def-help,ghci-web, start a GHCI REPL and load the hledger-lib, hledger and hledger-web packages)
|
# $(call def-help,ghci-web, start a GHCI REPL and load the hledger-lib, hledger and hledger-web packages)
|
||||||
stack exec -- $(GHCI) $(BUILDFLAGS) hledger-web/app/main.hs
|
$(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger-web/app/main.hs
|
||||||
|
|
||||||
ghci-api: \
|
ghci-api: \
|
||||||
# $(call def-help,ghci-api, start a GHCI REPL and load the hledger-lib, hledger and hledger-api packages)
|
# $(call def-help,ghci-api, start a GHCI REPL and load the hledger-lib, hledger and hledger-api packages)
|
||||||
stack exec -- $(GHCI) $(BUILDFLAGS) hledger-api/hledger-api.hs
|
$(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger-api/hledger-api.hs
|
||||||
|
|
||||||
ghcid-lib-doctest:
|
ghcid-lib-doctest:
|
||||||
ghcid --command 'cd hledger-lib; stack ghci hledger-lib:test:doctests' --test ':main' --reload hledger-lib
|
ghcid --command 'cd hledger-lib; $(STACK) ghci hledger-lib:test:doctests' --test ':main' --reload hledger-lib
|
||||||
|
|
||||||
samplejournals: \
|
samplejournals: \
|
||||||
data/sample.journal \
|
data/sample.journal \
|
||||||
@ -970,8 +972,8 @@ HADDOCKFLAGS= \
|
|||||||
|
|
||||||
haddock: \
|
haddock: \
|
||||||
$(call def-help,haddock, generate haddock docs for the hledger packages )
|
$(call def-help,haddock, generate haddock docs for the hledger packages )
|
||||||
stack haddock --no-haddock-deps --no-keep-going # && echo OK
|
$(STACK) haddock --no-haddock-deps --no-keep-going # && echo OK
|
||||||
# stack -v haddock --no-haddock-deps --no-keep-going # && echo OK
|
# $(STACK) -v haddock --no-haddock-deps --no-keep-going # && echo OK
|
||||||
|
|
||||||
# view-haddock: \
|
# view-haddock: \
|
||||||
# $(call def-help,view-haddock-cli,\
|
# $(call def-help,view-haddock-cli,\
|
||||||
@ -1466,11 +1468,11 @@ cleantags: \
|
|||||||
|
|
||||||
stackclean: \
|
stackclean: \
|
||||||
$(call def-help-hide,stackclean, remove .stack-work/* in packages (but not in project) )
|
$(call def-help-hide,stackclean, remove .stack-work/* in packages (but not in project) )
|
||||||
stack clean
|
$(STACK) clean
|
||||||
|
|
||||||
Stackclean: \
|
Stackclean: \
|
||||||
$(call def-help-hide,Stackclean, remove all stack working dirs )
|
$(call def-help-hide,Stackclean, remove all stack working dirs )
|
||||||
stack clean
|
$(STACK) clean
|
||||||
|
|
||||||
cleanghco: \
|
cleanghco: \
|
||||||
$(call def-help-hide,cleanghc, remove ghc build leftovers )
|
$(call def-help-hide,cleanghc, remove ghc build leftovers )
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user