# -*- Makefile -*- # Author: Christof Meerwald, http://cmeerw.org # http://JabXPCOM.sunsite.dk # # include customised configuration ifdef CONFIG -include config-$(CONFIG).mak else -include config.mak endif # include default configuration include config-default.mak XPIDL:=$(XPCOM_BIN)/xpidl DEFINES:=$(DEFINES_XPCOM) INCLUDES:=$(INCLUDES_GCC) $(XPCOM_INCLUDE) \ $(XPCOM_INCLUDE)/nspr $(XPCOM_INCLUDE)/string $(XPCOM_INCLUDE)/xpcom ifdef SIGC_DIR ifndef SIGC_INCLUDE INCLUDES+=$(SIGC_DIR)/lib/sigc++/include ifneq ($(SIGC_DIR),/usr) INCLUDES+=$(SIGC_DIR)/include endif else INCLUDES+=$(foreach dir,$(SIGC_INCLUDE),$(dir)) endif else ifndef JABBEROO_DIR INCLUDES+=$(JABBEROO_SRC)/libsigc++ $(JABBEROO_SRC)/libsigc++/sigc++/config endif endif # hmm, try to avoid extra -I/usr/include as this seems to confuse the compiler ifneq ($(XPCOM_INCLUDE),/usr/include) INCLUDES+=$(XPCOM_INCLUDE) endif ifneq ($(NSPR_INCLUDE),/usr/include) INCLUDES+=$(NSPR_INCLUDE) endif ifdef JABBEROO_DIR INCLUDES+=$(JABBEROO_DIR)/include/jabberoo else INCLUDES+=$(JABBEROO_SRC)/include endif ifdef LIBJUDO_SRC INCLUDES+=$(LIBJUDO_SRC)/src $(LIBJUDO_SRC)/src/expat endif ifdef OPENSSL_DIR ifneq ($(OPENSSL_DIR),/usr) INCLUDES+=$(OPENSSL_DIR)/include endif endif ifdef GNUTLS_DIR INCLUDES+=$(GNUTLS_DIR)/include/gnutls endif CFLAGS:=$(CFLAGS_COMPILER) $(CFLAGS_CONFIG) $(CFLAGS_XPCOM) \ $(foreach def,$(DEFINES),-D'$(def)') \ $(foreach incl,$(INCLUDES),-I'$(incl)') SRCS_JABXPCOM:=judoxpcom-wrapper.cc \ jabxpcom-packet.cc jabxpcom-presence.cc jabxpcom-message.cc \ jabxpcom-iq.cc jabxpcom-session.cc \ jabxpcom-module.cc SRCS_TCP_STREAM:=tcp_stream.cc io_thread.cc SRCS_HTTPPROXY_STREAM:=httpproxy_stream.cc SRCS_SOCKSPROXY_STREAM:=socksproxy_stream.cc SRCS_GNUTLS_STREAM:=gnutls_stream.cc SRCS_OPENSSL_STREAM:=openssl_stream.cc SRCS_TCP_STREAM:=$(foreach src,$(SRCS_TCP_STREAM),io/$(PLATFORM)/$(src)) SRCS_HTTPPROXY_STREAM:=$(foreach src,$(SRCS_HTTPPROXY_STREAM),io/$(src)) SRCS_SOCKSPROXY_STREAM:=$(foreach src,$(SRCS_SOCKSPROXY_STREAM),io/$(src)) SRCS_GNUTLS_STREAM:=$(foreach src,$(SRCS_GNUTLS_STREAM),io/$(src)) SRCS_OPENSSL_STREAM:=$(foreach src,$(SRCS_OPENSSL_STREAM),io/$(src)) SRCS:=$(SRCS_JABXPCOM) $(SRCS_TCP_STREAM) \ $(SRCS_HTTPPROXY_STREAM) $(SRCS_SOCKSPROXY_STREAM) \ $(SRCS_GNUTLS_STREAM) $(SRCS_OPENSSL_STREAM) IDLS:=io/datastream.idl io/streamconnector.idl jabxpcom.idl judoxpcom.idl LIBPATH:=$(XPCOM_DIR)/lib $(XPCOM_BIN) ifdef JABBEROO_DIR LIBPATH+=$(JABBEROO_DIR)/lib else LIBPATH+=$(JABBEROO_SRC)/src $(LIBJUDO_SRC)/src/.libs $(JABBEROO_SRC)/expat endif ifdef SIGC_DIR LIBPATH+=$(SIGC_DIR)/lib else LIBPATH+=$(JABBEROO_DIR)/libsigc++/sigc++ endif ifdef OPENSSL_DIR LIBPATH+=$(OPENSSL_DIR)/lib endif ifdef GNUTLS_DIR LIBPATH+=$(GNUTLS_DIR)/lib endif OBJS_JABXPCOM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_JABXPCOM)) OBJS_TCP_STREAM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_TCP_STREAM)) OBJS_HTTPPROXY_STREAM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_HTTPPROXY_STREAM)) OBJS_SOCKSPROXY_STREAM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_SOCKSPROXY_STREAM)) OBJS_GNUTLS_STREAM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_GNUTLS_STREAM)) OBJS_OPENSSL_STREAM:=$(patsubst %.cc,%$(SUFFIX_PICOBJ),$(SRCS_OPENSSL_STREAM)) COMPONENT_TARGETS:=$(call NAME_SO,jabxpcom) $(call NAME_SO,tcpstream) \ $(call NAME_SO,httpproxystream) $(call NAME_SO,socksproxystream) ifdef GNUTLS_DIR COMPONENT_TARGETS+=$(call NAME_SO,gnutlsstream) endif ifdef OPENSSL_DIR COMPONENT_TARGETS+=$(call NAME_SO,opensslstream) endif %$(SUFFIX_PICOBJ): %.cc $(call RULE_PICOBJ,$<,$@) %$(SUFFIX_OBJ): %.cc $(call RULE_OBJ,$<,$@) %.xpt: io/%.idl $(XPIDL) -m typelib -o '$(patsubst %.xpt,%,$@)' \ -I'io' -I'$(XPCOM_IDL)' '$<' %.xpt: %.idl $(XPIDL) -m typelib -o '$(patsubst %.xpt,%,$@)' \ -I'io' -I'$(XPCOM_IDL)' '$<' io/%.h: io/%.idl $(XPIDL) -m header -o '$(patsubst %.h,%,$@)' \ -I'io' -I'$(XPCOM_IDL)' '$<' %.h: %.idl $(XPIDL) -m header -o '$(patsubst %.h,%,$@)' \ -I'io' -I'$(XPCOM_IDL)' '$<' all: $(patsubst %.idl,%.h,$(IDLS)) \ $(COMPONENT_TARGETS) \ $(patsubst %.idl,%.xpt,$(IDLS)) $(call NAME_SO,jabxpcom): $(OBJS_JABXPCOM) ifdef LIBJUDO_SRC $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4 jabberoo judo $(SIGC_LIBRARY)) else $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4 jabberoo $(SIGC_LIBRARY)) endif $(call NAME_SO,tcpstream): $(OBJS_TCP_STREAM) $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4) $(call NAME_SO,httpproxystream): $(OBJS_HTTPPROXY_STREAM) $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4) $(call NAME_SO,socksproxystream): $(OBJS_SOCKSPROXY_STREAM) $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4) $(call NAME_SO,gnutlsstream): $(OBJS_GNUTLS_STREAM) $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4 gnutls gcrypt) $(call NAME_SO,opensslstream): $(OBJS_OPENSSL_STREAM) $(call RULE_SO,$^,$@,$(XPCOM_LIBRARY) nspr4 ssl crypto) depend: $(SRCS) @echo "# make dependencies" >Makefile.deps makedepend -a -Y -fMakefile.deps -o'$(SUFFIX_PICOBJ)' \ $(foreach file,$(SRCS),'$(file)') >/dev/null 2>&1 -include Makefile.deps install: all install $(COMPONENT_TARGETS) $(XPCOM_BIN)/components/ install $(patsubst %.idl,%.xpt,$(IDLS)) $(XPCOM_BIN)/components/ clean: rm -f $(OBJS_JABXPCOM) $(OBJS_TCP_STREAM) \ $(OBJS_HTTPPROXY_STREAM) $(OBJS_SOCKSPROXY_STREAM) \ $(OBJS_GNUTLS_STREAM) $(OBJS_OPENSSL_STREAM) \ $(patsubst %.idl,%.h,$(IDLS)) distclean: clean rm -f $(COMPONENT_TARGETS) $(patsubst %.idl,%.xpt,$(IDLS))