]> woffs.de Git - fd/haskell-amqp-utils.git/blob - Makefile
WiP rabbit hole
[fd/haskell-amqp-utils.git] / Makefile
1 # SPDX-FileCopyrightText: 2022 Frank Doepper
2 #
3 # SPDX-License-Identifier: GPL-3.0-only
4
5 DESTDIR=
6 pfx = /usr/local
7 flavour = $(shell if stack --version >/dev/null 2>&1; then echo stack; elif cabal --version >/dev/null 2>&1; then echo cabal; else echo simple; fi)
8 parallel = $(filter -j%, $(MAKEFLAGS))
9 nix = $(if $(findstring nix,$(shell realpath `which stack`)),--nix,)
10
11 build: build-$(flavour)
12         $(MAKE) -C doc DESTDIR=$(DESTDIR) pfx=$(pfx) build
13
14 install: install-$(flavour) install-common
15
16 build-stack:
17         stack $(nix) setup
18         stack $(nix) build
19
20 install-stack: build-stack
21         install -d -m755 $(DESTDIR)$(pfx)/bin
22         stack $(nix) --local-bin-path $(DESTDIR)$(pfx)/bin/ install
23
24 install-common:
25         install -d -m755 $(DESTDIR)$(pfx)/lib/haskell-amqp-utils
26         install -m755 callback $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/
27         install -m644 callback.config.sh $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/
28         $(MAKE) -C doc DESTDIR=$(DESTDIR) pfx=$(pfx) install
29
30 build-cabal:
31         cabal update
32         cabal install --only-dependencies $(CONSTRAINTS)
33         cabal configure
34         cabal build $(parallel)
35         cabal test
36
37 install-cabal: build-cabal
38         cabal install --prefix=$(DESTDIR)$(pfx)
39
40 build-simple: Setup
41         ./Setup configure --prefix=$(pfx)
42         ./Setup build $(parallel)
43
44 install-simple: build-simple
45         ./Setup copy --destdir=$(DESTDIR)
46
47 all:    $(subst .hs,,$(wildcard *.hs))
48
49 Setup:  Setup.hs
50         ghc $<
51         rm -f [email protected] [email protected]
52
53 README.md:
54         $(MAKE) -C doc ../README.md
55
56 clean:
57         rm -f Network/AMQP/Utils/*.hi Network/AMQP/Utils/*.o *.hi *.o $(subst .hs,,$(wildcard *.hs))
58         rm -rf dist
59         $(MAKE) -C doc $@
60
61 uninstall:
62         rm -f $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/callback
63         rm -f $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/callback.config.sh
64         rm -f $(DESTDIR)$(pfx)/bin/konsum
65         rm -f $(DESTDIR)$(pfx)/bin/agitprop
66         rm -f $(DESTDIR)$(pfx)/bin/arbeite
67         rm -f $(DESTDIR)$(pfx)/bin/plane
68         -rmdir $(DESTDIR)$(pfx)/lib/haskell-amqp-utils