pidgin/pidgin

9aeedc02a0e4
Merged in dequisdequis/pidgin (pull request #167)

Facebook: port fixes from bitlbee-facebook
#
# 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/libsasl2-3.dll
CYRUS_SASL_PLUGINS = \
$(CYRUS_SASL_TOP)/lib/sasl2/libanonymous-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libcrammd5-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libdigestmd5-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libplain-3.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 \
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 \
cipher.c \
circularbuffer.c \
cmds.c \
connection.c \
conversation.c \
conversationtypes.c \
conversations.c \
core.c \
debug.c \
dnsquery.c \
dnssrv.c \
e2ee.c \
eventloop.c \
http.c \
idle.c \
image.c \
image-store.c \
keyring.c \
log.c \
media/candidate.c \
media/enum-types.c \
mediamanager.c \
media.c \
memorypool.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 \
request.c \
request-datasheet.c \
roomlist.c \
savedstatuses.c \
server.c \
signals.c \
smiley.c \
smiley-custom.c \
smiley-list.c \
smiley-parser.c \
smiley-theme.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 \
trie.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' \
-e 's/@PURPLE_MAJOR_VERSION@/$(PURPLE_MAJOR_VERSION)/g' \
-e 's/@PURPLE_MINOR_VERSION@/$(PURPLE_MINOR_VERSION)/g' \
-e 's/@PURPLE_MICRO_VERSION@/$(PURPLE_MICRO_VERSION)/g' \
-e 's/@PURPLE_API_VERSION@/$(PURPLE_API_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.in $(ENUM_HEADERS)
@echo -e " GEN\t$@"
@$(GLIB_MKENUMS) --template enums.h.in $(ENUM_HEADERS) > enums.h
enums.c: enums.c.in enums.h $(ENUM_HEADERS)
@echo -e " GEN\t$@"
@$(GLIB_MKENUMS) --template enums.c.in $(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)