Makefile.am 7.9 KB
Newer Older
1
2
# $Id$

3
# Sympa - SYsteme de Multi-Postage Automatique
4
5
6
7
#
# Copyright (c) 1997, 1998, 1999 Institut Pasteur & Christophe Wolfhugel
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
8
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
9
10
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
11
# <https://github.com/sympa-community/sympa.git>.
12
13
14
15
16
17
18
19
20
21
22
23
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
24
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
25

26
SUBDIRS = src default doc po www
27

28
check_SCRIPTS = \
29
	t/01_Conf.t \
IKEDA Soji's avatar
IKEDA Soji committed
30
	t/Config_XML.t \
31
	t/DataSource_LDAP2.t \
IKEDA Soji's avatar
IKEDA Soji committed
32
33
	t/DatabaseManager.t \
	t/Database_LDAP.t \
34
35
	t/Language.t \
	t/LockedFile.t \
IKEDA Soji's avatar
IKEDA Soji committed
36
	t/Message_smime.t \
IKEDA Soji's avatar
IKEDA Soji committed
37
	t/Message_urlize.t \
38
	t/Regexps.t \
IKEDA Soji's avatar
IKEDA Soji committed
39
	t/Request_Handler_add+del.t \
IKEDA Soji's avatar
IKEDA Soji committed
40
	t/Scenario.t \
IKEDA Soji's avatar
IKEDA Soji committed
41
42
	t/Tools_Data.t \
	t/Tools_File.t \
43
	t/Tools_Password.t \
44
	t/Tools_SMIME.t \
45
	t/Tools_Text.t \
IKEDA Soji's avatar
IKEDA Soji committed
46
	t/Tools_Time.t \
47
	t/WWW_Tools.t \
48
	t/compile_executables.t \
IKEDA Soji's avatar
IKEDA Soji committed
49
	t/compile_modules.t \
50
	t/compile_scenarios.t \
51
	t/parse_templates.t \
IKEDA Soji's avatar
IKEDA Soji committed
52
	t/pod-syntax.t
53
check_DATA = \
IKEDA Soji's avatar
IKEDA Soji committed
54
	src/lib/Sympa/Test/MockLDAP.pm \
IKEDA Soji's avatar
IKEDA Soji committed
55
56
57
58
	t/data/list_data/test/config \
	t/data/sympa.conf \
	t/data/sympa.sqlite \
	t/data/etc/auth.conf \
59
60
61
62
63
64
65
66
67
68
	t/locale/cs/LC_MESSAGES/sympa.mo \
	t/locale/cs/LC_MESSAGES/web_help.mo \
	t/locale/zh_TW/LC_MESSAGES/sympa.mo \
	t/pki/cnf/ca.cnf \
	t/pki/cnf/rousse.cnf \
	t/pki/crt/ca.pem \
	t/pki/crt/rousse.pem \
	t/pki/key/ca.pem \
	t/pki/key/rousse_nopassword.pem \
	t/pki/key/rousse_password.pem \
IKEDA Soji's avatar
IKEDA Soji committed
69
70
71
72
73
74
75
76
	t/samples/urlize-deep-nested-mixed.eml \
	t/samples/urlize-encoding.eml \
	t/samples/urlize-nested-alternative-and-related.eml \
	t/samples/urlize-nested-alternative.eml \
	t/samples/urlize-nested-mixed.eml \
	t/samples/urlize-nested-mutiple-attachments.eml \
	t/samples/urlize-simple-mutiple-attachments.eml \
	t/samples/urlize-simple.eml \
IKEDA Soji's avatar
IKEDA Soji committed
77
78
	t/samples/signed.eml \
	t/samples/unsigned.eml \
79
80
	t/stub/Sympa/Constants.pm \
	xt/perlcriticrc
81
noinst_SCRIPTS = \
82
	xt/critic.t \
83
84
	xt/fixme.t \
	xt/fixme-todo.t \
85
	xt/pod-coverage.t \
86
87
	xt/pod-spelling.t \
	xt/perltidy.t
IKEDA Soji's avatar
IKEDA Soji committed
88
89
nobase_modules_DATA = \
	cpanfile
90
91

EXTRA_DIST = \
92
	AUTHORS.md \
IKEDA Soji's avatar
IKEDA Soji committed
93
	CONTRIBUTING.md \
94
	INSTALL.md \
95
96
97
	NEWS.md \
	OChangeLog \
	ONEWS \
98
	README.md \
99
100
	etc_README \
	$(check_SCRIPTS) $(check_DATA) \
IKEDA Soji's avatar
IKEDA Soji committed
101
102
	$(noinst_SCRIPTS) \
	$(nobase_modules_DATA)
103

IKEDA Soji's avatar
IKEDA Soji committed
104
105
CLEANFILES = \
	sympa.conf-dist
106

107
108
109
110
MSGFMT=@MSGFMT@
.po.mo:
	$(MSGFMT) -o $@ $<

IKEDA Soji's avatar
IKEDA Soji committed
111
# Skip this with "make distcheck"
112
check-local: $(check_DATA)
IKEDA Soji's avatar
IKEDA Soji committed
113
114
115
116
117
	if test -d t; then \
		[ -z "$(TEST_FILES)" ] && TEST_FILES="$(check_SCRIPTS)"; \
		PERL5LIB=src/lib; export PERL5LIB; \
		$(PERL) -MTest::Harness -e 'runtests @ARGV' $$TEST_FILES; \
	fi
118

119
authorcheck:
120
	[ -z "$(TEST_FILES)" ] && TEST_FILES="$(noinst_SCRIPTS)"; \
121
	PERL5LIB=src/lib; export PERL5LIB; \
122
	$(PERL) -MTest::Harness -e 'runtests @ARGV' $$TEST_FILES
123

124
install-data-hook: installdir installconfig nextstep
root's avatar
root committed
125

126
installdir:
127
128
129
130
	@echo "Creating plugin directory"
	@for dir in $(modulesdir)/Sympa/Template/Plugin; do \
		if [ ! -d $(DESTDIR)$$dir ] ; then \
			echo "Creating $(DESTDIR)$$dir"; \
131
			$(INSTALL) -d -m 755 $(DESTDIR)$$dir; \
132
133
		fi; \
	done
134
	@echo "Creating writable directories"
135
	-@for dir in $(expldir) $(spooldir) $(bouncedir) $(arcdir) $(piddir) \
136
		$(confdir) $(sysconfdir); do \
137
138
		if [ ! -d $(DESTDIR)$$dir ] ; then \
			echo "Creating $(DESTDIR)$$dir"; \
139
			$(INSTALL) -d -m 755 $(DESTDIR)$$dir; \
140
		fi; \
141
142
		chown $(USER) $(DESTDIR)$$dir; \
		chgrp $(GROUP) $(DESTDIR)$$dir; \
143
	done
144
145
146
147
148
149
150
151
	-@for subdir in automatic bounce msg task tmp; do \
		if [ ! -d $(DESTDIR)$(spooldir)/$$subdir ] ; then \
			echo "Creating $(DESTDIR)$(spooldir)/$$subdir"; \
			$(INSTALL) -d -m 750 $(DESTDIR)$(spooldir)/$$subdir; \
		fi; \
		chown $(USER) $(DESTDIR)$(spooldir)/$$subdir; \
		chgrp $(GROUP) $(DESTDIR)$(spooldir)/$$subdir; \
	done
152

153
installconfig: installdir
154
	@echo "Installing basic configuration ..."
155
156
157
	-@if [ ! -f  $(DESTDIR)$(confdir)/sympa.conf ]; then \
		echo "installing sympa.conf"; \
		$(INSTALL) -m 640 sympa.conf $(DESTDIR)$(confdir); \
158
159
160
		chown $(USER) $(DESTDIR)$(confdir)/sympa.conf; \
		chgrp $(GROUP) $(DESTDIR)$(confdir)/sympa.conf; \
	fi
161
162
	@echo "Installing configuration template ..."
	-@echo "installing sympa.conf-dist"; \
163
164
	$(INSTALL) -m 644 -T sympa.conf-dist $(DESTDIR)$(confdir)/sympa.conf-dist; \
	chown $(USER) $(DESTDIR)$(confdir)/sympa.conf-dist; \
165
	chgrp $(GROUP) $(DESTDIR)$(confdir)/sympa.conf-dist
166
	-@if [ ! -f $(DESTDIR)$(sysconfdir)/data_structure.version ]; then \
167
		cd $(DESTDIR)$(sysconfdir); \
168
169
170
		echo "# automatically created file" >> data_structure.version; \
		echo "# you should not modify it" >> data_structure.version; \
		echo $(VERSION) >> data_structure.version; \
171
172
		chown $(USER) data_structure.version; \
		chgrp $(GROUP) data_structure.version; \
sympa-authors's avatar
sympa-authors committed
173
	fi
174
	-@for dir in create_list_templates custom_actions custom_conditions \
175
		data_sources families tasks \
176
		mail_tt2 scenari search_filters web_tt2; do \
177
178
		if [ ! -d $(DESTDIR)$(sysconfdir)/$$dir ] ; then \
			echo "Creating $(DESTDIR)$(sysconfdir)/$$dir"; \
179
			$(INSTALL) -d -m 755 $(DESTDIR)$(sysconfdir)/$$dir; \
180
		fi; \
181
182
		chown $(USER) $(DESTDIR)$(sysconfdir)/$$dir; \
		chgrp $(GROUP) $(DESTDIR)$(sysconfdir)/$$dir; \
183
184
185
186
187
188
	done
	@if [ ! -e $(DESTDIR)$(sysconfdir)/README ]; then \
		echo "Creating $(DESTDIR)$(sysconfdir)/README"; \
		$(SED) \
			-e 's|--sysconfdir--|$(sysconfdir)|' \
			-e 's|--defaultdir--|$(defaultdir)|' \
IKEDA Soji's avatar
IKEDA Soji committed
189
			$(srcdir)/etc_README > $(DESTDIR)$(sysconfdir)/README; \
190
		chmod 644 $(DESTDIR)$(sysconfdir)/README; \
191
	fi
sympa-authors's avatar
sympa-authors committed
192

olivier.salaun's avatar
olivier.salaun committed
193
nextstep: 
194
195
	@echo ""
	@echo "** You can find documentation at:"
IKEDA Soji's avatar
IKEDA Soji committed
196
	@echo "** https://sympa-community.github.io/manual/"
olivier.salaun's avatar
olivier.salaun committed
197
198
	@echo ""
	@echo "#########################################################"
199
	@echo "# CHECK YOU HAVE ALL THE NEEDED MODULES:"
200
201
	@echo "#    * Install or upgrade required perl modules. If you have cpanminus:"
	@echo "#        cpanm --installdeps --with-recommends ."
202
	@echo "#"
203
	@echo "# FIRST INSTALLATION:"
204
205
	@echo "#    * Edit this file to define initial configuration:"
	@echo "#        $(confdir)/sympa.conf"
206
	@echo "#"
Luc Didry's avatar
Luc Didry committed
207
208
	@echo "# ADDITIONAL SETTINGS:"
	@echo "#    * You will find all available configuration settings in:"
209
	@echo "#        $(confdir)/sympa.conf-dist"
Luc Didry's avatar
Luc Didry committed
210
211
212
213
	@echo "#"
	@echo "#    * Copy the configuration settings you want in:"
	@echo "#        $(confdir)/sympa.conf"
	@echo "#"
214
215
216
	@echo "# UPGRADING"
	@echo "#    * Run this script to upgrade your data structures:"
	@echo "#        $(sbindir)/sympa.pl --upgrade"
olivier.salaun's avatar
olivier.salaun committed
217
	@echo "#######################################################"
218

219
uninstall-hook:
IKEDA Soji's avatar
IKEDA Soji committed
220
	cd $(DESTDIR)$(confdir) && rm -f sympa.conf
221
	cd $(DESTDIR)$(confdir) && rm -f sympa.conf-dist
IKEDA Soji's avatar
IKEDA Soji committed
222
223
224
225
226
	cd $(DESTDIR)$(confdir) && rm -f wwsympa.conf
	cd $(DESTDIR)$(sysconfdir) && rm -f data_structure.version
	cd $(DESTDIR)$(sysconfdir) && rm -f README

DISTCHECK_CONFIGURE_FLAGS = --enable-fhs --with-perl=$(PERL)
227

228
229
230
dist-hook:
	$(MAKE) check

IKEDA Soji's avatar
IKEDA Soji committed
231
232
233
distcheck-hook:
	-md5sum $(DIST_ARCHIVES) > $(DIST_ARCHIVES).md5
	-sha256sum $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sha256
IKEDA Soji's avatar
IKEDA Soji committed
234
	-openssl sha512 $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sha512
IKEDA Soji's avatar
IKEDA Soji committed
235

236
# tidyall --conf-file doc/dot.tidyallrc --root-dir . --recursive src t xt
Luc Didry's avatar
Luc Didry committed
237
tidyall:
238
239
240
241
242
	@ ( echo 'exit 1 if grep { $$_->error }'; \
	    echo 'Code::TidyAll->new_from_conf_file('; \
	    echo '  "doc/dot.tidyallrc", root_dir => ".", recursive => 1'; \
	    echo ')->process_paths(qw(src xt t))' \
	) | $(PERL) -MCode::TidyAll
Luc Didry's avatar
Luc Didry committed
243
244
245

all-local: sympa.conf-dist

246
sympa.conf-dist:
247
248
	@PERL5LIB=$(srcdir)/src/lib; export PERL5LIB; \
	$(PERL) mk-sympa-dist.pl