forked from leadnt/ejabberd-open
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
dandan.sha
committed
Nov 29, 2018
1 parent
78de94e
commit cb31531
Showing
1,865 changed files
with
588,139 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# kdiff3 ignore | ||
*.orig | ||
|
||
# maven ignore | ||
target/ | ||
|
||
# eclipse ignore | ||
.settings/ | ||
.project | ||
.classpath | ||
|
||
# idea ignore | ||
.idea/ | ||
*.ipr | ||
*.iml | ||
*.iws | ||
|
||
# temp ignore | ||
*.log | ||
*.cache | ||
*.diff | ||
*.patch | ||
*.tmp | ||
|
||
# system ignore | ||
.DS_Store | ||
Thumbs.db | ||
|
||
backup/qchat | ||
# deps/ | ||
ebin/ | ||
Makefile | ||
config.status | ||
ejabberd.init | ||
ejabberdctl.example | ||
vars.config | ||
*# | ||
|
||
*~ | ||
# package ignore (optional) | ||
# *.jar | ||
# *.war | ||
# *.zip | ||
# *.tar | ||
# *.tar.gz | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,342 @@ | ||
REBAR = @ESCRIPT@ rebar | ||
INSTALL = @INSTALL@ | ||
SED = @SED@ | ||
ERL = @ERL@ | ||
|
||
prefix = @prefix@ | ||
exec_prefix = @exec_prefix@ | ||
|
||
DESTDIR = | ||
|
||
# /etc/ejabberd/ | ||
ETCDIR = $(DESTDIR)@sysconfdir@/ejabberd | ||
|
||
# /bin/ | ||
BINDIR = $(DESTDIR)@bindir@ | ||
|
||
# /sbin/ | ||
SBINDIR = $(DESTDIR)@sbindir@ | ||
|
||
# /lib/ | ||
LIBDIR = $(DESTDIR)@libdir@ | ||
|
||
# /lib/ejabberd/ | ||
EJABBERDDIR = $(DESTDIR)@libdir@/ejabberd | ||
|
||
# /share/doc/ejabberd | ||
PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
datarootdir = @datarootdir@ | ||
DOCDIR = $(DESTDIR)@docdir@ | ||
|
||
# /usr/lib/ejabberd/ebin/ | ||
BEAMDIR = $(EJABBERDDIR)/ebin | ||
|
||
# /usr/lib/ejabberd/include/ | ||
INCLUDEDIR = $(EJABBERDDIR)/include | ||
|
||
# /usr/lib/ejabberd/priv/ | ||
PRIVDIR = $(EJABBERDDIR)/priv | ||
|
||
# /usr/lib/ejabberd/priv/bin | ||
PBINDIR = $(PRIVDIR)/bin | ||
|
||
# /usr/lib/ejabberd/priv/lib | ||
SODIR = $(PRIVDIR)/lib | ||
|
||
# /usr/lib/ejabberd/priv/msgs | ||
MSGSDIR = $(PRIVDIR)/msgs | ||
|
||
# /usr/lib/ejabberd/priv/sql | ||
SQLDIR = $(PRIVDIR)/sql | ||
|
||
# /var/lib/ejabberd/ | ||
SPOOLDIR = $(DESTDIR)@localstatedir@/lib/ejabberd | ||
|
||
# /var/lock/ejabberdctl | ||
CTLLOCKDIR = $(DESTDIR)@localstatedir@/lock/ejabberdctl | ||
|
||
# /var/lib/ejabberd/.erlang.cookie | ||
COOKIEFILE = $(SPOOLDIR)/.erlang.cookie | ||
|
||
# /var/log/ejabberd/ | ||
LOGDIR = $(DESTDIR)@localstatedir@/log/ejabberd | ||
|
||
INSTALLUSER=@INSTALLUSER@ | ||
# if no user was enabled, don't set privileges or ownership | ||
ifeq ($(INSTALLUSER),) | ||
O_USER= | ||
G_USER= | ||
CHOWN_COMMAND=echo | ||
CHOWN_OUTPUT=/dev/null | ||
INIT_USER=root | ||
else | ||
O_USER=-o $(INSTALLUSER) | ||
G_USER=-g $(INSTALLUSER) | ||
CHOWN_COMMAND=chown | ||
CHOWN_OUTPUT=&1 | ||
INIT_USER=$(INSTALLUSER) | ||
endif | ||
|
||
all: deps src | ||
|
||
deps: deps/.got | ||
|
||
deps/.got: | ||
rm -rf deps/.got | ||
rm -rf deps/.built | ||
$(REBAR) get-deps && :> deps/.got | ||
|
||
deps/.built: deps/.got | ||
$(REBAR) compile && :> deps/.built | ||
|
||
src: deps/.built | ||
$(REBAR) skip_deps=true compile | ||
|
||
update: | ||
rm -rf deps/.got | ||
rm -rf deps/.built | ||
$(REBAR) update-deps && :> deps/.got | ||
|
||
xref: all | ||
$(REBAR) skip_deps=true xref | ||
|
||
|
||
translations: | ||
contrib/extract_translations/prepare-translation.sh -updateall | ||
|
||
edoc: | ||
$(ERL) -noinput +B -eval \ | ||
'case edoc:application(ejabberd, ".", []) of ok -> halt(0); error -> halt(1) end.' | ||
|
||
spec: | ||
$(ERL) -noinput +B -pa ebin -pa deps/*/ebin -eval \ | ||
'case fxml_gen:compile("tools/xmpp_codec.spec") of ok -> halt(0); _ -> halt(1) end.' | ||
|
||
JOIN_PATHS=$(if $(wordlist 2,1000,$(1)),$(firstword $(1))/$(call JOIN_PATHS,$(wordlist 2,1000,$(1))),$(1)) | ||
|
||
VERSIONED_DEP=$(if $(DEP_$(1)_VERSION),$(DEP_$(1)_VERSION),$(1)) | ||
|
||
ELIXIR_TO_DEST=$(LIBDIR) $(call VERSIONED_DEP,$(word 2,$(1))) $(wordlist 5,1000,$(1)) | ||
DEPS_TO_DEST=$(LIBDIR) $(call VERSIONED_DEP,$(word 2,$(1))) $(wordlist 3,1000,$(1)) | ||
MAIN_TO_DEST=$(LIBDIR) $(call VERSIONED_DEP,ejabberd) $(1) | ||
TO_DEST_SINGLE=$(if $(subst XdepsX,,X$(word 1,$(1))X),$(call MAIN_TO_DEST,$(1)),$(if $(subst XlibX,,X$(word 3,$(1))X),$(call DEPS_TO_DEST,$(1)),$(call ELIXIR_TO_DEST,$(1)))) | ||
TO_DEST=$(foreach path,$(1),$(call JOIN_PATHS,$(call TO_DEST_SINGLE,$(subst /, ,$(path))))) | ||
|
||
FILTER_DIRS=$(foreach path,$(1),$(if $(wildcard $(path)/*),,$(path))) | ||
FILES_WILDCARD=$(call FILTER_DIRS,$(foreach w,$(1),$(wildcard $(w)))) | ||
|
||
ifeq ($(MAKECMDGOALS),copy-files-sub) | ||
|
||
DEPS:=$(sort $(shell $(REBAR) list-deps|$(SED) -e '/^=/d;s/ .*//')) | ||
|
||
DEPS_FILES=$(call FILES_WILDCARD,$(foreach DEP,$(DEPS),deps/$(DEP)/ebin/*.beam deps/$(DEP)/ebin/*.app deps/$(DEP)/priv/* deps/$(DEP)/priv/lib/* deps/$(DEP)/priv/bin/* deps/$(DEP)/include/*.hrl deps/$(DEP)/lib/*/ebin/*.beam deps/$(DEP)/lib/*/ebin/*.app)) | ||
DEPS_FILES_FILTERED=$(filter-out %/epam deps/elixir/ebin/elixir.app,$(DEPS_FILES)) | ||
DEPS_DIRS=$(sort deps/ $(foreach DEP,$(DEPS),deps/$(DEP)/) $(dir $(DEPS_FILES))) | ||
|
||
MAIN_FILES=$(filter-out %/configure.beam,$(call FILES_WILDCARD,ebin/*.beam ebin/*.app priv/msgs/*.msg priv/lib/* include/*.hrl)) | ||
MAIN_DIRS=$(sort $(dir $(MAIN_FILES)) priv/bin priv/sql) | ||
|
||
define DEP_VERSION_template | ||
DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*, *"/$(1)-/;s/".*//' $(2) 2>/dev/null) | ||
endef | ||
|
||
$(foreach DEP,$(DEPS),$(eval $(call DEP_VERSION_template,$(DEP),deps/$(DEP)/ebin/$(DEP).app))) | ||
$(eval $(call DEP_VERSION_template,ejabberd,ebin/ejabberd.app)) | ||
|
||
define COPY_template | ||
$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $$(INSTALL) -m 644 $(1) $(call TO_DEST,$(1)) | ||
endef | ||
|
||
$(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template,$(file)))) | ||
|
||
$(sort $(call TO_DEST,$(MAIN_DIRS) $(DEPS_DIRS))): | ||
$(INSTALL) -d $@ | ||
|
||
$(call TO_DEST,deps/p1_pam/priv/bin/epam): $(LIBDIR)/%: deps/p1_pam/priv/bin/epam $(call TO_DEST,deps/p1_pam/priv/bin/) | ||
$(INSTALL) -m 750 $(O_USER) $< $@ | ||
|
||
$(call TO_DEST,priv/sql/lite.sql): sql/lite.sql $(call TO_DEST,priv/sql) | ||
$(INSTALL) -m 644 $< $@ | ||
|
||
$(call TO_DEST,priv/bin/captcha.sh): tools/captcha.sh $(call TO_DEST,priv/bin) | ||
$(INSTALL) -m 750 $(O_USER) $< $@ | ||
|
||
copy-files-sub2: $(call TO_DEST,$(DEPS_FILES) $(MAIN_FILES) priv/bin/captcha.sh priv/sql/lite.sql) | ||
|
||
endif | ||
|
||
copy-files: | ||
$(MAKE) copy-files-sub | ||
|
||
copy-files-sub: copy-files-sub2 | ||
|
||
install: all copy-files | ||
# | ||
# Configuration files | ||
$(INSTALL) -d -m 750 $(G_USER) $(ETCDIR) | ||
[ -f $(ETCDIR)/ejabberd.yml ] \ | ||
&& $(INSTALL) -b -m 640 $(G_USER) ejabberd.yml.example $(ETCDIR)/ejabberd.yml-new \ | ||
|| $(INSTALL) -b -m 640 $(G_USER) ejabberd.yml.example $(ETCDIR)/ejabberd.yml | ||
$(SED) -e "s*{{rootdir}}*@prefix@*" \ | ||
-e "s*{{installuser}}*@INSTALLUSER@*" \ | ||
-e "s*{{bindir}}*@bindir@*" \ | ||
-e "s*{{libdir}}*@libdir@*" \ | ||
-e "s*{{sysconfdir}}*@sysconfdir@*" \ | ||
-e "s*{{localstatedir}}*@localstatedir@*" \ | ||
-e "s*{{docdir}}*@docdir@*" \ | ||
-e "s*{{erl}}*@ERL@*" \ | ||
-e "s*{{epmd}}*@EPMD@*" ejabberdctl.template \ | ||
> ejabberdctl.example | ||
[ -f $(ETCDIR)/ejabberdctl.cfg ] \ | ||
&& $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \ | ||
|| $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg | ||
$(INSTALL) -b -m 644 $(G_USER) inetrc $(ETCDIR)/inetrc | ||
# | ||
# Administration script | ||
[ -d $(SBINDIR) ] || $(INSTALL) -d -m 755 $(SBINDIR) | ||
$(INSTALL) -m 550 $(G_USER) ejabberdctl.example $(SBINDIR)/ejabberdctl | ||
# Elixir binaries | ||
[ -d $(BINDIR) ] || $(INSTALL) -d -m 755 $(BINDIR) | ||
[ -f deps/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/iex $(BINDIR)/iex || true | ||
[ -f deps/elixir/bin/elixir ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/elixir $(BINDIR)/elixir || true | ||
[ -f deps/elixir/bin/mix ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/mix $(BINDIR)/mix || true | ||
# | ||
# Init script | ||
$(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*" \ | ||
-e "s*@installuser@*$(INIT_USER)*" ejabberd.init.template \ | ||
> ejabberd.init | ||
chmod 755 ejabberd.init | ||
# | ||
# Spool directory | ||
$(INSTALL) -d -m 750 $(O_USER) $(SPOOLDIR) | ||
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(SPOOLDIR) >$(CHOWN_OUTPUT) | ||
chmod -R 750 $(SPOOLDIR) | ||
[ ! -f $(COOKIEFILE) ] || { $(CHOWN_COMMAND) @INSTALLUSER@ $(COOKIEFILE) >$(CHOWN_OUTPUT) ; chmod 400 $(COOKIEFILE) ; } | ||
# | ||
# ejabberdctl lock directory | ||
$(INSTALL) -d -m 750 $(O_USER) $(CTLLOCKDIR) | ||
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(CTLLOCKDIR) >$(CHOWN_OUTPUT) | ||
chmod -R 750 $(CTLLOCKDIR) | ||
# | ||
# Log directory | ||
$(INSTALL) -d -m 750 $(O_USER) $(LOGDIR) | ||
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(LOGDIR) >$(CHOWN_OUTPUT) | ||
chmod -R 750 $(LOGDIR) | ||
# | ||
# Documentation | ||
$(INSTALL) -d $(DOCDIR) | ||
[ -f doc/guide.html ] \ | ||
&& $(INSTALL) -m 644 doc/guide.html $(DOCDIR) \ | ||
|| echo "Documentation not included in sources" | ||
$(INSTALL) -m 644 COPYING $(DOCDIR) | ||
|
||
uninstall: uninstall-binary | ||
|
||
uninstall-binary: | ||
rm -f $(SBINDIR)/ejabberdctl | ||
rm -f $(BINDIR)/iex | ||
rm -f $(BINDIR)/elixir | ||
rm -f $(BINDIR)/mix | ||
rm -fr $(DOCDIR) | ||
rm -f $(BEAMDIR)/*.beam | ||
rm -f $(BEAMDIR)/*.app | ||
rm -fr $(BEAMDIR) | ||
rm -f $(INCLUDEDIR)/*.hrl | ||
rm -fr $(INCLUDEDIR) | ||
rm -fr $(PBINDIR) | ||
rm -f $(SODIR)/*.so | ||
rm -fr $(SODIR) | ||
rm -f $(MSGSDIR)/*.msgs | ||
rm -fr $(MSGSDIR) | ||
rm -f $(SQLDIR)/*.sql | ||
rm -fr $(SQLDIR) | ||
rm -fr $(PRIVDIR) | ||
rm -fr $(EJABBERDDIR) | ||
|
||
uninstall-all: uninstall-binary | ||
rm -rf $(ETCDIR) | ||
rm -rf $(EJABBERDDIR) | ||
rm -rf $(SPOOLDIR) | ||
rm -rf $(CTLLOCKDIR) | ||
rm -rf $(LOGDIR) | ||
|
||
clean: | ||
rm -rf deps/.got | ||
rm -rf deps/.built | ||
rm -rf test/*.beam | ||
$(REBAR) clean | ||
|
||
clean-rel: | ||
rm -rf rel/ejabberd | ||
|
||
distclean: clean clean-rel | ||
rm -f config.status | ||
rm -f config.log | ||
rm -rf autom4te.cache | ||
rm -rf deps | ||
rm -rf ebin | ||
rm -f Makefile | ||
rm -f vars.config | ||
rm -f src/ejabberd.app.src | ||
[ ! -f ../ChangeLog ] || rm -f ../ChangeLog | ||
|
||
rel: all | ||
$(REBAR) generate | ||
|
||
TAGS: | ||
etags *.erl | ||
|
||
Makefile: Makefile.in | ||
|
||
deps := $(wildcard deps/*/ebin) | ||
|
||
dialyzer/erlang.plt: | ||
@mkdir -p dialyzer | ||
@dialyzer --build_plt --output_plt dialyzer/erlang.plt \ | ||
-o dialyzer/erlang.log --apps kernel stdlib sasl crypto \ | ||
public_key ssl mnesia inets odbc tools compiler erts webtool \ | ||
runtime_tools asn1 observer xmerl et gs wx syntax_tools; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
dialyzer/deps.plt: | ||
@mkdir -p dialyzer | ||
@dialyzer --build_plt --output_plt dialyzer/deps.plt \ | ||
-o dialyzer/deps.log $(deps); \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
dialyzer/ejabberd.plt: | ||
@mkdir -p dialyzer | ||
@dialyzer --build_plt --output_plt dialyzer/ejabberd.plt \ | ||
-o dialyzer/ejabberd.log ebin; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
erlang_plt: dialyzer/erlang.plt | ||
@dialyzer --plt dialyzer/erlang.plt --check_plt -o dialyzer/erlang.log; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
deps_plt: dialyzer/deps.plt | ||
@dialyzer --plt dialyzer/deps.plt --check_plt -o dialyzer/deps.log; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
ejabberd_plt: dialyzer/ejabberd.plt | ||
@dialyzer --plt dialyzer/ejabberd.plt --check_plt -o dialyzer/ejabberd.log; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
dialyzer: erlang_plt deps_plt ejabberd_plt | ||
@dialyzer --plts dialyzer/*.plt --no_check_plt \ | ||
--get_warnings -o dialyzer/error.log ebin; \ | ||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi | ||
|
||
test: | ||
@echo "************************** NOTICE ***************************************" | ||
@cat test/README | ||
@echo "*************************************************************************" | ||
@cd priv && ln -sf ../sql | ||
$(REBAR) skip_deps=true ct | ||
|
||
quicktest: | ||
$(REBAR) skip_deps=true ct suites=elixir | ||
|
||
.PHONY: src edoc dialyzer Makefile TAGS clean clean-rel distclean rel \ | ||
install uninstall uninstall-binary uninstall-all translations deps test spec \ | ||
quicktest erlang_plt deps_plt ejabberd_plt |
Oops, something went wrong.