Makefile: Experimental support for recording the version of an installed Prosody
[prosody.git] / Makefile
index 80b1c25a54b81b5f10e0ebade554a18f76d2a736..93549243b3f1f5fa4c377539c22cc024ab5e411b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,14 +12,16 @@ INSTALLEDCONFIG = $(SYSCONFDIR)
 INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules
 INSTALLEDDATA = $(DATADIR)
 
-all: prosody.install prosody.cfg.lua.install
-       $(MAKE) all -C util-src
+all: prosody.install prosodyctl.install prosody.cfg.lua.install prosody.version
+       $(MAKE) -C util-src install
 
-install: prosody.install prosody.cfg.lua.install util/encodings.so util/encodings.so
-       install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) $(DATA)
+install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
+       install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
+       install -m750 -d $(DATA)
        install -d $(CONFIG)/certs
        install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
-       install ./prosody.install $(BIN)/prosody
+       install -m755 ./prosody.install $(BIN)/prosody
+       install -m755 ./prosodyctl.install $(BIN)/prosodyctl
        install -m644 core/* $(SOURCE)/core
        install -m644 net/* $(SOURCE)/net
        install -m644 util/* $(SOURCE)/util
@@ -27,11 +29,14 @@ install: prosody.install prosody.cfg.lua.install util/encodings.so util/encoding
        install -m644 certs/* $(CONFIG)/certs
        install -m644 plugins/* $(MODULES)
        test -e $(CONFIG)/prosody.cfg.lua || install -m644 prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
+       test -e prosody.version && install prosody.version $(SOURCE)/prosody.version || true
        $(MAKE) install -C util-src
 
 clean:
        rm -f prosody.install
+       rm -f prosodyctl.install
        rm -f prosody.cfg.lua.install
+       rm -f prosody.version
        $(MAKE) clean -C util-src
 
 util/encodings.so:
@@ -40,14 +45,30 @@ util/encodings.so:
 util/hashes.so:
        $(MAKE) install -C util-src
 
+util/pposix.so:
+       $(MAKE) install -C util-src
+
+util/signal.so:
+       $(MAKE) install -C util-src
+
 prosody.install: prosody
-       cp prosody prosody.install
-       sed -i "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|;" prosody.install
-       sed -i "s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|;" prosody.install
-       sed -i "s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|;" prosody.install
-       # The trailing slash is intentional in this one
-       sed -i "s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" prosody.install
+       sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
+               s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
+               s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
+               s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosody > prosody.install
+
+prosodyctl.install: prosodyctl
+       sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
+               s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
+               s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
+               s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosodyctl > prosodyctl.install
 
 prosody.cfg.lua.install:
        sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua.install
 
+prosody.release:
+       test -e .hg/dirstate && hexdump -n6 -e'6/1 "%01x"' .hg/dirstate \
+           > prosody.version || true
+
+prosody.version: prosody.release
+       cp prosody.release prosody.version || true