makefile
author Kim Alvefur <zash@zash.se>
Thu, 10 Jan 2019 14:57:26 +0100
changeset 9785 161411a41377
parent 9687 bf32f2282b18
child 10884 324c50ea0f1d
permissions -rw-r--r--
util.prosodyctl: Allow passing path to Lua runtime to the start() function By default the shebang is used. Being able to override it is useful in cases where the shebang does not match the configured runtime.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8596
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
include config.unix
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
BIN = $(DESTDIR)$(PREFIX)/bin
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
CONFIG = $(DESTDIR)$(SYSCONFDIR)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
MODULES = $(DESTDIR)$(LIBDIR)/prosody/modules
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
SOURCE = $(DESTDIR)$(LIBDIR)/prosody
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
DATA = $(DESTDIR)$(DATADIR)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
MAN = $(DESTDIR)$(PREFIX)/share/man
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
INSTALLEDSOURCE = $(LIBDIR)/prosody
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
INSTALLEDCONFIG = $(SYSCONFDIR)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
INSTALLEDMODULES = $(LIBDIR)/prosody/modules
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
INSTALLEDDATA = $(DATADIR)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
INSTALL=install -p
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
INSTALL_DATA=$(INSTALL) -m644
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
INSTALL_EXEC=$(INSTALL) -m755
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
MKDIR=install -d
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
MKDIR_PRIVATE=$(MKDIR) -m750
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
9686
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    22
LUACHECK=luacheck
9687
bf32f2282b18 makefile: Allow configuring path to busted (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 9686
diff changeset
    23
BUSTED=busted
9686
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    24
8596
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
.PHONY: all test clean install
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
all: prosody.install prosodyctl.install prosody.cfg.lua.install prosody.version
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
	$(MAKE) -C util-src install
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
.if $(EXCERTS) == "yes"
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
	$(MAKE) -C certs localhost.crt example.com.crt
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
.endif
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
	$(MKDIR) $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
	$(MKDIR_PRIVATE) $(DATA)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
	$(MKDIR) $(MAN)/man1
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
	$(MKDIR) $(CONFIG)/certs
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
	$(MKDIR) $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
	$(INSTALL_EXEC) ./prosody.install $(BIN)/prosody
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    40
	$(INSTALL_EXEC) ./prosodyctl.install $(BIN)/prosodyctl
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    41
	$(INSTALL_DATA) core/*.lua $(SOURCE)/core
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    42
	$(INSTALL_DATA) net/*.lua $(SOURCE)/net
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    43
	$(MKDIR) $(SOURCE)/net/http $(SOURCE)/net/resolvers $(SOURCE)/net/websocket
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    44
	$(INSTALL_DATA) net/http/*.lua $(SOURCE)/net/http
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    45
	$(INSTALL_DATA) net/resolvers/*.lua $(SOURCE)/net/resolvers
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    46
	$(INSTALL_DATA) net/websocket/*.lua $(SOURCE)/net/websocket
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    47
	$(INSTALL_DATA) util/*.lua $(SOURCE)/util
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    48
	$(INSTALL_DATA) util/*.so $(SOURCE)/util
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    49
	$(MKDIR) $(SOURCE)/util/sasl
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    50
	$(INSTALL_DATA) util/sasl/*.lua $(SOURCE)/util/sasl
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    51
	$(MKDIR) $(MODULES)/mod_s2s $(MODULES)/mod_pubsub $(MODULES)/adhoc $(MODULES)/muc $(MODULES)/mod_mam
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    52
	$(INSTALL_DATA) plugins/*.lua $(MODULES)
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    53
	$(INSTALL_DATA) plugins/mod_s2s/*.lua $(MODULES)/mod_s2s
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    54
	$(INSTALL_DATA) plugins/mod_pubsub/*.lua $(MODULES)/mod_pubsub
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    55
	$(INSTALL_DATA) plugins/adhoc/*.lua $(MODULES)/adhoc
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    56
	$(INSTALL_DATA) plugins/muc/*.lua $(MODULES)/muc
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    57
	$(INSTALL_DATA) plugins/mod_mam/*.lua $(MODULES)/mod_mam
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    58
.if $(EXCERTS) == "yes"
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    59
	$(INSTALL_DATA) certs/localhost.crt certs/localhost.key $(CONFIG)/certs
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    60
	$(INSTALL_DATA) certs/example.com.crt certs/example.com.key $(CONFIG)/certs
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    61
.endif
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    62
	$(INSTALL_DATA) man/prosodyctl.man $(MAN)/man1/prosodyctl.1
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    63
	test -f $(CONFIG)/prosody.cfg.lua || $(INSTALL_DATA) prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    64
	-test -f prosody.version && $(INSTALL_DATA) prosody.version $(SOURCE)/prosody.version
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    65
	$(MAKE) install -C util-src
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    66
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    67
clean:
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    68
	rm -f prosody.install
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    69
	rm -f prosodyctl.install
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    70
	rm -f prosody.cfg.lua.install
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    71
	rm -f prosody.version
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    72
	$(MAKE) clean -C util-src
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    73
9686
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    74
lint:
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    75
	$(LUACHECK) -q $$(HGPLAIN= hg files -I '**.lua') prosody prosodyctl
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    76
	@echo $$(sed -n '/^\tlocal exclude_files/,/^}/p;' .luacheckrc | sed '1d;$d' | wc -l) files ignored
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    77
	shellcheck configure
814a9d89d2bd makefile: Add lint target (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 8596
diff changeset
    78
8596
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    79
test:
9687
bf32f2282b18 makefile: Allow configuring path to busted (to match GNUMakefile)
Matthew Wild <mwild1@gmail.com>
parents: 9686
diff changeset
    80
	$(BUSTED) --lua=$(RUNWITH)
8596
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    81
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    82
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    83
prosody.install: prosody
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    84
	sed "1s| lua$$| $(RUNWITH)|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    85
		s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    86
		s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    87
		s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    88
		s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosody > $@
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    89
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    90
prosodyctl.install: prosodyctl
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    91
	sed "1s| lua$$| $(RUNWITH)|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    92
		s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    93
		s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    94
		s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    95
		s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < prosodyctl > $@
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    96
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    97
prosody.cfg.lua.install: prosody.cfg.lua.dist
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    98
	sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > $@
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    99
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   100
prosody.version:
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   101
	test -f prosody.release && \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   102
		cp prosody.release $@ || \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   103
		test -f .hg_archival.txt && \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   104
		sed -n 's/^node: \(............\).*/\1/p' .hg_archival.txt > $@ || \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   105
		test -f .hg/dirstate && \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   106
		hexdump -n6 -e'6/1 "%02x"' .hg/dirstate > $@ || \
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   107
		echo unknown > $@
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   108
c4222e36333c Add makefiles compatible with BSD make
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   109