mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-18 17:57:11 +03:00
tools: makefile updates, new sandbox rules
This commit is contained in:
parent
735f818c22
commit
154699ce1f
53
Makefile
53
Makefile
@ -209,17 +209,19 @@ check: \
|
|||||||
@($(SHELLTESTV) checks \
|
@($(SHELLTESTV) checks \
|
||||||
&& echo $@ PASSED) || echo $@ FAILED
|
&& echo $@ PASSED) || echo $@ FAILED
|
||||||
|
|
||||||
sandbox: .cabal-sandbox sandbox-links \
|
include sandbox.mk
|
||||||
$(call def-help,sandbox,\
|
|
||||||
set up a cabal sandbox and some symlinks\
|
|
||||||
)
|
|
||||||
|
|
||||||
.cabal-sandbox: \
|
# sandbox: .cabal-sandbox sandbox-links \
|
||||||
$(call def-help,.cabal-sandbox,\
|
# $(call def-help,sandbox,\
|
||||||
initialise ./.cabal sandbox and add hledger packages as sources \
|
# set up a cabal sandbox and some symlinks\
|
||||||
)
|
# )
|
||||||
cabal sandbox init
|
|
||||||
cabal sandbox add-source ./hledger-lib ./hledger ./hledger-web
|
# .cabal-sandbox: \
|
||||||
|
# $(call def-help,.cabal-sandbox,\
|
||||||
|
# initialise ./.cabal sandbox and add hledger packages as sources \
|
||||||
|
# )
|
||||||
|
# cabal sandbox init
|
||||||
|
# cabal sandbox add-source ./hledger-lib ./hledger ./hledger-web
|
||||||
|
|
||||||
sandbox-links: \
|
sandbox-links: \
|
||||||
$(call def-help,sandbox-links,\
|
$(call def-help,sandbox-links,\
|
||||||
@ -228,7 +230,7 @@ sandbox-links: \
|
|||||||
-for p in hledger{-lib,,-web}; do (cd $$p/dist; ln -s dist-*/build); done
|
-for p in hledger{-lib,,-web}; do (cd $$p/dist; ln -s dist-*/build); done
|
||||||
|
|
||||||
install: \
|
install: \
|
||||||
$(call def-help,sandbox-links,\
|
$(call def-help,install,\
|
||||||
cabal install the main hledger packages and all their dependencies\
|
cabal install the main hledger packages and all their dependencies\
|
||||||
in the sandbox if any; otherwise in the users package db\
|
in the sandbox if any; otherwise in the users package db\
|
||||||
)
|
)
|
||||||
@ -817,34 +819,25 @@ viewcoverage: \
|
|||||||
)
|
)
|
||||||
$(VIEWHTML) doc/profs/coverage/index.html
|
$(VIEWHTML) doc/profs/coverage/index.html
|
||||||
|
|
||||||
repl-lib: \
|
# XXX with a sandbox, use sandbox-repl-* instead
|
||||||
$(call def-help,repl-lib,\
|
repl-lib:\
|
||||||
single-package debug prompts, using all cabal settings\
|
$(call def-help,repl-lib, start a cabal REPL and load the hledger-lib package)
|
||||||
)
|
|
||||||
(cd hledger-lib; cabal repl)
|
(cd hledger-lib; cabal repl)
|
||||||
|
|
||||||
repl-cli repl: \
|
repl-cli:\
|
||||||
$(call def-help,repl-cli repl,\
|
$(call def-help,repl-cli, start a cabal REPL and load the hledger package)
|
||||||
\
|
|
||||||
)
|
|
||||||
(cd hledger; cabal repl exe:hledger)
|
(cd hledger; cabal repl exe:hledger)
|
||||||
|
|
||||||
repl-web: \
|
repl-web:\
|
||||||
$(call def-help,repl-web,\
|
$(call def-help,repl-web, start a cabal REPL and load the hledger-web package)
|
||||||
\
|
|
||||||
)
|
|
||||||
(cd hledger-web; cabal repl exe:hledger-web)
|
(cd hledger-web; cabal repl exe:hledger-web)
|
||||||
|
|
||||||
ghci: \
|
ghci: \
|
||||||
$(call def-help,ghci,\
|
$(call def-help,ghci, start a sandbox-aware GHCI REPL and load the hledger-lib and hledger packages)
|
||||||
multi-package debug prompts, mimicking most cabal settings\
|
cabal exec $(GHCI) -- -XCPP $(CABALMACROSFLAGS) $(WARNINGS) $(INCLUDEPATHS) hledger/Hledger/Cli/Main.hs
|
||||||
)
|
|
||||||
cabal exec $(GHCI) -- $(WARNINGS) $(INCLUDEPATHS) $(MAIN)
|
|
||||||
|
|
||||||
ghci-web: \
|
ghci-web: \
|
||||||
$(call def-help,ghci-web,\
|
$(call def-help,ghci-web, start a sandbox-aware GHCI REPL and load the hledger-lib, hledger and hledger-web packages)
|
||||||
\
|
|
||||||
)
|
|
||||||
cabal exec $(GHCI) -- $(BUILDFLAGS) $(WEBLANGEXTS) hledger-web/app/main.hs
|
cabal exec $(GHCI) -- $(BUILDFLAGS) $(WEBLANGEXTS) hledger-web/app/main.hs
|
||||||
|
|
||||||
samplejournals: data/sample.journal data/100x100x10.journal data/1000x1000x10.journal data/1000x10000x10.journal data/10000x1000x10.journal data/10000x10000x10.journal data/100000x1000x10.journal \
|
samplejournals: data/sample.journal data/100x100x10.journal data/1000x1000x10.journal data/1000x10000x10.journal data/10000x1000x10.journal data/10000x10000x10.journal data/100000x1000x10.journal \
|
||||||
|
@ -19,6 +19,10 @@ define def-help-section
|
|||||||
$(if $(need-help),$(warning --------------------$1--------------------$2))
|
$(if $(need-help),$(warning --------------------$1--------------------$2))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define def-help-subsection
|
||||||
|
$(if $(need-help),$(warning $1$2))
|
||||||
|
endef
|
||||||
|
|
||||||
define last-element
|
define last-element
|
||||||
$(word $(words $1),$1)
|
$(word $(words $1),$1)
|
||||||
endef
|
endef
|
||||||
|
163
sandbox.mk
Normal file
163
sandbox.mk
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
# some standard operations in a cabal sandbox, optionally with specified GHC version
|
||||||
|
|
||||||
|
#include help-system.mks
|
||||||
|
|
||||||
|
sandbox.mk-default: help
|
||||||
|
|
||||||
|
|
||||||
|
$(call def-help-subsection,-- Default sandbox)
|
||||||
|
|
||||||
|
sandbox-setup:\
|
||||||
|
$(call def-help,sandbox-setup, set up a cabal sandbox for hledger using the default GHC version)
|
||||||
|
@make sandbox-init sandbox-add-sources
|
||||||
|
|
||||||
|
sandbox-init:
|
||||||
|
cabal sandbox init
|
||||||
|
|
||||||
|
sandbox-add-sources:
|
||||||
|
cabal sandbox add-source hledger-lib hledger hledger-web
|
||||||
|
|
||||||
|
sandbox-list-sources:\
|
||||||
|
$(call def-help,sandbox-list-sources,)
|
||||||
|
cabal sandbox list-sources
|
||||||
|
|
||||||
|
sandbox-pkg-list:\
|
||||||
|
$(call def-help,sandbox-pkg-list,\
|
||||||
|
)
|
||||||
|
cabal sandbox hc-pkg list
|
||||||
|
|
||||||
|
sandbox-pkg-check:\
|
||||||
|
$(call def-help,sandbox-pkg-check,)
|
||||||
|
cabal sandbox hc-pkg check
|
||||||
|
|
||||||
|
sandbox-install-dry-lib:\
|
||||||
|
$(call def-help,sandbox-install-dry-lib,)
|
||||||
|
cabal install --dry ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-install-dry-cli:\
|
||||||
|
$(call def-help,sandbox-install-dry-cli,)
|
||||||
|
cabal install --dry ./hledger
|
||||||
|
|
||||||
|
sandbox-install-dry-web:\
|
||||||
|
$(call def-help,sandbox-install-dry-web,)
|
||||||
|
cabal install --dry ./hledger-web
|
||||||
|
|
||||||
|
sandbox-install-dep-lib:\
|
||||||
|
$(call def-help,sandbox-install-dep-lib,)
|
||||||
|
cabal install --only-dep ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-install-dep-cli:\
|
||||||
|
$(call def-help,sandbox-install-dep-cli,)
|
||||||
|
cabal install --only-dep ./hledger
|
||||||
|
|
||||||
|
sandbox-install-dep-web:\
|
||||||
|
$(call def-help,sandbox-install-dep-web,)
|
||||||
|
cabal install --only-dep ./hledger-web
|
||||||
|
|
||||||
|
sandbox-install-lib:\
|
||||||
|
$(call def-help,sandbox-install-lib, install hledger-lib)
|
||||||
|
cabal install ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-install-cli:\
|
||||||
|
$(call def-help,sandbox-install-cli, install hledger-lib and hledger)
|
||||||
|
cabal install ./hledger
|
||||||
|
|
||||||
|
sandbox-install-web:\
|
||||||
|
$(call def-help,sandbox-install-web, install hledger-lib and hledger and hledger-web)
|
||||||
|
cabal install ./hledger-web
|
||||||
|
|
||||||
|
sandbox-repl-lib:\
|
||||||
|
$(call def-help,sandbox-repl-lib, start a cabal REPL for the hledger-lib package)
|
||||||
|
(cd hledger-lib; cabal --sandbox-config-file=../cabal.sandbox.config repl)
|
||||||
|
|
||||||
|
sandbox-repl-cli:\
|
||||||
|
$(call def-help,sandbox-repl-cli, start a cabal REPL for the hledger package)
|
||||||
|
(cd hledger; cabal --sandbox-config-file=../cabal.sandbox.config repl exe:hledger)
|
||||||
|
|
||||||
|
sandbox-repl-web:\
|
||||||
|
$(call def-help,sandbox-repl-web, start a cabal REPL for the hledger-web package)
|
||||||
|
(cd hledger-web; cabal --sandbox-config-file=../cabal.sandbox.config repl exe:hledger-web)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$(call def-help-subsection,-- Sandbox for specified GHC version (eg: make sandbox-7.8.4-setup))
|
||||||
|
|
||||||
|
# .cabal-sandbox.ghc%:
|
||||||
|
sandbox-%-setup: \
|
||||||
|
$(call def-help,sandbox-%-setup, set up a cabal sandbox for hledger using the specified GHC version)
|
||||||
|
@make sandbox-$*-init sandbox-$*-add-sources
|
||||||
|
|
||||||
|
sandbox-%-init:
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config sandbox init --sandbox .cabal-sandbox.$*
|
||||||
|
@echo "now manually fix the ghc version in package-db: in cabal.sandbox.$*.config"
|
||||||
|
|
||||||
|
sandbox-%-add-sources:
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config sandbox add-source --sandbox .cabal-sandbox.$* hledger-lib hledger hledger-web
|
||||||
|
|
||||||
|
sandbox-%-list-sources:\
|
||||||
|
$(call def-help,sandbox-%-list-sources,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config sandbox list-sources --sandbox .cabal-sandbox.$*
|
||||||
|
|
||||||
|
sandbox-%-pkg-list: \
|
||||||
|
$(call def-help,sandbox-%-pkg-list,\
|
||||||
|
)
|
||||||
|
ghc-pkg-$* --package-db .cabal-sandbox.$*/*$*-packages.conf.d list
|
||||||
|
# ghc-pkg-$* --global-package-db /usr/local/lib/ghc-$*/package.conf.d --package-db .cabal-sandbox.$*/*$*-packages.conf.d list
|
||||||
|
|
||||||
|
sandbox-%-pkg-check:\
|
||||||
|
$(call def-help,sandbox-%-pkg-check,)
|
||||||
|
ghc-pkg-$* --package-db .cabal-sandbox.$*/*$*-packages.conf.d check
|
||||||
|
# ghc-pkg-$* --global-package-db /usr/local/lib/ghc-$*/package.conf.d --package-db .cabal-sandbox.$*/*$*-packages.conf.d check
|
||||||
|
|
||||||
|
sandbox-%-install-dry-lib:\
|
||||||
|
$(call def-help,sandbox-%-install-dry-lib,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --dry ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-%-install-dry-cli:\
|
||||||
|
$(call def-help,sandbox-%-install-dry-cli,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --dry ./hledger
|
||||||
|
|
||||||
|
sandbox-%-install-dry-web:\
|
||||||
|
$(call def-help,sandbox-%-install-dry-web,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --dry ./hledger-web
|
||||||
|
|
||||||
|
sandbox-%-install-dep-lib:\
|
||||||
|
$(call def-help,sandbox-%-install-dep-lib,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --only-dep ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-%-install-dep-cli:\
|
||||||
|
$(call def-help,sandbox-%-install-dep-cli,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --only-dep ./hledger
|
||||||
|
|
||||||
|
sandbox-%-install-dep-web:\
|
||||||
|
$(call def-help,sandbox-%-install-dep-web,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* --only-dep ./hledger-web
|
||||||
|
|
||||||
|
sandbox-%-install-lib:\
|
||||||
|
$(call def-help,sandbox-%-install-lib,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* ./hledger-lib
|
||||||
|
|
||||||
|
sandbox-%-install-cli:\
|
||||||
|
$(call def-help,sandbox-%-install-cli,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* ./hledger
|
||||||
|
|
||||||
|
sandbox-%-install-web:\
|
||||||
|
$(call def-help,sandbox-%-install-web,)
|
||||||
|
cabal --sandbox-config-file=cabal.sandbox.$*.config install -w ghc-$* ./hledger-web
|
||||||
|
|
||||||
|
sandbox-%-repl-lib:\
|
||||||
|
$(call def-help,sandbox-%-repl-lib,)
|
||||||
|
(cd hledger-lib; cabal --sandbox-config-file=../cabal.sandbox.$*.config repl)
|
||||||
|
|
||||||
|
sandbox-%-repl-cli:\
|
||||||
|
$(call def-help,sandbox-%-repl-cli,)
|
||||||
|
(cd hledger; cabal --sandbox-config-file=../cabal.sandbox.$*.config repl exe:hledger)
|
||||||
|
|
||||||
|
sandbox-%-repl-web:\
|
||||||
|
$(call def-help,sandbox-%-repl-web,)
|
||||||
|
(cd hledger-web; cabal --sandbox-config-file=../cabal.sandbox.$*.config repl exe:hledger-web)
|
||||||
|
|
||||||
|
|
||||||
|
Clean-sandboxes:\
|
||||||
|
$(call def-help,Clean-sandboxes, delete all sandboxes in this directory)
|
||||||
|
rm -rf .cabal-sandbox* cabal.sandbox*
|
Loading…
Reference in New Issue
Block a user