libpurple/Makefile.mingw

Fri, 11 Oct 2013 01:26:38 +0530

author
Ankit Vani <a@nevitus.org>
date
Fri, 11 Oct 2013 01:26:38 +0530
branch
soc.2013.gobjectification.plugins
changeset 36868
1aca7f52f1ef
parent 36864
0d0601382feb
child 36906
729bdf55b919
permissions
-rw-r--r--

Backed out the previous 4 changesets. GSignals do not seem feasible with pidgin's architecture using any method.
I think we should keep using purple signals for class events and use gsignals for instance events.

#
# Makefile.mingw
#
# Description: Makefile for win32 (mingw) version of libpurple
#

PIDGIN_TREE_TOP := ..
include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak

TARGET = libpurple

ifeq ($(CYRUS_SASL), 1)
NEEDED_DLLS = $(CYRUS_SASL_TOP)/bin/libsasl.dll

CYRUS_SASL_PLUGINS = \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslANONYMOUS.dll \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslCRAMMD5.dll \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslDIGESTMD5.dll \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslGSSAPI.dll \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslLOGIN.dll \
                        $(CYRUS_SASL_TOP)/bin/sasl2/saslPLAIN.dll

endif

##
## INCLUDE PATHS
##
INCLUDE_PATHS +=	\
			-I$(PURPLE_TOP) \
			-I$(PURPLE_TOP)/win32 \
			-I$(PIDGIN_TREE_TOP) \
			-I$(GTK_TOP)/include \
			-I$(GTK_TOP)/include/glib-2.0 \
			-I$(GTK_TOP)/lib/glib-2.0/include \
			-I$(JSON_GLIB_TOP)/include/json-glib-1.0 \
			-I$(LIBXML2_TOP)/include/libxml2 \
			-I$(NSS_TOP)/include/nspr4 \
			-I$(NSS_TOP)/include/nss3 \
			-I$(GNUTLS_TOP)/include \
			$(VV_INCLUDE_PATHS)

LIB_PATHS +=		-L$(GTK_TOP)/lib \
			-L$(JSON_GLIB_TOP)/lib \
			-L$(LIBXML2_TOP)/lib \
			-L$(NSS_TOP)/lib \
			-L$(GNUTLS_TOP)/lib \
			$(VV_LIB_PATHS)

##
##  SOURCES, OBJECTS
##
ifeq "$(USE_VV)" "1"
VV_SRC = \
	media/backend-fs2.c \
	media/backend-iface.c \
	media/codec.c
else
VV_SRC =
endif

BUILT_SRC = marshallers.c enums.c

C_SRC =	\
			$(BUILT_SRC) \
			account.c \
			accounts.c \
			accountopt.c \
			blistnode.c \
			blistnodetypes.c \
			buddylist.c \
			buddyicon.c \
			certificate.c \
			cipher.c \
			ciphers/aescipher.c \
			ciphers/descipher.c \
			ciphers/des3cipher.c \
			ciphers/hmaccipher.c \
			ciphers/md4hash.c \
			ciphers/md5hash.c \
			ciphers/pbkdf2cipher.c \
			ciphers/rc4cipher.c \
			ciphers/sha1hash.c \
			ciphers/sha256hash.c \
			circularbuffer.c \
			cmds.c \
			connection.c \
			conversation.c \
			conversationtypes.c \
			conversations.c \
			core.c \
			debug.c \
			dnsquery.c \
			dnssrv.c \
			eventloop.c \
			hash.c \
			http.c \
			idle.c \
			imgstore.c \
			keyring.c \
			log.c \
			media/candidate.c \
			media/enum-types.c \
			mediamanager.c \
			media.c \
			mime.c \
			nat-pmp.c \
			network.c \
			notify.c \
			ntlm.c \
			plugins.c \
			pluginpref.c \
			pounce.c \
			prefs.c \
			presence.c \
			proxy.c \
			protocol.c \
			protocols.c \
			purple-socket.c \
			request.c \
			roomlist.c \
			savedstatuses.c \
			server.c \
			signals.c \
			smiley.c \
			sound-theme-loader.c \
			sound-theme.c \
			sound.c \
			sslconn.c \
			status.c \
			stringref.c \
			stun.c \
			theme-loader.c \
			theme-manager.c \
			theme.c \
			upnp.c \
			util.c \
			version.c \
			whiteboard.c \
			xfer.c \
			xmlnode.c \
			win32/giowin32.c \
			win32/libc_interface.c \
			win32/win32dep.c \
			$(VV_SRC)

RC_SRC = win32/libpurplerc.rc

ENUM_HEADERS = \
	account.h \
	cipher.h \
	connection.h \
	conversation.h \
	conversationtypes.h \
	roomlist.h \
	status.h \
	xfer.h

OBJECTS = $(C_SRC:%.c=%.o) $(RC_SRC:%.rc=%.o)

##
## LIBRARIES
##
LIBS =	\
		-ldnsapi \
		-lglib-2.0 \
		-lgthread-2.0 \
		-lgobject-2.0 \
		-lgmodule-2.0 \
		-lintl \
		-lws2_32 \
		-lxml2 \
		-ljson-glib-1.0 \
		-lnss3 \
		-lnspr4 \
		-lgnutls \
		-lz \
		$(VV_LIBS)

include $(PIDGIN_COMMON_RULES)

##
## TARGET DEFINITIONS
##
.PHONY: all install install_shallow clean

all: $(TARGET).dll
	$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE)
	$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE)

install_shallow: $(PURPLE_INSTALL_DIR) $(TARGET).dll
	cp $(TARGET).dll $(PURPLE_INSTALL_DIR)
	cp $(NEEDED_DLLS) $(PURPLE_INSTALL_DIR)
ifeq ($(CYRUS_SASL), 1)
	mkdir -p $(PURPLE_INSTALL_DIR)/sasl2
	cp $(CYRUS_SASL_PLUGINS) $(PURPLE_INSTALL_DIR)/sasl2
endif

install: install_shallow all
	$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE) install
	$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install

./win32/libpurplerc.rc: ./win32/libpurplerc.rc.in $(PIDGIN_TREE_TOP)/VERSION
	@echo -e "  GEN\t$@"
	@sed -e 's/@PURPLE_VERSION@/$(PURPLE_VERSION)/g' \
	    $@.in > $@

$(OBJECTS): $(PURPLE_CONFIG_H) $(PURPLE_VERSION_H) $(PURPLE_PURPLE_H)

marshallers.h: marshallers.list
	@echo -e "  GEN\t$@"
	@$(GLIB_GENMARSHAL) --prefix=purple_smarshal $< --header > marshallers.h

marshallers.c: marshallers.list marshallers.h
	@echo -e "  GEN\t$@"
	@echo "#include \"marshallers.h\"" > marshallers.c
	@$(GLIB_GENMARSHAL) --prefix=purple_smarshal $< --body >> marshallers.c

enums.h: enums.h.template $(ENUM_HEADERS)
	@echo -e "  GEN\t$@"
	@$(GLIB_MKENUMS) --template enums.h.template $(ENUM_HEADERS) > enums.h

enums.c: enums.c.template enums.h $(ENUM_HEADERS)
	@echo -e "  GEN\t$@"
	@$(GLIB_MKENUMS) --template enums.c.template $(ENUM_HEADERS) > enums.c

$(TARGET).dll $(TARGET).dll.a: $(OBJECTS)
	$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -Wl,--output-def,$(TARGET).def,--out-implib,$(TARGET).dll.a -o $(TARGET).dll

##
## CLEAN RULES
##
clean:
	rm -f $(OBJECTS) $(RC_SRC) $(PURPLE_VERSION_H) $(PURPLE_PURPLE_H) marshallers.h marshallers.c enums.h enums.c
	rm -f $(TARGET).dll $(TARGET).dll.a $(TARGET).def
	$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE) clean
	$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE) clean

include $(PIDGIN_COMMON_TARGETS)

mercurial