]> woffs.de Git - fd/haskell-amqp-utils.git/blob - Makefile
manpages
[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 install: install-$(flavour) install-common
13
14 build-stack:
15         stack $(nix) setup
16         stack $(nix) build
17
18 install-stack: build-stack
19         install -d -m755 $(DESTDIR)$(pfx)/bin
20         stack $(nix) --local-bin-path $(DESTDIR)$(pfx)/bin/ install
21
22 install-common:
23         install -d -m755 $(DESTDIR)$(pfx)/lib/haskell-amqp-utils
24         install -m755 callback $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/
25         install -m644 callback.config.sh $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/
26
27 build-cabal:
28         cabal update
29         cabal install --only-dependencies $(CONSTRAINTS)
30         cabal configure
31         cabal build $(parallel)
32         cabal test
33
34 install-cabal: build-cabal
35         cabal install --prefix=$(DESTDIR)$(pfx)
36
37 build-simple: Setup
38         ./Setup configure --prefix=$(pfx)
39         ./Setup build $(parallel)
40
41 install-simple: build-simple
42         ./Setup copy --destdir=$(DESTDIR)
43
44 all:    $(subst .hs,,$(wildcard *.hs))
45
46 Setup:  Setup.hs
47         ghc $<
48         rm -f [email protected] [email protected]
49
50 clean:
51         rm -f Network/AMQP/Utils/*.hi Network/AMQP/Utils/*.o *.hi *.o $(subst .hs,,$(wildcard *.hs))
52         rm -rf dist
53
54 uninstall:
55         rm -f $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/callback
56         rm -f $(DESTDIR)$(pfx)/lib/haskell-amqp-utils/callback.config.sh
57         rm -f $(DESTDIR)$(pfx)/bin/konsum
58         rm -f $(DESTDIR)$(pfx)/bin/agitprop
59         rm -f $(DESTDIR)$(pfx)/bin/arbeite
60         rm -f $(DESTDIR)$(pfx)/bin/plane
61         -rmdir $(DESTDIR)$(pfx)/lib/haskell-amqp-utils