1# BEGIN BPS TAGGED BLOCK {{{
2#
3# COPYRIGHT:
4#
5# This software is Copyright (c) 1996-2021 Best Practical Solutions, LLC
6#                                          <sales@bestpractical.com>
7#
8# (Except where explicitly superseded by other copyright notices)
9#
10#
11# LICENSE:
12#
13# This work is made available to you under the terms of Version 2 of
14# the GNU General Public License. A copy of that license should have
15# been provided with this software, but in any event can be snarfed
16# from www.gnu.org.
17#
18# This work is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21# General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program; if not, write to the Free Software
25# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26# 02110-1301 or visit their web page on the internet at
27# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28#
29#
30# CONTRIBUTION SUBMISSION POLICY:
31#
32# (The following paragraph is not intended to limit the rights granted
33# to you to modify and distribute this software under the terms of
34# the GNU General Public License and is only of importance to you if
35# you choose to contribute your changes and enhancements to the
36# community by submitting them to Best Practical Solutions, LLC.)
37#
38# By intentionally submitting any modifications, corrections or
39# derivatives to this work, or any other work intended for use with
40# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41# you are the copyright holder for those contributions and you grant
42# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
43# royalty-free, perpetual, license to use, copy, create derivative
44# works based on those contributions, and sublicense and distribute
45# those contributions and any derivatives thereof.
46#
47# END BPS TAGGED BLOCK }}}
48#
49# DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated.
50# Have a look at "configure" and "Makefile.in" instead
51#
52
53
54PERL			=	@PERL@
55INSTALL			=	@INSTALL@
56CC				=	@CC@
57
58RT_LAYOUT		=	@rt_layout_name@
59
60CONFIG_FILE_PATH	=	@CONFIG_FILE_PATH_R@
61CONFIG_FILE		=	$(CONFIG_FILE_PATH)/RT_Config.pm
62SITE_CONFIG_FILE	=	$(CONFIG_FILE_PATH)/RT_SiteConfig.pm-dist
63
64
65RT_VERSION_MAJOR	=	@RT_VERSION_MAJOR@
66RT_VERSION_MINOR	=	@RT_VERSION_MINOR@
67RT_VERSION_PATCH	=	@RT_VERSION_PATCH@
68
69RT_VERSION		=	$(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH)
70TAG 			=	rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH)
71
72
73# This is the group that all of the installed files will be chgrp'ed to.
74RTGROUP			=	@RTGROUP@
75
76
77# User which should own rt binaries.
78BIN_OWNER		=	@BIN_OWNER@
79
80# User that should own all of RT's libraries, generally root.
81LIBS_OWNER 		=	@LIBS_OWNER@
82
83# Group that should own all of RT's libraries, generally root.
84LIBS_GROUP		=	@LIBS_GROUP@
85
86WEB_USER		=	@WEB_USER@
87WEB_GROUP		=	@WEB_GROUP@
88
89# DESTDIR allows you to specify that RT be installed somewhere other than
90# where it will eventually reside. DESTDIR _must_ have a trailing slash
91# if it's defined.
92
93DESTDIR			=
94
95
96
97RT_PATH			=	@RT_PATH_R@
98RT_ETC_PATH		=	@RT_ETC_PATH_R@
99RT_BIN_PATH		=	@RT_BIN_PATH_R@
100RT_SBIN_PATH		=	@RT_SBIN_PATH_R@
101RT_LIB_PATH		=	@RT_LIB_PATH_R@
102RT_MAN_PATH		=	@RT_MAN_PATH_R@
103RT_VAR_PATH		=	@RT_VAR_PATH_R@
104RT_DOC_PATH		=	@RT_DOC_PATH_R@
105RT_FONT_PATH		=	@RT_FONT_PATH_R@
106RT_LEXICON_PATH		=	@RT_LEXICON_PATH_R@
107RT_STATIC_PATH		=	@RT_STATIC_PATH_R@
108RT_LOCAL_PATH		=	@RT_LOCAL_PATH_R@
109LOCAL_PLUGIN_PATH	=	@RT_LOCAL_PATH_R@/share/rt44/plugins
110LOCAL_ETC_PATH		=	@LOCAL_ETC_PATH_R@
111LOCAL_LIB_PATH		=	@LOCAL_LIB_PATH_R@
112LOCAL_LEXICON_PATH	=	@LOCAL_LEXICON_PATH_R@
113LOCAL_STATIC_PATH	=	@LOCAL_STATIC_PATH_R@
114MASON_HTML_PATH		=	@MASON_HTML_PATH_R@
115MASON_LOCAL_HTML_PATH	=	@MASON_LOCAL_HTML_PATH_R@
116MASON_DATA_PATH		=	@MASON_DATA_PATH_R@
117MASON_SESSION_PATH	=	@MASON_SESSION_PATH_R@
118RT_LOG_PATH		=       @RT_LOG_PATH_R@
119
120# RT_READABLE_DIR_MODE is the mode of directories that are generally meant
121# to be accessable
122RT_READABLE_DIR_MODE	=	0755
123
124
125
126
127
128# RT's CLI
129RT_CLI_BIN		=	rt
130# RT's mail gateway
131RT_MAILGATE_BIN		=	rt-mailgate
132# RT's cron tool
133RT_CRON_BIN		=	rt-crontool
134
135
136
137BINARIES		=	$(RT_MAILGATE_BIN) \
138				$(RT_CLI_BIN) \
139				$(RT_CRON_BIN)
140
141SYSTEM_BINARIES		=	rt-attributes-viewer \
142				rt-munge-attachments \
143				rt-clean-sessions \
144				rt-dump-metadata \
145				rt-email-dashboards \
146				rt-email-digest \
147				rt-email-group-admin \
148				rt-externalize-attachments \
149				rt-fulltext-indexer \
150				rt-importer \
151				rt-ldapimport \
152				rt-passwd \
153				rt-preferences-viewer \
154				rt-search-attributes \
155				rt-serializer \
156				rt-server \
157				rt-server.fcgi \
158				rt-session-viewer \
159				rt-setup-database \
160				rt-setup-fulltext-index \
161				rt-shredder \
162				rt-test-dependencies \
163				rt-validator \
164				rt-validate-aliases \
165				standalone_httpd
166
167
168ETC_FILES		=	acl.Pg \
169				acl.Oracle \
170				acl.mysql \
171				schema.Pg \
172				schema.Oracle \
173				schema.mysql \
174				schema.SQLite \
175				initialdata
176
177
178
179WEB_HANDLER		=	@WEB_HANDLER@
180
181
182
183#
184# DB_TYPE defines what sort of database RT trys to talk to
185# "mysql", "Oracle", "Pg", and "SQLite" are known to work.
186
187DB_TYPE			=	@DB_TYPE@
188
189# Set DBA to the name of a unix account with the proper permissions and
190# environment to run your commandline SQL sbin
191
192# Set DB_DBA to the name of a DB user with permission to create new databases
193
194# For mysql, you probably want 'root'
195# For Pg, you probably want 'postgres'
196# For Oracle, you want 'system'
197
198DB_DBA			=	@DB_DBA@
199
200DB_HOST			=	@DB_HOST@
201
202# If you're not running your database server on its default port,
203# specifiy the port the database server is running on below.
204# It's generally safe to leave this blank
205
206DB_PORT			=	@DB_PORT@
207
208
209
210
211#
212# Set this to the canonical name of the interface RT will be talking to the
213# database on.  If you said that the RT_DB_HOST above was "localhost," this
214# should be too. This value will be used to grant rt access to the database.
215# If you want to access the RT database from multiple hosts, you'll need
216# to grant those database rights by hand.
217#
218
219DB_RT_HOST		=	@DB_RT_HOST@
220
221# set this to the name you want to give to the RT database in
222# your database server. For Oracle, this should be the name of your sid
223
224DB_DATABASE		=	@DB_DATABASE@
225DB_RT_USER		=	@DB_RT_USER@
226DB_RT_PASS		=	@DB_RT_PASS@
227
228
229
230TEST_FILES = t/*.t t/*/*.t t/*/*/*.t
231TEST_VERBOSE = 0
232
233RT_TEST_PARALLEL_NUM ?= 5
234
235
236####################################################################
237
238all: default
239
240default:
241	@echo "Please read RT's README before beginning your installation."
242
243
244
245instruct:
246	@echo "Congratulations. RT is now installed."
247	@echo ""
248	@echo ""
249	@echo "You must now configure RT by editing $(SITE_CONFIG_FILE)."
250	@echo ""
251	@echo "(You will definitely need to set RT's database password in "
252	@echo "$(SITE_CONFIG_FILE) before continuing. Not doing so could be "
253	@echo "very dangerous.  Note that you do not have to manually add a "
254	@echo "database user or set up a database for RT.  These actions will be "
255	@echo "taken care of in the next step.)"
256	@echo ""
257	@echo "After that, you need to initialize RT's database by running"
258	@echo " 'make initialize-database'"
259
260
261upgrade-instruct:
262	@echo "Congratulations. RT has been upgraded. You should now check over"
263	@echo "$(CONFIG_FILE) for any necessary site customization. Additionally,"
264	@echo "you should update RT's system database objects by running "
265	@echo "    make upgrade-database"
266
267
268upgrade: testdeps config-install dirs files-install fixperms upgrade-instruct
269
270my_with_web_handlers= $(shell $(PERL) -e 'print join " ", map "--with-$$_", grep defined && length, split /,/, "$(WEB_HANDLER)"')
271testdeps:
272	$(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE) $(my_with_web_handlers)
273
274depends: fixdeps
275
276fixdeps:
277	$(PERL) ./sbin/rt-test-dependencies --verbose --with-$(DB_TYPE) $(my_with_web_handlers)
278
279#}}}
280
281fixperms:
282	# Make the libraries readable
283	chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_PATH)
284
285
286	chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_BIN_PATH)
287
288	chmod 0755 $(DESTDIR)$(RT_ETC_PATH)
289	cd $(DESTDIR)$(RT_ETC_PATH) && chmod 0400 $(ETC_FILES)
290
291	#TODO: the config file should probably be able to have its
292	# owner set separately from the binaries.
293	chown -R $(BIN_OWNER) $(DESTDIR)$(RT_ETC_PATH)
294	chgrp -R $(RTGROUP) $(DESTDIR)$(RT_ETC_PATH)
295
296	chmod 0440 $(DESTDIR)$(CONFIG_FILE)
297	chmod 0640 $(DESTDIR)$(SITE_CONFIG_FILE)
298
299	# Make the system binaries
300	cd $(DESTDIR)$(RT_BIN_PATH) && ( chmod 0755 $(BINARIES) ; chown $(BIN_OWNER) $(BINARIES);  chgrp $(RTGROUP) $(BINARIES))
301
302	# Make the system binaries executable also
303	cd $(DESTDIR)$(RT_SBIN_PATH) && ( chmod 0755 $(SYSTEM_BINARIES) ; chown $(BIN_OWNER) $(SYSTEM_BINARIES);  chgrp $(RTGROUP) $(SYSTEM_BINARIES))
304
305	# Make the web ui readable by all.
306	chmod -R  u+rwX,go-w,go+rX 	$(DESTDIR)$(MASON_HTML_PATH) \
307					$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
308					$(DESTDIR)$(RT_LEXICON_PATH) \
309					$(DESTDIR)$(LOCAL_LEXICON_PATH) \
310					$(DESTDIR)$(RT_STATIC_PATH) \
311					$(DESTDIR)$(LOCAL_STATIC_PATH)
312	chown -R $(LIBS_OWNER) 	$(DESTDIR)$(MASON_HTML_PATH) \
313				$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
314				$(DESTDIR)$(RT_LEXICON_PATH) \
315				$(DESTDIR)$(LOCAL_LEXICON_PATH) \
316				$(DESTDIR)$(RT_STATIC_PATH) \
317				$(DESTDIR)$(LOCAL_STATIC_PATH)
318	chgrp -R $(LIBS_GROUP) 	$(DESTDIR)$(MASON_HTML_PATH) \
319				$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
320				$(DESTDIR)$(RT_LEXICON_PATH) \
321				$(DESTDIR)$(LOCAL_LEXICON_PATH) \
322				$(DESTDIR)$(RT_STATIC_PATH) \
323				$(DESTDIR)$(LOCAL_STATIC_PATH)
324
325	# Make the web ui's data dir writable
326	chmod 0770  	$(DESTDIR)$(MASON_DATA_PATH) \
327			$(DESTDIR)$(MASON_SESSION_PATH)
328	chown -R $(WEB_USER) 	$(DESTDIR)$(MASON_DATA_PATH) \
329				$(DESTDIR)$(MASON_SESSION_PATH)
330	chgrp -R $(WEB_GROUP) 	$(DESTDIR)$(MASON_DATA_PATH) \
331				$(DESTDIR)$(MASON_SESSION_PATH)
332
333dirs:
334	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LOG_PATH)
335	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH)
336	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH)
337	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH)
338	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)
339	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/cache
340	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/etc
341	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/obj
342	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_SESSION_PATH)
343	$(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH)
344	$(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_LOCAL_HTML_PATH)
345	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_ETC_PATH)
346	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LIB_PATH)
347	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_PLUGIN_PATH)
348	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LEXICON_PATH)
349	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_STATIC_PATH)
350
351clean-mason-cache:
352	rm -rf $(DESTDIR)$(MASON_DATA_PATH)/cache/*
353	rm -rf $(DESTDIR)$(MASON_DATA_PATH)/etc/*
354	rm -rf $(DESTDIR)$(MASON_DATA_PATH)/obj/*
355
356install: config-install dirs files-install
357
358files-install: libs-install etc-install config-install bin-install sbin-install html-install doc-install font-install po-install static-install
359
360config-install:
361@COMMENT_INPLACE_LAYOUT@	$(INSTALL) -m 0755 -d $(DESTDIR)$(CONFIG_FILE_PATH)
362@COMMENT_INPLACE_LAYOUT@	-$(INSTALL) -m 0440 etc/RT_Config.pm $(DESTDIR)$(CONFIG_FILE)
363@COMMENT_INPLACE_LAYOUT@	[ -f $(DESTDIR)$(SITE_CONFIG_FILE) ] || $(INSTALL) -m 0640 etc/RT_SiteConfig.pm $(DESTDIR)$(SITE_CONFIG_FILE)
364@COMMENT_INPLACE_LAYOUT@	@echo "Installed configuration. About to install RT in  $(RT_PATH)"
365
366test:
367	$(PERL) "-MExtUtils::Command::MM" -e "test_harness($(TEST_VERBOSE), 'lib')" $(TEST_FILES)
368
369parallel-test: test-parallel
370
371test-parallel:
372	RT_TEST_PARALLEL=1 $(PERL) "-MApp::Prove" -e 'my $$p = App::Prove->new(); $$p->process_args("-wlrj$(RT_TEST_PARALLEL_NUM)","--state=slow,save", "t"); exit( $$p->run() ? 0 : 1 )'
373
374regression-reset-db: force-dropdb
375	$(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --dba-password ''
376
377initdb :: initialize-database
378
379initialize-database:
380	$(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --prompt-for-dba-password
381
382upgrade-database:
383	$(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action upgrade --prompt-for-dba-password
384
385dropdb:
386	$(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --prompt-for-dba-password
387
388force-dropdb:
389	$(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --dba-password '' --force
390
391critic:
392	perlcritic --quiet sbin bin lib
393
394libs-install:
395@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_LIB_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LIB_PATH)
396@COMMENT_INPLACE_LAYOUT@	-( cd lib && find . -type d -print ) | while read dir ; do \
397@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_LIB_PATH)/$$dir" ; \
398@COMMENT_INPLACE_LAYOUT@	done
399@COMMENT_INPLACE_LAYOUT@	-( cd lib && find . -type f -print ) | while read file ; do \
400@COMMENT_INPLACE_LAYOUT@	     $(INSTALL) -m 0644 "lib/$$file" "$(DESTDIR)$(RT_LIB_PATH)/$$file" ; \
401@COMMENT_INPLACE_LAYOUT@	done
402
403html-install:
404@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(MASON_HTML_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH)
405@COMMENT_INPLACE_LAYOUT@	-( cd share/html && find . -type d -print ) | while read dir ; do \
406@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(MASON_HTML_PATH)/$$dir" ; \
407@COMMENT_INPLACE_LAYOUT@	done
408@COMMENT_INPLACE_LAYOUT@	-( cd share/html && find . -type f -print ) | while read file ; do \
409@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/html/$$file" "$(DESTDIR)$(MASON_HTML_PATH)/$$file" ; \
410@COMMENT_INPLACE_LAYOUT@	done
411@COMMENT_INPLACE_LAYOUT@	$(MAKE) clean-mason-cache
412
413font-install:
414@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_FONT_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH)
415@COMMENT_INPLACE_LAYOUT@	-( cd share/fonts && find . -type f -print ) | while read file ; do \
416@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/fonts/$$file" "$(DESTDIR)$(RT_FONT_PATH)/$$file" ; \
417@COMMENT_INPLACE_LAYOUT@	done
418
419
420po-install:
421@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_LEXICON_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH)
422@COMMENT_INPLACE_LAYOUT@	-( cd share/po && find . -type f -print ) | while read file ; do \
423@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/po/$$file" "$(DESTDIR)$(RT_LEXICON_PATH)/$$file" ; \
424@COMMENT_INPLACE_LAYOUT@	done
425
426static-install:
427@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_STATIC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH)
428@COMMENT_INPLACE_LAYOUT@	-( cd share/static && find . -type d -print ) | while read dir ; do \
429@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_STATIC_PATH)/$$dir" ; \
430@COMMENT_INPLACE_LAYOUT@	done
431@COMMENT_INPLACE_LAYOUT@	-( cd share/static && find . -type f -print ) | while read file ; do \
432@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/static/$$file" "$(DESTDIR)$(RT_STATIC_PATH)/$$file" ; \
433@COMMENT_INPLACE_LAYOUT@	done
434
435
436doc-install:
437@COMMENT_INPLACE_LAYOUT@	# RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir
438@COMMENT_INPLACE_LAYOUT@	-[ -f $(DESTDIR)$(RT_DOC_PATH) ] && rm $(DESTDIR)$(RT_DOC_PATH)
439@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_DOC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_DOC_PATH)
440@COMMENT_INPLACE_LAYOUT@	-( cd docs && find . -type d -print ) | while read dir ; do \
441@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_DOC_PATH)/$$dir" ; \
442@COMMENT_INPLACE_LAYOUT@	done
443@COMMENT_INPLACE_LAYOUT@	-( cd docs && find . -type f -print ) | while read file ; do \
444@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "docs/$$file" "$(DESTDIR)$(RT_DOC_PATH)/$$file" ; \
445@COMMENT_INPLACE_LAYOUT@	done
446@COMMENT_INPLACE_LAYOUT@	-$(INSTALL) -m 0644 ./README $(DESTDIR)$(RT_DOC_PATH)/
447
448
449etc-install:
450@COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_ETC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_ETC_PATH)
451@COMMENT_INPLACE_LAYOUT@	[ -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d" ] || $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d"
452@COMMENT_INPLACE_LAYOUT@	for file in $(ETC_FILES) ; do \
453@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "etc/$$file" "$(DESTDIR)$(RT_ETC_PATH)/" ; \
454@COMMENT_INPLACE_LAYOUT@	done
455
456
457sbin-install:
458@COMMENT_INPLACE_LAYOUT@	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_SBIN_PATH)
459@COMMENT_INPLACE_LAYOUT@	for file in $(SYSTEM_BINARIES) ; do \
460@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 "sbin/$$file" "$(DESTDIR)$(RT_SBIN_PATH)/" ; \
461@COMMENT_INPLACE_LAYOUT@	done
462
463
464
465bin-install:
466@COMMENT_INPLACE_LAYOUT@	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_BIN_PATH)
467@COMMENT_INPLACE_LAYOUT@	for file in $(BINARIES) ; do \
468@COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 "bin/$$file" "$(DESTDIR)$(RT_BIN_PATH)/" ; \
469@COMMENT_INPLACE_LAYOUT@	done
470
471
472
473regenerate-catalogs:
474	$(PERL) devel/tools/extract-message-catalog
475
476license-tag:
477	$(PERL) devel/tools/license_tag
478
479start-httpd:
480	$(PERL) sbin/standalone_httpd &
481
482start-server:
483	$(PERL) sbin/rt-server &
484
485
486SNAPSHOT=$(shell git describe --tags)
487THIRD_PARTY=devel/third-party/
488snapshot: build-snapshot build-third-party clearsign-snapshot clearsign-third-party snapshot-shasums
489
490build-snapshot:
491	git archive --prefix "$(SNAPSHOT)/"  HEAD | tar -xf -
492	( cd $(SNAPSHOT)                                         && \
493	        echo "$(SNAPSHOT)" > .tag                        && \
494	        autoconf                                         && \
495	        INSTALL=./install-sh PERL=/usr/bin/perl ./configure \
496	            --with-db-type=SQLite                           \
497	            --enable-layout=relative                        \
498	            --with-web-handler=standalone                && \
499	        rm -rf autom4te.cache                               \
500	               config.status config.log config.pld          \
501	)
502	tar -czf "$(SNAPSHOT).tar.gz" "$(SNAPSHOT)/"
503	rm -fr "$(SNAPSHOT)/"
504
505clearsign-snapshot:
506	gpg --armor --detach-sign "$(SNAPSHOT).tar.gz"
507
508build-third-party:
509	git archive --prefix "$(SNAPSHOT)/$(THIRD_PARTY)" HEAD:$(THIRD_PARTY) \
510		| gzip > "$(SNAPSHOT)-third-party-source.tar.gz"
511	rm -rf "$(SNAPSHOT)/$(THIRD_PARTY)"
512
513clearsign-third-party:
514	gpg --armor --detach-sign "$(SNAPSHOT)-third-party-source.tar.gz"
515
516snapshot-shasums:
517	shasum -a 256 $(SNAPSHOT)*.tar.gz*
518
519vessel-import: build-snapshot
520	[ -d $(VESSEL) ] || (echo "VESSEL isn't a path to your shipwright vessel" && exit -1)
521	cp $(VESSEL)/scripts/RT/build.pl /tmp/build.pl
522	./sbin/rt-test-dependencies --with-standalone --with-fastcgi --with-sqlite --list > /tmp/rt.yml
523	shipwright import file:$(SNAPSHOT).tar.gz \
524    --require-yml /tmp/rt.yml \
525    --build-script /tmp/build.pl \
526    --name RT \
527	--repository fs:$(VESSEL) \
528     --log-level=info \
529     --skip cpan-capitalization,cpan-mod_perl,cpan-Encode,cpan-PPI,cpan-Test-Exception-LessClever,cpan-Test-Manifest,cpan-Test-Object,cpan-Test-Pod,cpan-Test-Requires,cpan-Test-SubCalls,cpan-Test-cpan-Tester,cpan-Test-Warn --skip-all-recommends
530	mv $(VESSEL)/scripts/RT/build  $(VESSEL)/scripts/RT/build.pl
531