#
# Makefile.mingw
#
# Description: Makefile for Pidgin perl module.
#

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

GCCWARNINGS += -Wno-comment -Wno-unused -Wno-nested-externs

DEFINES := $(subst -DWIN32_LEAN_AND_MEAN,,$(DEFINES))

TARGET = Pidgin
EXTUTILS ?= C:/perl/lib/ExtUtils

##
## INCLUDE PATHS
##
INCLUDE_PATHS =		-I. \
			-I$(PIDGIN_TREE_TOP) \
			-I$(PURPLE_TOP) \
			-I$(PURPLE_TOP)/win32 \
			-I$(PIDGIN_TOP) \
			-I$(PIDGIN_TOP)/win32 \
			-I$(GTK_TOP)/include \
			-I$(GTK_TOP)/include/atk-1.0 \
			-I$(GTK_TOP)/include/glib-2.0 \
			-I$(GTK_TOP)/include/gtk-2.0 \
			-I$(GTK_TOP)/include/pango-1.0 \
			-I$(GTK_TOP)/lib/glib-2.0/include \
			-I$(GTK_TOP)/lib/gtk-2.0/include \
			-I$(PERL_LIB_TOP)/CORE

LIB_PATHS += 		-L$(PERL_LIB_TOP) \
			-L$(PURPLE_TOP) \
			-L$(PIDGIN_TOP) \
			-L$(PURPLE_PERL_TOP) \
			-L$(GTK_TOP)/lib

##
##  SOURCES, OBJECTS
##
XS_FILES = \
	Pidgin.xs \
	GtkAccount.xs \
	GtkBlist.xs \
	GtkConn.xs \
	GtkConv.xs \
	GtkConvWin.xs \
	GtkDebug.xs \
	GtkDialogs.xs \
	GtkFt.xs \
	GtkIMHtml.xs \
	GtkIMHtmlToolbar.xs \
	GtkLog.xs \
	GtkMenuTray.xs \
	GtkPlugin.xs \
	GtkPluginPref.xs \
	GtkPounce.xs \
	GtkPrefs.xs \
	GtkPrivacy.xs \
	GtkRoomlist.xs \
	GtkSavedStatuses.xs \
	GtkSound.xs \
	GtkStatusBox.xs \
	GtkThemes.xs \
	GtkUtils.xs


C_FILES = $(XS_FILES:%.xs=%.c)
OBJECTS = $(C_FILES:%.c=%.o)

##
## LIBRARIES
##
LIBS =			-lperl510 \
			-lperl \
			-lpurple \
			-lpidgin \
			-lglib-2.0

include $(PIDGIN_COMMON_RULES)

##
## TARGETS
##
.PHONY: all install clean

all: $(TARGET).dll

$(PURPLE_INSTALL_PERL_DIR)/Purple.pm:
	$(MAKE) -C $(PURPLE_PERL_TOP)/common -f $(MINGW_MAKEFILE) install

install: all $(PURPLE_INSTALL_PERL_DIR)/Purple.pm
	rm -f $(PIDGIN_INSTALL_PERL_DIR)/$(TARGET).dll $(PIDGIN_INSTALL_PERL_DIR)/auto/Pidgin/$(TARGET).pm
	mkdir -p $(PIDGIN_INSTALL_PERL_DIR)
	cp $(TARGET).pm $(PIDGIN_INSTALL_PERL_DIR)
	mkdir -p $(PIDGIN_INSTALL_PERL_DIR)/auto/Pidgin
	cp $(TARGET).dll $(PIDGIN_INSTALL_PERL_DIR)/auto/Pidgin

$(C_FILES): $(PIDGIN_CONFIG_H)

$(TARGET).dll: $(PIDGIN_DLL).a $(PURPLE_PERL_DLL).a $(OBJECTS)
	$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) -o $(TARGET).dll

##
## CLEAN
##
clean:
	rm -f *.o $(C_FILES) $(TARGET).dll

include $(PIDGIN_COMMON_TARGETS)
