aboutsummaryrefslogtreecommitdiffstats
path: root/GNUmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'GNUmakefile')
-rw-r--r--GNUmakefile73
1 files changed, 63 insertions, 10 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 6c134679..e9ec78c4 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -21,6 +21,7 @@ MKDIR_PRIVATE=$(MKDIR) -m750
LUACHECK=luacheck
BUSTED=busted
+SCANSION=scansion
.PHONY: all test coverage clean install
@@ -30,36 +31,64 @@ ifeq ($(EXCERTS),yes)
-$(MAKE) -C certs localhost.crt example.com.crt
endif
-install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
- $(MKDIR) $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
- $(MKDIR_PRIVATE) $(DATA)
- $(MKDIR) $(MAN)/man1
+install-etc: prosody.cfg.lua.install
+ $(MKDIR) $(CONFIG)
$(MKDIR) $(CONFIG)/certs
- $(MKDIR) $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
+ $(INSTALL_DATA) certs/* $(CONFIG)/certs
+ test -f $(CONFIG)/prosody.cfg.lua || $(INSTALL_DATA) prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
+
+install-bin: prosody.install prosodyctl.install
+ $(MKDIR) $(BIN)
$(INSTALL_EXEC) ./prosody.install $(BIN)/prosody
$(INSTALL_EXEC) ./prosodyctl.install $(BIN)/prosodyctl
+
+install-core:
+ $(MKDIR) $(SOURCE)
+ $(MKDIR) $(SOURCE)/core
$(INSTALL_DATA) core/*.lua $(SOURCE)/core
+
+install-net:
+ $(MKDIR) $(SOURCE)
+ $(MKDIR) $(SOURCE)/net
$(INSTALL_DATA) net/*.lua $(SOURCE)/net
$(MKDIR) $(SOURCE)/net/http $(SOURCE)/net/resolvers $(SOURCE)/net/websocket
$(INSTALL_DATA) net/http/*.lua $(SOURCE)/net/http
$(INSTALL_DATA) net/resolvers/*.lua $(SOURCE)/net/resolvers
$(INSTALL_DATA) net/websocket/*.lua $(SOURCE)/net/websocket
+
+install-util: util/encodings.so util/encodings.so util/pposix.so util/signal.so util/struct.so
+ $(MKDIR) $(SOURCE)
+ $(MKDIR) $(SOURCE)/util
$(INSTALL_DATA) util/*.lua $(SOURCE)/util
+ $(MAKE) install -C util-src
$(INSTALL_DATA) util/*.so $(SOURCE)/util
$(MKDIR) $(SOURCE)/util/sasl
$(INSTALL_DATA) util/sasl/*.lua $(SOURCE)/util/sasl
- $(MKDIR) $(MODULES)/mod_s2s $(MODULES)/mod_pubsub $(MODULES)/adhoc $(MODULES)/muc $(MODULES)/mod_mam
+ $(MKDIR) $(SOURCE)/util/human
+ $(INSTALL_DATA) util/human/*.lua $(SOURCE)/util/human
+ $(MKDIR) $(SOURCE)/util/prosodyctl
+ $(INSTALL_DATA) util/prosodyctl/*.lua $(SOURCE)/util/prosodyctl
+
+install-plugins:
+ $(MKDIR) $(MODULES)
+ $(MKDIR) $(MODULES)/mod_pubsub $(MODULES)/adhoc $(MODULES)/muc $(MODULES)/mod_mam
$(INSTALL_DATA) plugins/*.lua $(MODULES)
- $(INSTALL_DATA) plugins/mod_s2s/*.lua $(MODULES)/mod_s2s
$(INSTALL_DATA) plugins/mod_pubsub/*.lua $(MODULES)/mod_pubsub
$(INSTALL_DATA) plugins/adhoc/*.lua $(MODULES)/adhoc
$(INSTALL_DATA) plugins/muc/*.lua $(MODULES)/muc
$(INSTALL_DATA) plugins/mod_mam/*.lua $(MODULES)/mod_mam
- $(INSTALL_DATA) certs/* $(CONFIG)/certs
+
+install-man:
+ $(MKDIR) $(MAN)/man1
$(INSTALL_DATA) man/prosodyctl.man $(MAN)/man1/prosodyctl.1
- test -f $(CONFIG)/prosody.cfg.lua || $(INSTALL_DATA) prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
+
+install-meta:
-test -f prosody.version && $(INSTALL_DATA) prosody.version $(SOURCE)/prosody.version
- $(MAKE) install -C util-src
+
+install-data:
+ $(MKDIR_PRIVATE) $(DATA)
+
+install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data
clean:
rm -f prosody.install
@@ -71,6 +100,23 @@ clean:
test:
$(BUSTED) --lua=$(RUNWITH)
+test-%:
+ $(BUSTED) --lua=$(RUNWITH) -r $*
+
+integration-test: all
+ $(MKDIR) data
+ $(RUNWITH) prosodyctl --config ./spec/scansion/prosody.cfg.lua start
+ $(SCANSION) -d ./spec/scansion; R=$$? \
+ $(RUNWITH) prosodyctl --config ./spec/scansion/prosody.cfg.lua stop \
+ exit $$R
+
+integration-test-%: all
+ $(MKDIR) data
+ $(RUNWITH) prosodyctl --config ./spec/scansion/prosody.cfg.lua start
+ $(SCANSION) ./spec/scansion/$*.scs; R=$$? \
+ $(RUNWITH) prosodyctl --config ./spec/scansion/prosody.cfg.lua stop \
+ exit $$R
+
coverage:
-rm -- luacov.*
$(BUSTED) --lua=$(RUNWITH) -c
@@ -84,6 +130,13 @@ lint:
@echo $$(sed -n '/^\tlocal exclude_files/,/^}/p;' .luacheckrc | sed '1d;$d' | wc -l) files ignored
shellcheck configure
+vpath %.tl teal-src/
+%.lua: %.tl
+ tl -I teal-src/ --gen-compat off --gen-target 5.1 gen $^ -o $@
+ -lua-format -i $@
+
+teal: util/jsonschema.lua util/datamapper.lua util/jsonpointer.lua
+
util/%.so:
$(MAKE) install -C util-src