Makefile: Experimental support for recording the version of an installed Prosody
[prosody.git] / Makefile
1
2 include config.unix
3
4 BIN = $(DESTDIR)$(PREFIX)/bin
5 CONFIG = $(DESTDIR)$(SYSCONFDIR)
6 MODULES = $(DESTDIR)$(PREFIX)/lib/prosody/modules
7 SOURCE = $(DESTDIR)$(PREFIX)/lib/prosody
8 DATA = $(DESTDIR)$(DATADIR)
9
10 INSTALLEDSOURCE = $(PREFIX)/lib/prosody
11 INSTALLEDCONFIG = $(SYSCONFDIR)
12 INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules
13 INSTALLEDDATA = $(DATADIR)
14
15 all: prosody.install prosodyctl.install prosody.cfg.lua.install prosody.version
16         $(MAKE) -C util-src install
17
18 install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
19         install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
20         install -m750 -d $(DATA)
21         install -d $(CONFIG)/certs
22         install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
23         install -m755 ./prosody.install $(BIN)/prosody
24         install -m755 ./prosodyctl.install $(BIN)/prosodyctl
25         install -m644 core/* $(SOURCE)/core
26         install -m644 net/* $(SOURCE)/net
27         install -m644 util/* $(SOURCE)/util
28         install -m644 plugins/* $(MODULES)
29         install -m644 certs/* $(CONFIG)/certs
30         install -m644 plugins/* $(MODULES)
31         test -e $(CONFIG)/prosody.cfg.lua || install -m644 prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
32         test -e prosody.version && install prosody.version $(SOURCE)/prosody.version || true
33         $(MAKE) install -C util-src
34
35 clean:
36         rm -f prosody.install
37         rm -f prosodyctl.install
38         rm -f prosody.cfg.lua.install
39         rm -f prosody.version
40         $(MAKE) clean -C util-src
41
42 util/encodings.so:
43         $(MAKE) install -C util-src
44
45 util/hashes.so:
46         $(MAKE) install -C util-src
47
48 util/pposix.so:
49         $(MAKE) install -C util-src
50
51 util/signal.so:
52         $(MAKE) install -C util-src
53
54 prosody.install: prosody
55         sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
56                 s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
57                 s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
58                 s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosody > prosody.install
59
60 prosodyctl.install: prosodyctl
61         sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
62                 s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
63                 s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
64                 s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosodyctl > prosodyctl.install
65
66 prosody.cfg.lua.install:
67         sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua.install
68
69 prosody.release:
70         test -e .hg/dirstate && hexdump -n6 -e'6/1 "%01x"' .hg/dirstate \
71             > prosody.version || true
72
73 prosody.version: prosody.release
74         cp prosody.release prosody.version || true