Skip to content

Commit

Permalink
Makefile: Support building with cabal 3.0
Browse files Browse the repository at this point in the history
also update tag generation
  • Loading branch information
joeyh committed Jan 12, 2021
1 parent ad48349 commit e3a07e4
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ Build/SysConfig
tags
git-repair
dist
dist-newstyle
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
git-repair (1.20210111) UNRELEASED; urgency=medium

* Merge from git-annex.
* Makefile: Support building with cabal 3.0.

-- Joey Hess <[email protected]> Mon, 11 Jan 2021 21:52:06 -0400

Expand Down
28 changes: 23 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 &

Expand All @@ -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

0 comments on commit e3a07e4

Please sign in to comment.