include ../platform-settings
ICHATHOME=/private/var/jabber/
ICHATXML=/etc/jabber/jabber.xml
ifeq ($(ISSINGLE),1)
DEFINES=-DHOME="\"$(ICHATHOME)\"" -DSINGLE -DSTATIC
else
DEFINES=-DHOME="\"$(ICHATHOME)\"" -DCONFIGXML="\"$(ICHATXML)\""
endif
ifeq ($(ISSTATIC),1)
DEFINES=-DHOME="\"$(ICHATHOME)\"" -DSTATIC
endif
CFLAGS=$(CCFLAGS) $(DEFINES)
jabberd_HEADERS=jabberd.h single.h
SUBDIRS=base lib $(PSUBDIR)
LIBS += -lexpat
FRAMEWORKS=-framework CoreFoundation -framework DirectoryService -framework Security
jabberd_OBJECTS = \
config.o \
mio.o \
mio_raw.o \
mio_xml.o \
mio_ssl.o \
deliver.o \
heartbeat.o \
jabberd.o \
load.o \
xdb.o \
mtq.o \
static.o \
log.o
jabberd_EXOBJECTS = \
lib/expat.o \
lib/base64.o \
lib/genhash.o \
lib/jid.o \
lib/jpacket.o \
lib/jutil.o \
lib/karma.o \
lib/pool.o \
lib/pproxy.o \
lib/rate.o \
lib/sha.o \
lib/snprintf.o \
lib/socket.o \
lib/str.o \
lib/xmlnode.o \
lib/xstream.o \
lib/xhash.o \
base/base_connect.o \
base/base_dynamic.o \
base/base_exec.o \
base/base_stdout.o \
base/base_accept.o \
base/base_file.o \
base/base_format.o \
base/base_stderr.o \
base/base_to.o
jabberd_STATICOBJS=\
$(JHOME)/jsm/deliver.o \
$(JHOME)/jsm/jsm.o \
$(JHOME)/jsm/modules.o \
$(JHOME)/jsm/offline.o \
$(JHOME)/jsm/server.o \
$(JHOME)/jsm/authreg.o \
$(JHOME)/jsm/sessions.o \
$(JHOME)/jsm/users.o \
$(JHOME)/jsm/util.o \
$(JHOME)/jsm/modules/mod_admin.o \
$(JHOME)/jsm/modules/mod_agents.o \
$(JHOME)/jsm/modules/mod_announce.o \
$(JHOME)/jsm/modules/mod_auth_plain.o \
$(JHOME)/jsm/modules/mod_auth_digest.o \
$(JHOME)/jsm/modules/mod_auth_0k.o \
$(JHOME)/jsm/modules/mod_browse.o \
$(JHOME)/jsm/modules/mod_echo.o \
$(JHOME)/jsm/modules/mod_filter.o \
$(JHOME)/jsm/modules/mod_groups.o \
$(JHOME)/jsm/modules/mod_last.o \
$(JHOME)/jsm/modules/mod_presence.o \
$(JHOME)/jsm/modules/mod_roster.o \
$(JHOME)/jsm/modules/mod_time.o \
$(JHOME)/jsm/modules/mod_vcard.o \
$(JHOME)/jsm/modules/mod_version.o \
$(JHOME)/jsm/modules/mod_register.o \
$(JHOME)/jsm/modules/mod_log.o \
$(JHOME)/jsm/modules/mod_offline.o \
$(JHOME)/jsm/modules/mod_xml.o \
$(JHOME)/dnsrv/dnsrv.o \
$(JHOME)/dialback/dialback.o \
$(JHOME)/dialback/dialback_out.o \
$(JHOME)/dialback/dialback_in.o \
$(JHOME)/pthsock/client.o \
$(JHOME)/xdb_file/xdb_file.o
ifneq ($(__CYGWIN__),1)
jabberd_STATICOBJS+= $(JHOME)/dnsrv/srv_resolv.o
endif
ifeq ($(__CYGWIN__),1)
PTHLIB=$(shell pth-config --libdir)/libpth.a
EXTRALIBS=$(LIBS) /lib/crt0.o $(shell gcc -print-libgcc-file-name) -lcygwin -lkernel32
endif
single: static
all: all-recursive
clean: clean-recursive
static: static-recursive
$(jabberd_OBJECTS): $(jabberd_HEADERS)
all-local: $(jabberd_OBJECTS)
ifeq ($(__CYGWIN__),1)
echo EXPORTS > jabberd.def
echo deliver__flag >> jabberd.def
nm $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(PTHLIB) | grep '^........ [T] _' | sed 's/[^_]*_//' | sort >> jabberd.def
ld --base-file jabberd.base -o jabberd.exe $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(dllinit_OBJECTS) $(EXTRALIBS) $(LDFLAGS)
dlltool --as=as --dllname jabberd.exe --def jabberd.def --base-file jabberd.base --output-exp jabberd.exp
ld --base-file jabberd.base jabberd.exp -o jabberd.exe $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(dllinit_OBJECTS) $(EXTRALIBS) $(LDFLAGS)
dlltool --as=as --dllname jabberd.exe --def jabberd.def --base-file jabberd.base --output-exp jabberd.exp
ld jabberd.exp -o jabberd.exe $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(dllinit_OBJECTS) $(EXTRALIBS) $(LDFLAGS)
dlltool --as=as --dllname jabberd.exe --def jabberd.def --output-lib jabberd.a
else
$(CC) $(CFLAGS) -o jabberd $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(XLDFLAGS) $(LDFLAGS) $(LIBS) $(PLINK) $(FRAMEWORKS)
endif
static-local: $(jabberd_OBJECTS)
$(CC) $(CFLAGS) -o jabberd $(jabberd_OBJECTS) $(jabberd_EXOBJECTS) $(jabberd_STATICOBJS) $(LDFLAGS) $(SLIBS) $(PLINK) $(FRAMEWORKS)
install-local:
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive static-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-local"; \
else \
local_target="$$target"; \
fi; \
if test "$$subdir" = "pth-1.3.7"; then \
local_target="all"; \
fi; \
(cd $$subdir && $(MAKE) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
echo "Making $$target"; \
$(MAKE) "$$target-local" || exit 1; \
fi; test -z "$$fail"
clean-local:
ifeq ($(__CYGWIN__),1)
rm -f $(jabberd_OBJECTS) jabberd *.exe *.a *.base *.def *.exp
else
rm -f $(jabberd_OBJECTS) jabberd
endif
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-local"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
.PHONY: clean static single