Annotate

GNUmakefile @ 8782:daa518a22c34

GNUMakefile: Add note about how to list coverage of individual files
author Matthew Wild <mwild1@gmail.com>
date Mon, 30 Apr 2018 18:08:09 +0100
parent 8612:1f2fb8070c7c
child 8798:505722879b55
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
463
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 include config.unix
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 BIN = $(DESTDIR)$(PREFIX)/bin
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 CONFIG = $(DESTDIR)$(SYSCONFDIR)
6574
cd0088c73daf configure, Makefile: Add --libdir option to ./configure, allowing you to override the $PREFIX/lib/ default. Fixes #470.
Matthew Wild <mwild1@gmail.com>
parents: 6044
diff changeset
6 MODULES = $(DESTDIR)$(LIBDIR)/prosody/modules
cd0088c73daf configure, Makefile: Add --libdir option to ./configure, allowing you to override the $PREFIX/lib/ default. Fixes #470.
Matthew Wild <mwild1@gmail.com>
parents: 6044
diff changeset
7 SOURCE = $(DESTDIR)$(LIBDIR)/prosody
503
00702b66beb1 Makefile fix for creating datadir in correct place on install
Matthew Wild <mwild1@gmail.com>
parents: 502
diff changeset
8 DATA = $(DESTDIR)$(DATADIR)
1464
047ed6e52a41 Added man page for prosodyctl
Dwayne Bent <dbb.0@liqd.org>
parents: 1454
diff changeset
9 MAN = $(DESTDIR)$(PREFIX)/share/man
502
21dc299387a6 Installation improvements (auto-creation of data directories)
Matthew Wild <mwild1@gmail.com>
parents: 501
diff changeset
10
6574
cd0088c73daf configure, Makefile: Add --libdir option to ./configure, allowing you to override the $PREFIX/lib/ default. Fixes #470.
Matthew Wild <mwild1@gmail.com>
parents: 6044
diff changeset
11 INSTALLEDSOURCE = $(LIBDIR)/prosody
480
5d00d623904e Update Makefile to set correct paths on install with Debian package
Matthew Wild <mwild1@gmail.com>
parents: 467
diff changeset
12 INSTALLEDCONFIG = $(SYSCONFDIR)
6574
cd0088c73daf configure, Makefile: Add --libdir option to ./configure, allowing you to override the $PREFIX/lib/ default. Fixes #470.
Matthew Wild <mwild1@gmail.com>
parents: 6044
diff changeset
13 INSTALLEDMODULES = $(LIBDIR)/prosody/modules
502
21dc299387a6 Installation improvements (auto-creation of data directories)
Matthew Wild <mwild1@gmail.com>
parents: 501
diff changeset
14 INSTALLEDDATA = $(DATADIR)
480
5d00d623904e Update Makefile to set correct paths on install with Debian package
Matthew Wild <mwild1@gmail.com>
parents: 467
diff changeset
15
7683
7356bf4425f4 Makefile: Preserve timestamps of installed files (fixes #547)
Kim Alvefur <zash@zash.se>
parents: 7682
diff changeset
16 INSTALL=install -p
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
17 INSTALL_DATA=$(INSTALL) -m644
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
18 INSTALL_EXEC=$(INSTALL) -m755
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
19 MKDIR=install -d
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
20 MKDIR_PRIVATE=$(MKDIR) -m750
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
21
8612
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
22 .PHONY: all test coverage clean install
4396
03b59a511671 Makefile, util-src/Makefile: Add .PHONY, reorganise util-src/Makefile
Matthew Wild <mwild1@gmail.com>
parents: 3266
diff changeset
23
1310
b5a7a9fc9161 Makefile: Experimental support for recording the version of an installed Prosody
Matthew Wild <mwild1@gmail.com>
parents: 1300
diff changeset
24 all: prosody.install prosodyctl.install prosody.cfg.lua.install prosody.version
586
b828d7d47973 Add posix support library, and adjust makefiles for it
Matthew Wild <mwild1@gmail.com>
parents: 514
diff changeset
25 $(MAKE) -C util-src install
5933
56b1f151f4a3 Makefile, configure: Add option for disabling generation of example certificates
Kim Alvefur <zash@zash.se>
parents: 5924
diff changeset
26 ifeq ($(EXCERTS),yes)
6885
07078f762061 Makefile: Use hypen to tell Make when to ignore errors
Kim Alvefur <zash@zash.se>
parents: 6884
diff changeset
27 -$(MAKE) -C certs localhost.crt example.com.crt
5933
56b1f151f4a3 Makefile, configure: Add option for disabling generation of example certificates
Kim Alvefur <zash@zash.se>
parents: 5924
diff changeset
28 endif
463
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
1090
e47310ca513b Makefile: Process and install prosodyctl
Matthew Wild <mwild1@gmail.com>
parents: 993
diff changeset
30 install: prosody.install prosodyctl.install prosody.cfg.lua.install util/encodings.so util/encodings.so util/pposix.so util/signal.so
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
31 $(MKDIR) $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
32 $(MKDIR_PRIVATE) $(DATA)
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
33 $(MKDIR) $(MAN)/man1
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
34 $(MKDIR) $(CONFIG)/certs
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
35 $(MKDIR) $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
36 $(INSTALL_EXEC) ./prosody.install $(BIN)/prosody
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
37 $(INSTALL_EXEC) ./prosodyctl.install $(BIN)/prosodyctl
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
38 $(INSTALL_DATA) core/*.lua $(SOURCE)/core
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
39 $(INSTALL_DATA) net/*.lua $(SOURCE)/net
8554
12a68e0d0ecf Makefile: Also package /net/resolvers
Michel Le Bihan <michel@lebihan.pl>
parents: 8346
diff changeset
40 $(MKDIR) $(SOURCE)/net/http $(SOURCE)/net/resolvers $(SOURCE)/net/websocket
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
41 $(INSTALL_DATA) net/http/*.lua $(SOURCE)/net/http
8554
12a68e0d0ecf Makefile: Also package /net/resolvers
Michel Le Bihan <michel@lebihan.pl>
parents: 8346
diff changeset
42 $(INSTALL_DATA) net/resolvers/*.lua $(SOURCE)/net/resolvers
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
43 $(INSTALL_DATA) net/websocket/*.lua $(SOURCE)/net/websocket
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
44 $(INSTALL_DATA) util/*.lua $(SOURCE)/util
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
45 $(INSTALL_DATA) util/*.so $(SOURCE)/util
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
46 $(MKDIR) $(SOURCE)/util/sasl
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
47 $(INSTALL_DATA) util/sasl/*.lua $(SOURCE)/util/sasl
7879
5d0175d3ecf4 Makefile: Install mod_mam (fixes #825)
Kim Alvefur <zash@zash.se>
parents: 7790
diff changeset
48 $(MKDIR) $(MODULES)/mod_s2s $(MODULES)/mod_pubsub $(MODULES)/adhoc $(MODULES)/muc $(MODULES)/mod_mam
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
49 $(INSTALL_DATA) plugins/*.lua $(MODULES)
7689
97c013e8f002 Makefile: Fix installing modules into their correct subdirectories (thanks mimi89999)
Kim Alvefur <zash@zash.se>
parents: 7683
diff changeset
50 $(INSTALL_DATA) plugins/mod_s2s/*.lua $(MODULES)/mod_s2s
97c013e8f002 Makefile: Fix installing modules into their correct subdirectories (thanks mimi89999)
Kim Alvefur <zash@zash.se>
parents: 7683
diff changeset
51 $(INSTALL_DATA) plugins/mod_pubsub/*.lua $(MODULES)/mod_pubsub
97c013e8f002 Makefile: Fix installing modules into their correct subdirectories (thanks mimi89999)
Kim Alvefur <zash@zash.se>
parents: 7683
diff changeset
52 $(INSTALL_DATA) plugins/adhoc/*.lua $(MODULES)/adhoc
97c013e8f002 Makefile: Fix installing modules into their correct subdirectories (thanks mimi89999)
Kim Alvefur <zash@zash.se>
parents: 7683
diff changeset
53 $(INSTALL_DATA) plugins/muc/*.lua $(MODULES)/muc
7879
5d0175d3ecf4 Makefile: Install mod_mam (fixes #825)
Kim Alvefur <zash@zash.se>
parents: 7790
diff changeset
54 $(INSTALL_DATA) plugins/mod_mam/*.lua $(MODULES)/mod_mam
7682
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
55 $(INSTALL_DATA) certs/* $(CONFIG)/certs
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
56 $(INSTALL_DATA) man/prosodyctl.man $(MAN)/man1/prosodyctl.1
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
57 test -f $(CONFIG)/prosody.cfg.lua || $(INSTALL_DATA) prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
e07116c0df77 Makefile: Refactor all uses of the install command with variables, allowing them to be overridden
Kim Alvefur <zash@zash.se>
parents: 7681
diff changeset
58 -test -f prosody.version && $(INSTALL_DATA) prosody.version $(SOURCE)/prosody.version
463
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 $(MAKE) install -C util-src
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 clean:
467
66f145f5c932 Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents: 465
diff changeset
62 rm -f prosody.install
1090
e47310ca513b Makefile: Process and install prosodyctl
Matthew Wild <mwild1@gmail.com>
parents: 993
diff changeset
63 rm -f prosodyctl.install
492
279f64370885 Don't write to prosody.cfg.lua from Makefile. Much apologies to poor albert :(
Matthew Wild <mwild1@gmail.com>
parents: 481
diff changeset
64 rm -f prosody.cfg.lua.install
1310
b5a7a9fc9161 Makefile: Experimental support for recording the version of an installed Prosody
Matthew Wild <mwild1@gmail.com>
parents: 1300
diff changeset
65 rm -f prosody.version
463
a2452d3bd828 Add a top-level Makefile and ./configure script. Update util-src Makefile for this.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 $(MAKE) clean -C util-src
464
f1827353fd58 More Makefile improvements
Matthew Wild <mwild1@gmail.com>
parents: 463
diff changeset
67
7071
d9e620adfb64 Makefile: Add 'test' target that runs tests
Kim Alvefur <zash@zash.se>
parents: 6907
diff changeset
68 test:
8346
a567a646cf21 Makefile: Tell busted to use the configured Lua version (or C modules won't load)
Kim Alvefur <zash@zash.se>
parents: 8238
diff changeset
69 busted --lua=$(RUNWITH)
7071
d9e620adfb64 Makefile: Add 'test' target that runs tests
Kim Alvefur <zash@zash.se>
parents: 6907
diff changeset
70
8612
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
71 coverage:
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
72 -rm -- luacov.*
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
73 busted --lua=$(RUNWITH) -c
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
74 luacov
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
75 luacov-console
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
76 luacov-console -s
8782
daa518a22c34 GNUMakefile: Add note about how to list coverage of individual files
Matthew Wild <mwild1@gmail.com>
parents: 8612
diff changeset
77 @echo "To inspect individual files run: luacov-console -l FILENAME"
8612
1f2fb8070c7c GNUMakefile: Add 'coverage' target (requires luacov and luacov-console)
Matthew Wild <mwild1@gmail.com>
parents: 8592
diff changeset
78
4402
05f8826972ba Makefile: Merge identical rules and some other improvements.
Kim Alvefur <zash@zash.se>
parents: 4396
diff changeset
79 util/%.so:
464
f1827353fd58 More Makefile improvements
Matthew Wild <mwild1@gmail.com>
parents: 463
diff changeset
80 $(MAKE) install -C util-src
467
66f145f5c932 Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents: 465
diff changeset
81
4402
05f8826972ba Makefile: Merge identical rules and some other improvements.
Kim Alvefur <zash@zash.se>
parents: 4396
diff changeset
82 %.install: %
6044
1ce05d38d1bb Makefile: Change sed regex to be compatible with FreeBSD's odd sed, and change / to | to allow paths to be used in RUNWITH (thanks Ben)
Matthew Wild <mwild1@gmail.com>
parents: 5933
diff changeset
83 sed "1s| lua$$| $(RUNWITH)|; \
5145
53f741a5a73a configure, Makefile: Allow runtime to be overridden.
Kim Alvefur <zash@zash.se>
parents: 4686
diff changeset
84 s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
514
03d7da01843e Change sed usage back into one sed script for incompetent versions of sed
Matthew Wild <mwild1@gmail.com>
parents: 512
diff changeset
85 s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|; \
03d7da01843e Change sed usage back into one sed script for incompetent versions of sed
Matthew Wild <mwild1@gmail.com>
parents: 512
diff changeset
86 s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|; \
4402
05f8826972ba Makefile: Merge identical rules and some other improvements.
Kim Alvefur <zash@zash.se>
parents: 4396
diff changeset
87 s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" < $^ > $@
467
66f145f5c932 Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents: 465
diff changeset
88
4402
05f8826972ba Makefile: Merge identical rules and some other improvements.
Kim Alvefur <zash@zash.se>
parents: 4396
diff changeset
89 prosody.cfg.lua.install: prosody.cfg.lua.dist
05f8826972ba Makefile: Merge identical rules and some other improvements.
Kim Alvefur <zash@zash.se>
parents: 4396
diff changeset
90 sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' $^ > $@
1090
e47310ca513b Makefile: Process and install prosodyctl
Matthew Wild <mwild1@gmail.com>
parents: 993
diff changeset
91
6883
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
92 %.version: %.release
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
93 cp $^ $@
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
94
6884
e32275ed5632 Makefile: Support generating prosody.version from hg archive metadata file
Kim Alvefur <zash@zash.se>
parents: 6883
diff changeset
95 %.version: .hg_archival.txt
e32275ed5632 Makefile: Support generating prosody.version from hg archive metadata file
Kim Alvefur <zash@zash.se>
parents: 6883
diff changeset
96 sed -n 's/^node: \(............\).*/\1/p' $^ > $@
e32275ed5632 Makefile: Support generating prosody.version from hg archive metadata file
Kim Alvefur <zash@zash.se>
parents: 6883
diff changeset
97
6883
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
98 %.version: .hg/dirstate
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
99 hexdump -n6 -e'6/1 "%02x"' $^ > $@
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
100
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
101 %.version:
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
102 echo unknown > $@
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
103
954a8a8c46d6 Makefile: Simplify generation of prosody.version using magic Make magic
Kim Alvefur <zash@zash.se>
parents: 6840
diff changeset
104