# $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@ # 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 prefix = @prefix@ SUBDIRS = @mod_irc@ @mod_pubsub@ @mod_muc@ @eldap@ @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 ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj 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) $< $(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 -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 install -d $(LOGDIR) clean: clean-recursive clean-local clean-local: rm -f *.beam $(ERLSHLIBS) 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