Makefile, util-src/Makefile: Add .PHONY, reorganise util-src/Makefile
[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 MAN = $(DESTDIR)$(PREFIX)/share/man
10
11 INSTALLEDSOURCE = $(PREFIX)/lib/prosody
12 INSTALLEDCONFIG = $(SYSCONFDIR)
13 INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules
14 INSTALLEDDATA = $(DATADIR)
15
16 .PHONY: all clean install
17
18 all: prosody.install prosodyctl.install prosody.cfg.lua.install prosody.version
19         $(MAKE) -C util-src install
20
21 install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
22         install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
23         install -m750 -d $(DATA)
24         install -d $(MAN)/man1
25         install -d $(CONFIG)/certs
26         install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
27         install -m755 ./prosody.install $(BIN)/prosody
28         install -m755 ./prosodyctl.install $(BIN)/prosodyctl
29         install -m644 core/* $(SOURCE)/core
30         install -m644 net/* $(SOURCE)/net
31         install -m644 util/*.lua $(SOURCE)/util
32         install -m644 util/*.so $(SOURCE)/util
33         install -d $(SOURCE)/util/sasl
34         install -m644 util/sasl/* $(SOURCE)/util/sasl
35         install -m644 plugins/*.lua $(MODULES)
36         install -d $(MODULES)/muc
37         install -m644 plugins/muc/* $(MODULES)/muc
38         install -m644 certs/* $(CONFIG)/certs
39         install -d $(MODULES)/adhoc
40         install -m644 plugins/adhoc/*.lua $(MODULES)/adhoc
41         install -m644 man/prosodyctl.man $(MAN)/man1/prosodyctl.1
42         test -e $(CONFIG)/prosody.cfg.lua || install -m644 prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
43         test -e prosody.version && install prosody.version $(SOURCE)/prosody.version || true
44         $(MAKE) install -C util-src
45
46 clean:
47         rm -f prosody.install
48         rm -f prosodyctl.install
49         rm -f prosody.cfg.lua.install
50         rm -f prosody.version
51         $(MAKE) clean -C util-src
52
53 util/encodings.so:
54         $(MAKE) install -C util-src
55
56 util/hashes.so:
57         $(MAKE) install -C util-src
58
59 util/pposix.so:
60         $(MAKE) install -C util-src
61
62 util/signal.so:
63         $(MAKE) install -C util-src
64
65 prosody.install: prosody
66         sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
67                 s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
68                 s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
69                 s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosody > prosody.install
70
71 prosodyctl.install: prosodyctl
72         sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
73                 s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
74                 s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
75                 s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosodyctl > prosodyctl.install
76
77 prosody.cfg.lua.install:
78         sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua.install
79
80 prosody.release:
81         test -e .hg/dirstate && hexdump -n6 -e'6/1 "%02x"' .hg/dirstate \
82             > prosody.version || true
83
84 prosody.version: prosody.release
85         cp prosody.release prosody.version || true