# $Id$ CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ ERLANG_CFLAGS= @ERLANG_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ ERLANG_LIBS = @ERLANG_LIBS@ ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj # make debug=true to compile Erlang module with debug informations. ifdef debug ERLC_FLAGS+=+debug_info endif ifdef ejabberd_debug ERLC_FLAGS+=-Dejabberd_debug endif ifeq (@roster_gateway_workaround@, true) ERLC_FLAGS+=-DROSTER_GATEWAY_WORKAROUND endif ifeq (@full_xml@, true) ERLC_FLAGS+=-DFULL_XML_SUPPORT endif ifeq (@transient_supervisors@, false) ERLC_FLAGS+=-DNO_TRANSIENT_SUPERVISORS endif prefix = @prefix@ SUBDIRS = @mod_irc@ @mod_pubsub@ @mod_muc@ @mod_proxy65@ @eldap@ @pam@ @web@ stringprep @tls@ @odbc@ @ejabberd_zlib@ ERLSHLIBS = expat_erl.so SOURCES = $(wildcard *.erl) BEAMS = $(SOURCES:.erl=.beam) DESTDIR = EJABBERDDIR = $(DESTDIR)@prefix@/var/lib/ejabberd BEAMDIR = $(EJABBERDDIR)/ebin PRIVDIR = $(EJABBERDDIR)/priv SODIR = $(PRIVDIR)/lib MSGSDIR = $(PRIVDIR)/msgs LOGDIR = $(DESTDIR)@prefix@/var/log/ejabberd ETCDIR = $(DESTDIR)@prefix@/etc/ejabberd SBINDIR = $(DESTDIR)@prefix@/sbin ifeq ($(shell uname),Darwin) DYNAMIC_LIB_CFLAGS = -fPIC -bundle -flat_namespace -undefined suppress else # Assume Linux-style dynamic library flags DYNAMIC_LIB_CFLAGS = -fpic -shared endif all: $(ERLSHLIBS) compile-beam all-recursive compile-beam: XmppAddr.hrl $(BEAMS) %.beam: %.erl @ERLC@ -W $(ERLC_FLAGS) $< all-recursive install-recursive uninstall-recursive \ clean-recursive distclean-recursive \ 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 %.hrl: %.asn1 @ERLC@ $(ASN_FLAGS) $< @ERLC@ -W $(ERLC_FLAGS) $*.erl $(ERLSHLIBS): %.so: %.c gcc -Wall $(CFLAGS) $(LDFLAGS) $(LIBS) \ $(subst ../,,$(subst .so,.c,$@)) \ $(EXPAT_LIBS) $(EXPAT_CFLAGS) \ $(ERLANG_LIBS) $(ERLANG_CFLAGS) \ -o $@ $(DYNAMIC_LIB_CFLAGS) install: all install -d $(BEAMDIR) install -m 644 *.beam $(BEAMDIR) rm -f $(BEAMDIR)/configure.beam install -m 644 *.app $(BEAMDIR) install -d $(SODIR) install -m 644 *.so $(SODIR) -install -m 750 epam $(SODIR) install -d $(MSGSDIR) install -m 644 msgs/*.msg $(MSGSDIR) install -d $(ETCDIR) [ -f $(ETCDIR)/ejabberd.cfg ] && install -b -m 644 ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg-new || install -b -m 644 ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg sed -e "s*@rootdir@*@prefix@*" ejabberdctl.template > ejabberdctl.example [ -f $(ETCDIR)/ejabberdctl.cfg ] && install -b -m 644 ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new || install -b -m 644 ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg install -b -m 644 ejabberd.inetrc $(ETCDIR)/ejabberd.inetrc install -d $(SBINDIR) install -m 755 ejabberdctl.example $(SBINDIR)/ejabberdctl install -d $(LOGDIR) clean: clean-recursive clean-local clean-local: rm -f *.beam $(ERLSHLIBS) epam rm -f XmppAddr.asn1db XmppAddr.erl XmppAddr.hrl distclean: distclean-recursive clean-local rm -f config.status rm -f config.log rm -f Makefile TAGS: etags *.erl Makefile: Makefile.in dialyzer: $(BEAMS) @dialyzer -c .