summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2021-01-11 21:56:11 -0400
committerJoey Hess <joeyh@joeyh.name>2021-01-11 21:56:11 -0400
commite3a07e4c806d63893ff9da6283526da5981295b9 (patch)
treeec8baa3329fdda839e88ec8f383ae3eea874cbb7 /Makefile
parentad48349741384ed0e49fab9cf13ac7f90aba0dd1 (diff)
downloadgit-repair-e3a07e4c806d63893ff9da6283526da5981295b9.tar.gz
Makefile: Support building with cabal 3.0
also update tag generation
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile28
1 files changed, 23 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index d2cd567..339167d 100644
--- a/Makefile
+++ b/Makefile
@@ -7,9 +7,13 @@ PREFIX=/usr
build: Build/SysConfig.hs
$(BUILDER) build $(BUILDEROPTIONS)
if [ "$(BUILDER)" = stack ]; then \
- ln -sf $$(stack path --dist-dir)/build/git-annex/git-repair git-repair; \
+ ln -sf $$(stack path --dist-dir)/build/git-repair/git-repair git-repair; \
else \
- ln -sf dist/build/git-repair/git-repair git-repair; \
+ if [ -d dist-newstyle ]; then \
+ ln -sf $$(cabal exec -- sh -c 'command -v git-repair') git-repair; \
+ else \
+ ln -sf dist/build/git-repair/git-repair git-repair; \
+ fi; \
fi
@$(MAKE) tags >/dev/null 2>&1 &
@@ -29,12 +33,26 @@ install: build
clean:
rm -rf git-repair git-repair-test.log \
- dist configure Build/SysConfig.hs Setup tags
+ dist dist-newstyle configure Build/SysConfig.hs Setup tags
find . -name \*.o -exec rm {} \;
find . -name \*.hi -exec rm {} \;
-# hothasktags chokes on some template haskell etc, so ignore errors
+# tags file for vim
tags:
- (for f in $$(find . | grep -v /.git/ | grep -v /tmp/ | grep -v /dist/ | grep -v /doc/ | egrep '\.hs$$'); do hothasktags -c --cpp -c -traditional -c --include=dist/build/autogen/cabal_macros.h $$f; done) 2>/dev/null | sort > tags
+ @$(MAKE) --quiet hothasktags HOTHASKTAGS_OPT= TAGFILE=tags
+
+# TAGS file for emacs
+TAGS:
+ @$(MAKE) --quiet hothasktags HOTHASKTAGS_OPT=-e TAGFILE=TAGS
+
+# https://github.com/luqui/hothasktags/issues/18
+HOTHASKTAGS_ARGS=-XLambdaCase -XPackageImports --cpp
+
+hothasktags:
+ @if ! cabal exec hothasktags -- $(HOTHASKTAGS_OPT) $(HOTHASKTAGS_ARGS) \
+ $$(find . | grep -v /.git/ | grep -v /tmp/ | grep -v dist/ | grep -v /doc/ | egrep '\.hs$$') 2>/dev/null \
+ | sort > $(TAGFILE); then \
+ echo "** hothasktags failed"; \
+ fi
.PHONY: tags