2003-10-17 21:15:38 +02:00
|
|
|
CC = @CC@
|
2004-09-26 22:46:43 +02:00
|
|
|
CFLAGS = @CFLAGS@
|
2003-10-17 21:15:38 +02:00
|
|
|
CPPFLAGS = @CPPFLAGS@
|
|
|
|
LDFLAGS = @LDFLAGS@
|
2004-09-26 22:46:43 +02:00
|
|
|
LIBS = @LIBS@
|
|
|
|
|
|
|
|
ERLANG_CFLAGS= @ERLANG_CFLAGS@
|
|
|
|
|
|
|
|
ERLANG_LIBS = @ERLANG_LIBS@
|
2003-10-17 21:15:38 +02:00
|
|
|
|
2007-05-29 16:31:12 +02:00
|
|
|
ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
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
|
2009-08-24 21:59:30 +02:00
|
|
|
INIT_USER=root
|
2008-07-15 10:45:05 +02:00
|
|
|
else
|
|
|
|
O_USER=-o $(INSTALLUSER)
|
|
|
|
G_USER=-g $(INSTALLUSER)
|
|
|
|
CHOWN_COMMAND=chown
|
|
|
|
CHOWN_OUTPUT=&1
|
2009-08-24 21:59:30 +02:00
|
|
|
INIT_USER=$(INSTALLUSER)
|
2008-07-15 10:45:05 +02:00
|
|
|
endif
|
|
|
|
|
2010-11-22 16:20:40 +01:00
|
|
|
EFLAGS += @ERLANG_SSLVER@ -pa .
|
2008-07-15 10:45:05 +02:00
|
|
|
|
2005-12-06 20:32:50 +01:00
|
|
|
# make debug=true to compile Erlang module with debug informations.
|
|
|
|
ifdef debug
|
2009-12-29 20:15:59 +01:00
|
|
|
EFLAGS+=+debug_info +export_all
|
2005-12-06 20:32:50 +01:00
|
|
|
endif
|
|
|
|
|
2010-07-19 12:12:30 +02:00
|
|
|
DEBUGTOOLS = p1_prof.erl etop_tr.erl
|
2010-07-12 16:02:41 +02:00
|
|
|
ifdef debugtools
|
2010-05-28 00:48:04 +02:00
|
|
|
SOURCES+=$(DEBUGTOOLS)
|
2006-04-01 18:05:20 +02:00
|
|
|
endif
|
|
|
|
|
2007-12-06 18:09:35 +01:00
|
|
|
ifeq (@hipe@, true)
|
2008-07-15 10:45:05 +02:00
|
|
|
EFLAGS+=+native
|
2007-12-06 18:09:35 +01:00
|
|
|
endif
|
|
|
|
|
2005-12-11 20:48:31 +01:00
|
|
|
ifeq (@roster_gateway_workaround@, true)
|
2008-07-15 10:45:05 +02:00
|
|
|
EFLAGS+=-DROSTER_GATEWAY_WORKAROUND
|
2005-12-11 20:48:31 +01:00
|
|
|
endif
|
|
|
|
|
2007-07-31 14:05:00 +02:00
|
|
|
ifeq (@full_xml@, true)
|
2008-07-15 10:45:05 +02:00
|
|
|
EFLAGS+=-DFULL_XML_SUPPORT
|
2007-07-31 14:05:00 +02:00
|
|
|
endif
|
|
|
|
|
2007-09-14 16:16:36 +02:00
|
|
|
ifeq (@transient_supervisors@, false)
|
2008-07-15 10:45:05 +02:00
|
|
|
EFLAGS+=-DNO_TRANSIENT_SUPERVISORS
|
2007-09-14 16:16:36 +02:00
|
|
|
endif
|
|
|
|
|
2010-08-07 14:28:48 +02:00
|
|
|
ifeq (@md2@, true)
|
|
|
|
EFLAGS+=-DHAVE_MD2
|
|
|
|
ERLANG_CFLAGS += -DHAVE_MD2
|
|
|
|
endif
|
|
|
|
|
2008-03-25 19:59:45 +01:00
|
|
|
INSTALL_EPAM=
|
|
|
|
ifeq (@pam@, pam)
|
2008-07-15 10:45:05 +02:00
|
|
|
INSTALL_EPAM=install -m 750 $(O_USER) epam $(PBINDIR)
|
2008-03-25 19:59:45 +01:00
|
|
|
endif
|
|
|
|
|
2003-10-21 22:28:36 +02:00
|
|
|
prefix = @prefix@
|
2008-04-02 16:24:18 +02:00
|
|
|
exec_prefix = @exec_prefix@
|
2003-10-21 22:28:36 +02:00
|
|
|
|
2009-08-11 20:23:54 +02:00
|
|
|
SUBDIRS = stun @mod_pubsub@ @mod_muc@ @mod_proxy65@ @eldap@ @pam@ @web@ @tls@ @odbc@ @ejabberd_zlib@
|
2009-07-30 19:57:56 +02:00
|
|
|
ERLSHLIBS =
|
2007-12-07 09:44:22 +01:00
|
|
|
ERLBEHAVS = cyrsasl.erl gen_mod.erl p1_fsm.erl
|
2008-03-26 10:27:46 +01:00
|
|
|
SOURCES_ALL = $(wildcard *.erl)
|
2010-05-28 00:48:04 +02:00
|
|
|
SOURCES_MISC = $(ERLBEHAVS) $(DEBUGTOOLS)
|
|
|
|
SOURCES += $(filter-out $(SOURCES_MISC),$(SOURCES_ALL))
|
2008-03-26 10:27:46 +01:00
|
|
|
ERLBEHAVBEAMS = $(ERLBEHAVS:.erl=.beam)
|
2005-12-11 20:48:31 +01:00
|
|
|
BEAMS = $(SOURCES:.erl=.beam)
|
2003-10-17 21:15:38 +02:00
|
|
|
|
2008-01-15 12:11:27 +01:00
|
|
|
DESTDIR =
|
2003-10-21 22:28:36 +02:00
|
|
|
|
2008-07-15 10:45:05 +02:00
|
|
|
# /etc/ejabberd/
|
|
|
|
ETCDIR = $(DESTDIR)@sysconfdir@/ejabberd
|
|
|
|
|
|
|
|
# /sbin/
|
|
|
|
SBINDIR = $(DESTDIR)@sbindir@
|
|
|
|
|
|
|
|
# /lib/ejabberd/
|
|
|
|
EJABBERDDIR = $(DESTDIR)@libdir@/ejabberd
|
|
|
|
|
|
|
|
# /share/doc/ejabberd
|
|
|
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|
|
|
datarootdir = @datarootdir@
|
2008-12-01 16:53:30 +01:00
|
|
|
DOCDIR = $(DESTDIR)@docdir@
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
# /usr/lib/ejabberd/ebin/
|
2004-05-17 22:36:41 +02:00
|
|
|
BEAMDIR = $(EJABBERDDIR)/ebin
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
# /usr/lib/ejabberd/include/
|
|
|
|
INCLUDEDIR = $(EJABBERDDIR)/include
|
|
|
|
|
|
|
|
# /usr/lib/ejabberd/priv/
|
2003-10-21 22:28:36 +02:00
|
|
|
PRIVDIR = $(EJABBERDDIR)/priv
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
# /usr/lib/ejabberd/priv/bin
|
2008-03-21 16:42:14 +01:00
|
|
|
PBINDIR = $(PRIVDIR)/bin
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
# /usr/lib/ejabberd/priv/lib
|
|
|
|
SODIR = $(PRIVDIR)/lib
|
|
|
|
|
|
|
|
# /usr/lib/ejabberd/priv/msgs
|
2003-11-13 20:09:33 +01:00
|
|
|
MSGSDIR = $(PRIVDIR)/msgs
|
2008-07-15 10:45:05 +02:00
|
|
|
|
|
|
|
# /var/lib/ejabberd/
|
|
|
|
SPOOLDIR = $(DESTDIR)@localstatedir@/lib/ejabberd
|
|
|
|
|
2010-01-24 14:39:15 +01:00
|
|
|
# /var/lock/ejabberdctl
|
|
|
|
CTLLOCKDIR = $(DESTDIR)@localstatedir@/lock/ejabberdctl
|
|
|
|
|
2008-07-15 10:45:05 +02:00
|
|
|
# /var/lib/ejabberd/.erlang.cookie
|
|
|
|
COOKIEFILE = $(SPOOLDIR)/.erlang.cookie
|
|
|
|
|
|
|
|
# /var/log/ejabberd/
|
2008-04-02 16:24:18 +02:00
|
|
|
LOGDIR = $(DESTDIR)@localstatedir@/log/ejabberd
|
2003-10-21 22:28:36 +02:00
|
|
|
|
2006-08-28 16:56:13 +02:00
|
|
|
# Assume Linux-style dynamic library flags
|
|
|
|
DYNAMIC_LIB_CFLAGS = -fpic -shared
|
2009-03-07 10:52:26 +01:00
|
|
|
ifeq ($(shell uname),Darwin)
|
|
|
|
DYNAMIC_LIB_CFLAGS = -fPIC -bundle -flat_namespace -undefined suppress
|
|
|
|
endif
|
|
|
|
ifeq ($(shell uname),SunOs)
|
|
|
|
DYNAMIC_LIB_CFLAGS = -KPIC -G -z text
|
2006-08-28 16:56:13 +02:00
|
|
|
endif
|
|
|
|
|
2004-05-17 22:36:41 +02:00
|
|
|
all: $(ERLSHLIBS) compile-beam all-recursive
|
2003-10-17 21:15:38 +02:00
|
|
|
|
2008-03-26 10:27:46 +01:00
|
|
|
compile-beam: XmppAddr.hrl $(ERLBEHAVBEAMS) $(BEAMS)
|
|
|
|
|
|
|
|
$(BEAMS): $(ERLBEHAVBEAMS)
|
|
|
|
|
|
|
|
all-recursive: $(ERLBEHAVBEAMS)
|
2005-12-11 20:48:31 +01:00
|
|
|
|
|
|
|
%.beam: %.erl
|
2008-07-15 10:45:05 +02:00
|
|
|
@ERLC@ -W $(EFLAGS) $<
|
2003-10-17 21:15:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
all-recursive install-recursive uninstall-recursive \
|
2009-10-23 17:14:08 +02:00
|
|
|
clean-recursive distclean-recursive devdoc-recursive \
|
2003-10-17 21:15:38 +02:00
|
|
|
mostlyclean-recursive maintainer-clean-recursive:
|
|
|
|
@subdirs="$(SUBDIRS)"; for subdir in $$subdirs; do \
|
|
|
|
target=`echo $@|sed 's,-recursive,,'`; \
|
|
|
|
echo making $$target in $$subdir; \
|
|
|
|
(cd $$subdir && $(MAKE) $$target) || exit 1; \
|
|
|
|
done
|
|
|
|
|
|
|
|
|
2005-11-17 06:29:33 +01:00
|
|
|
%.hrl: %.asn1
|
2005-12-11 20:48:31 +01:00
|
|
|
@ERLC@ $(ASN_FLAGS) $<
|
2008-07-15 10:45:05 +02:00
|
|
|
@ERLC@ -W $(EFLAGS) $*.erl
|
2005-11-17 06:29:33 +01:00
|
|
|
|
2003-10-18 21:15:12 +02:00
|
|
|
$(ERLSHLIBS): %.so: %.c
|
2008-04-11 19:32:20 +02:00
|
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) \
|
|
|
|
$(subst ../,,$(subst .so,.c,$@)) \
|
|
|
|
$(ERLANG_LIBS) \
|
|
|
|
$(ERLANG_CFLAGS) \
|
|
|
|
-o $@ \
|
|
|
|
$(DYNAMIC_LIB_CFLAGS)
|
2003-10-17 21:15:38 +02:00
|
|
|
|
2008-09-16 16:39:57 +02:00
|
|
|
translations:
|
2010-09-27 13:39:15 +02:00
|
|
|
../tools/extract_translations/prepare-translation.sh -updateall
|
2008-09-16 16:39:57 +02:00
|
|
|
|
2003-10-21 22:28:36 +02:00
|
|
|
install: all
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# Configuration files
|
|
|
|
install -d -m 750 $(G_USER) $(ETCDIR)
|
|
|
|
[ -f $(ETCDIR)/ejabberd.cfg ] \
|
|
|
|
&& install -b -m 640 $(G_USER) ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg-new \
|
|
|
|
|| install -b -m 640 $(G_USER) ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg
|
|
|
|
sed -e "s*@rootdir@*@prefix@*" \
|
|
|
|
-e "s*@installuser@*@INSTALLUSER@*" \
|
|
|
|
-e "s*@LIBDIR@*@libdir@*" \
|
|
|
|
-e "s*@SYSCONFDIR@*@sysconfdir@*" \
|
|
|
|
-e "s*@LOCALSTATEDIR@*@localstatedir@*" \
|
Merge from trunk: 1835, 1836, 1842, 1843, 1854, 1858, 1860, 1861, and 1862.
* doc/Makefile: In Clean do not remove html. In new Distclean,
remove also html.
* doc/Makefile: When cleaning, remove contributed_modules.tex
* src/Makefile.in: Fix arguments to Install program
* doc/guide.tex: Provide only an example of language option
* doc/guide.html: Likewise
* doc/guide.tex: mod_muc can run in several nodes of cluster
* doc/guide.html: Likewise
* doc/api/process-one.css: Add some style to HTML elements
* src/ejabberd_listener.erl: Fix EDoc errors
* src/web/ejabberd_web_admin.erl: Likewise
* src/ejabberd_hooks.erl: Explanation in EDoc of some functions
* doc/guide.tex: Explain that account creation is only supported
by internal and odbc authentication methods
* doc/guide.html: Likewise
* src/Makefile.in: The path to the installed copy of ejabberd
Guide is set in the environment variable
EJABBERD_DOC_PATH (EJAB-837).
* src/web/ejabberd_web_admin.erl: Likewise
* src/ejabberdctl.template: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise
SVN Revision: 1937
2009-03-03 19:11:23 +01:00
|
|
|
-e "s*@DOCDIR@*@docdir@*" \
|
2008-07-15 10:45:05 +02:00
|
|
|
-e "s*@erl@*@ERL@*" 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
|
2009-07-07 10:27:58 +02:00
|
|
|
[ -d $(SBINDIR) ] || install -d -m 755 $(SBINDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
install -m 550 $(G_USER) ejabberdctl.example $(SBINDIR)/ejabberdctl
|
|
|
|
#
|
2009-08-24 21:59:30 +02:00
|
|
|
# Init script
|
|
|
|
sed -e "s*@ctlscriptpath@*$(SBINDIR)*" \
|
|
|
|
-e "s*@installuser@*$(INIT_USER)*" ejabberd.init.template \
|
|
|
|
> ejabberd.init
|
|
|
|
#
|
2008-07-15 10:45:05 +02:00
|
|
|
# Binary Erlang files
|
2004-05-17 22:36:41 +02:00
|
|
|
install -d $(BEAMDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
install -m 644 *.app $(BEAMDIR)
|
2004-05-17 22:36:41 +02:00
|
|
|
install -m 644 *.beam $(BEAMDIR)
|
|
|
|
rm -f $(BEAMDIR)/configure.beam
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# ejabberd header files
|
|
|
|
install -d $(INCLUDEDIR)
|
2008-07-17 17:33:50 +02:00
|
|
|
install -m 644 *.hrl $(INCLUDEDIR)
|
|
|
|
install -d $(INCLUDEDIR)/eldap/
|
|
|
|
install -m 644 eldap/*.hrl $(INCLUDEDIR)/eldap/
|
2008-12-08 13:02:27 +01:00
|
|
|
install -d $(INCLUDEDIR)/mod_muc/
|
|
|
|
install -m 644 mod_muc/*.hrl $(INCLUDEDIR)/mod_muc/
|
2008-07-17 17:33:50 +02:00
|
|
|
install -d $(INCLUDEDIR)/mod_proxy65/
|
|
|
|
install -m 644 mod_proxy65/*.hrl $(INCLUDEDIR)/mod_proxy65/
|
|
|
|
install -d $(INCLUDEDIR)/mod_pubsub/
|
|
|
|
install -m 644 mod_pubsub/*.hrl $(INCLUDEDIR)/mod_pubsub/
|
|
|
|
install -d $(INCLUDEDIR)/web/
|
|
|
|
install -m 644 web/*.hrl $(INCLUDEDIR)/web/
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# Binary C programs
|
2008-03-21 16:42:14 +01:00
|
|
|
install -d $(PBINDIR)
|
2009-05-26 19:20:50 +02:00
|
|
|
install -m 750 $(O_USER) ../tools/captcha.sh $(PBINDIR)
|
2008-03-25 19:59:45 +01:00
|
|
|
$(INSTALL_EPAM)
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# Binary system libraries
|
|
|
|
install -d $(SODIR)
|
|
|
|
install -m 644 *.so $(SODIR)
|
|
|
|
#
|
|
|
|
# Translated strings
|
2004-05-17 22:36:41 +02:00
|
|
|
install -d $(MSGSDIR)
|
|
|
|
install -m 644 msgs/*.msg $(MSGSDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# Spool directory
|
|
|
|
install -d -m 750 $(O_USER) $(SPOOLDIR)
|
|
|
|
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(SPOOLDIR) >$(CHOWN_OUTPUT)
|
|
|
|
chmod -R 750 $(SPOOLDIR)
|
2010-02-12 20:25:20 +01:00
|
|
|
[ ! -f $(COOKIEFILE) ] || { $(CHOWN_COMMAND) @INSTALLUSER@ $(COOKIEFILE) >$(CHOWN_OUTPUT) ; chmod 400 $(COOKIEFILE) ; }
|
|
|
|
#
|
2010-01-24 14:39:15 +01:00
|
|
|
# ejabberdctl lock directory
|
|
|
|
install -d -m 750 $(O_USER) $(CTLLOCKDIR)
|
|
|
|
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(CTLLOCKDIR) >$(CHOWN_OUTPUT)
|
|
|
|
chmod -R 750 $(CTLLOCKDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
#
|
|
|
|
# Log directory
|
|
|
|
install -d -m 750 $(O_USER) $(LOGDIR)
|
|
|
|
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(LOGDIR) >$(CHOWN_OUTPUT)
|
|
|
|
chmod -R 750 $(LOGDIR)
|
|
|
|
#
|
|
|
|
# Documentation
|
|
|
|
install -d $(DOCDIR)
|
2010-09-28 16:05:53 +02:00
|
|
|
[ -f ../doc/guide.html ] \
|
|
|
|
&& install -m 644 ../doc/dev.html $(DOCDIR) \
|
|
|
|
&& install -m 644 ../doc/guide.html $(DOCDIR) \
|
|
|
|
&& install -m 644 ../doc/*.png $(DOCDIR) \
|
|
|
|
|| echo "No ../doc/guide.html was built"
|
2010-01-25 19:27:24 +01:00
|
|
|
install -m 644 ../doc/*.txt $(DOCDIR)
|
2010-06-12 13:08:28 +02:00
|
|
|
[ -f ../doc/guide.pdf ] \
|
|
|
|
&& install -m 644 ../doc/guide.pdf $(DOCDIR) \
|
|
|
|
|| echo "No ../doc/guide.pdf was built"
|
2010-06-12 14:24:12 +02:00
|
|
|
install -m 644 ../COPYING $(DOCDIR)
|
2004-05-17 22:36:41 +02:00
|
|
|
|
2007-12-02 02:03:18 +01:00
|
|
|
uninstall: uninstall-binary
|
|
|
|
|
|
|
|
uninstall-binary:
|
2008-07-15 10:45:05 +02:00
|
|
|
rm -f $(SBINDIR)/ejabberdctl
|
|
|
|
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 -fr $(PRIVDIR)
|
|
|
|
rm -fr $(EJABBERDDIR)
|
2007-12-02 02:03:18 +01:00
|
|
|
|
|
|
|
uninstall-all: uninstall-binary
|
|
|
|
rm -rf $(ETCDIR)
|
|
|
|
rm -rf $(EJABBERDDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
rm -rf $(SPOOLDIR)
|
2010-01-24 14:39:15 +01:00
|
|
|
rm -rf $(CTLLOCKDIR)
|
2008-07-15 10:45:05 +02:00
|
|
|
rm -rf $(LOGDIR)
|
2007-12-02 02:03:18 +01:00
|
|
|
|
2009-10-23 17:14:08 +02:00
|
|
|
clean: clean-recursive clean-local clean-devdoc
|
2004-05-17 22:36:41 +02:00
|
|
|
|
|
|
|
clean-local:
|
2008-12-01 16:53:30 +01:00
|
|
|
rm -f *.beam $(ERLSHLIBS) epam ejabberdctl.example
|
2005-12-22 15:48:01 +01:00
|
|
|
rm -f XmppAddr.asn1db XmppAddr.erl XmppAddr.hrl
|
2003-10-17 21:15:38 +02:00
|
|
|
|
2004-05-17 22:36:41 +02:00
|
|
|
distclean: distclean-recursive clean-local
|
|
|
|
rm -f config.status
|
|
|
|
rm -f config.log
|
|
|
|
rm -f Makefile
|
|
|
|
|
2003-10-17 21:15:38 +02:00
|
|
|
TAGS:
|
|
|
|
etags *.erl
|
|
|
|
|
|
|
|
Makefile: Makefile.in
|
2007-05-29 16:31:12 +02:00
|
|
|
|
|
|
|
dialyzer: $(BEAMS)
|
|
|
|
@dialyzer -c .
|
2009-05-14 23:12:12 +02:00
|
|
|
|
2009-10-23 17:14:08 +02:00
|
|
|
## Devdoc definitions
|
|
|
|
SRCDIR=.
|
|
|
|
DDTDIR=.
|
|
|
|
DEVDOCDIR=../doc/devdoc
|
|
|
|
DEVDOC_ERLS = $(wildcard ../doc/devdoc/*.erl)
|
|
|
|
DEVDOC_BEAMS = $(DEVDOC_ERLS:.erl=.beam)
|
|
|
|
APPNAME = ejabberd
|
|
|
|
VSN = $(shell sed '/vsn/!d;s/\(.*\)"\(.*\)"\(.*\)/\2/' ./ejabberd.app)
|
|
|
|
.PHONY = all
|
|
|
|
HTMLS = $(SOURCES:%.erl=../doc/devdoc/%.html)
|
|
|
|
ERLHTMLS = $(SOURCES:%.erl=../doc/devdoc/%.erl.html)
|
|
|
|
SVGS = $(SOURCES:%.erl=../doc/devdoc/%.svg)
|
|
|
|
EDOCINDEX = $(DEVDOCDIR)/index.html
|
|
|
|
|
|
|
|
## Devdoc rules
|
|
|
|
devdoc: compile-devdoc devdoc-root devdoc-recursive
|
|
|
|
$(devdoc-customize)
|
|
|
|
$(devdoc-move)
|
|
|
|
devdoc-root: $(EDOCINDEX) $(HTMLS) $(ERLHTMLS) $(SVGS)
|
|
|
|
|
|
|
|
define devdoc-customize
|
|
|
|
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/<span class="attribute" >module<\/span>(\([A-Za-z0-9_]*\))/<span class="attribute" >module<\/span>(<a href="\1.html">\1<\/a>)/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/arity="\([0-9]*\)" >\([A-Za-z0-9_]*\)</><a class="function" id="\2-\1" href="EDOCFILENAME#\2-\1">\2<\/a></g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/class="export" >\([A-Za-z0-9_]*\)\/\([0-9]*\)</class="export" ><a href="#\1-\2">\1\/\2<\/a></g;' {} \;
|
|
|
|
for fn in *.erl.html; do \
|
|
|
|
sed -i 's/EDOCFILENAME/'$${fn%.erl.html}.html'/g;' $${fn} ; \
|
|
|
|
sed = $${fn} | sed 'N;s/\n/ /;s/^\([0-9_]*\)/<a href="#\1" name="\1" class="l">\1<\/a>/' >$${fn}.tmp ; \
|
|
|
|
mv $${fn}.tmp $${fn} ; \
|
|
|
|
sed -i 's/<a href="#1" name="1" class="l">1<\/a> <html><link rel="stylesheet" type="text\/css"href="escobar.css"><\/link><body><pre><span class="comment" >/<html><link rel="stylesheet" type="text\/css" href="escobar.css"><\/link><body><pre><span class="comment" ><a href="#1" name="1" class="l">1<\/a> /g;' $${fn} ; \
|
|
|
|
done
|
|
|
|
-mv *.erl.html $(DEVDOCDIR)
|
|
|
|
|
|
|
|
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/<a href="overview-summary.html" target="overviewFrame">/<a href="index.html" target="_parent">/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/align=\"right\" border=\"0\" alt=\"erlang logo\"/alt=\"erlang logo\"><\/a><a href=\"http:\/\/www.ejabberd.im\/\"><img src=\"ejabberd-im.png\" alt=\"ejabberd Community\"><\/a><a href=\"http:\/\/www.process-one.net\/en\/ejabberd\/\"><img src=\"ejabberd-p1.png\" alt=\"ejabberd home\"><\/a><a href=\"http:\/\/www.process-one.net\/\"><img src=\"process-one.png\" alt=\"ProcessOne\"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/^<h1>Module \([A-Za-z0-9_]*\)<\/h1>/<h1>Module \1 [<a href="\1.erl.html">erl<\/a> <a href="\1.svg">svg<\/a>]<\/h1>/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/class="function"><a name="\([A-Za-z0-9_]*\)-\([0-9_]*\)">/class="function"><a name="\1-\2" href="ESCOFILENAME#\1-\2">/g;' {} \;
|
|
|
|
-for fn in *.html; do sed -i 's/ESCOFILENAME/'$${fn%.html}.erl.html'/g;' $${fn} ; done
|
|
|
|
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="EXP\([A-Za-z0-9_]*\).html#\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="PRI\([A-Za-z0-9_]*\).html#\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="APP\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="EXM\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.process-one.net\/docs\/exmpp\/devdoc\/trunk\/\1.html#\2-\3"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="OTP\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.erlang.org\/doc\/man\/\1.html#\2-\3"/g;' {} \;
|
|
|
|
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="OTP\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.erlang.org\/doc\/man\/erlang.html#\1-\2"/g;' {} \;
|
|
|
|
endef
|
|
|
|
|
|
|
|
define devdoc-move
|
|
|
|
-rm *.dot
|
|
|
|
-mv *.html $(DEVDOCDIR)
|
|
|
|
-mv *.svg $(DEVDOCDIR)
|
|
|
|
endef
|
|
|
|
|
|
|
|
compile-devdoc: $(DEVDOC_BEAMS)
|
|
|
|
[ ! -f funrelg.beam ] || mv funrelg.beam $(DEVDOCDIR)
|
|
|
|
[ ! -f escobar_hilite.beam ] || mv escobar_hilite.beam $(DEVDOCDIR)
|
|
|
|
[ ! -f escobar_run.beam ] || mv escobar_run.beam $(DEVDOCDIR)
|
|
|
|
|
|
|
|
$(EDOCINDEX):
|
|
|
|
@ERL@ -noshell -run edoc_run application "'$(APPNAME)'" '"$(SRCDIR)"' \
|
|
|
|
'[{dir,"$(DDTDIR)"},{packages,false},{todo,true},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"overview.edoc"}]' -s init stop
|
|
|
|
sed -i 's/<title>The ejabberd application<\/title>/<title>ejabberd devdoc<\/title><link rel="shortcut icon" href="favicon.ico" type="image\/x-icon"\/>/g;' $(DDTDIR)/index.html
|
|
|
|
mv edoc-info $(DEVDOCDIR)
|
|
|
|
mv *.png $(DEVDOCDIR)
|
|
|
|
cp *.html $(DEVDOCDIR)
|
|
|
|
@ERL@ -noshell -pa $(DEVDOCDIR) -run escobar_run dir $(SRCDIR) $(SRCDIR) -s init stop
|
|
|
|
@ERL@ -noshell -pa $(DEVDOCDIR) -run funrelg dir $(SRCDIR) $(SRCDIR) -s init stop
|
|
|
|
$(devdoc-customize)
|
|
|
|
$(devdoc-move)
|
|
|
|
|
|
|
|
$(DEVDOCDIR)/%.erl.html: %.erl
|
|
|
|
@ERL@ -noshell -pa $(DEVDOCDIR) -run escobar_run file $< $(SRCDIR) -s init stop
|
|
|
|
|
|
|
|
$(DEVDOCDIR)/%.html: %.erl
|
|
|
|
@ERL@ -noshell -run edoc_run file $< \
|
|
|
|
'[{dir,"$(DDTDIR)"},{packages,false},{todo,true},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"overview.edoc"}]' -s init stop
|
|
|
|
|
|
|
|
$(DEVDOCDIR)/%.svg: %.erl
|
|
|
|
@ERL@ -noshell -pa $(DEVDOCDIR) -run funrelg file $< $(SRCDIR) -s init stop
|
|
|
|
|
|
|
|
clean-devdoc:
|
|
|
|
rm -f $(DEVDOCDIR)/edoc-info
|
|
|
|
rm -f $(DEVDOCDIR)/erlang.png
|
|
|
|
rm -f $(DEVDOCDIR)/*.beam
|
|
|
|
rm -f $(DEVDOCDIR)/*.dot
|
|
|
|
rm -f $(DEVDOCDIR)/*.html
|
|
|
|
rm -f $(DEVDOCDIR)/*.svg
|