view libpurple/protocols/bonjour/Makefile.mingw @ 22615:0f8fe131008a

Make ./configure fail immediately if requirements for enabled options are not met. This should provide more reproducible feature sets for users instead of picking up what development packages happen to be installed when they compile. Options can of course be disabled with the --disable-XXX arguments. Some of the cases that this will now fail on by default may not be considered essential, if people feel that about any of them then we should switch the features to disabled by default.
author Stu Tomlinson <stu@nosnilmot.com>
date Wed, 02 Apr 2008 16:45:07 +0000
parents db7fa42845f6
children 1d712c4f9b6c
line wrap: on
line source

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

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

TARGET = libbonjour
TYPE = PLUGIN

# Static or Plugin...
ifeq ($(TYPE),STATIC)
  DEFINES += -DSTATIC
  DLL_INSTALL_DIR =	$(PURPLE_INSTALL_DIR)
else
ifeq ($(TYPE),PLUGIN)
  DLL_INSTALL_DIR =	$(PURPLE_INSTALL_PLUGINS_DIR)
endif
endif

CFLAGS += -DUSE_BONJOUR_APPLE

##
## INCLUDE PATHS
##
INCLUDE_PATHS +=	-I. \
			-I$(GTK_TOP)/include \
			-I$(GTK_TOP)/include/glib-2.0 \
			-I$(GTK_TOP)/lib/glib-2.0/include \
			-I$(BONJOUR_TOP)/Include \
			-I$(LIBXML2_TOP)/include \
			-I$(PURPLE_TOP) \
			-I$(PURPLE_TOP)/win32 \
			-I$(PIDGIN_TREE_TOP)

LIB_PATHS +=		-L$(GTK_TOP)/lib \
			-L$(LIBXML2_TOP)/lib \
			-L$(PURPLE_TOP)

##
##  SOURCES, OBJECTS
##
C_SRC =			bonjour.c \
			bonjour_ft.c \
			buddy.c \
			dns_sd_proxy.c \
			jabber.c \
			mdns_common.c \
			mdns_win32.c \
			parser.c

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

##
## LIBRARIES
##
LIBS =	\
			-lglib-2.0 \
			-lws2_32 \
			-lintl \
			-lnetapi32 \
			-lxml2 \
			-lpurple

ifeq ($(LINK_DNS_SD_DIRECTLY), 1)
	CFLAGS += -DLINK_DNS_SD_DIRECTLY
	LIB_PATHS += -L$(BONJOUR_TOP)/lib/win32 -L$(BONJOUR_TOP)/lib
	LIBS += -ldnssd
endif

include $(PIDGIN_COMMON_RULES)

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

all: $(TARGET).dll

install: all $(DLL_INSTALL_DIR)
	cp $(TARGET).dll $(DLL_INSTALL_DIR)

$(OBJECTS): $(PURPLE_CONFIG_H)

$(TARGET).dll: $(PURPLE_DLL).a $(OBJECTS)
	$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $(TARGET).dll

##
## CLEAN RULES
##

clean:
	rm -f $(OBJECTS)
	rm -f $(TARGET).dll

include $(PIDGIN_COMMON_TARGETS)