summaryrefslogtreecommitdiff
path: root/Makefile
blob: ddb440b8bbee107cbad28ff7e7e76357312a44e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# set to "./Setup" if you lack a cabal program. Or can be set to "stack"
BUILDER?=cabal
GHC?=ghc

PREFIX=/usr

build: Build/SysConfig.hs
	$(BUILDER) build $(BUILDEROPTIONS)
	if [ "$(BUILDER)" = stack ]; then \
		ln -sf $$(stack path --dist-dir)/build/git-repair/git-repair git-repair; \
	else \
		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

Build/SysConfig.hs: Build/TestConfig.hs Build/Configure.hs
	if [ "$(BUILDER)" = ./Setup ]; then ghc --make Setup; fi
	if [ "$(BUILDER)" = stack ]; then \
		$(BUILDER) build $(BUILDEROPTIONS); \
	else \
		$(BUILDER) configure --ghc-options="$(shell Build/collect-ghc-options.sh)"; \
	fi

install: build
	install -d $(DESTDIR)$(PREFIX)/bin
	install git-repair $(DESTDIR)$(PREFIX)/bin
	install -d $(DESTDIR)$(PREFIX)/share/man/man1
	install -m 0644 git-repair.1 $(DESTDIR)$(PREFIX)/share/man/man1

clean:
	rm -rf git-repair git-repair-test.log \
		dist dist-newstyle configure Build/SysConfig.hs Setup tags
	find . -name \*.o -exec rm {} \;
	find . -name \*.hi -exec rm {} \;

tags:
	hasktags . -c || true

.PHONY: tags