view plugins/perl/common/Makefile.mingw @ 12919:248b8b39c671

[gaim-migrate @ 15272] Replace GaimBlistNodeAction with the more generic GaimMenuAction, this is in preparation for letting the chat room user list have extensible menus like the blist entries do. (I know it's not exactly the prettiest, and the callback isn't exactly type-safe, when we eventually gobjectify everything we can get some safety back by using (GObject, gpointer) but that's for later.) I'm planning to look into merging GaimPluginActions into GaimMenuActions as well. committer: Tailor Script <tailor@pidgin.im>
author Etan Reisner <pidgin@unreliablesource.net>
date Tue, 17 Jan 2006 23:22:19 +0000
parents 2b6009535e30
children 60b863ecd89b
line wrap: on
line source

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

TARGET = Gaim
AUTOSPLIT = lib/auto/Gaim/autosplit.ix

##
## TOOLS
##

CC := gcc
PERL := /cygdrive/c/perl/bin/perl

##
## PATHS
##

EXTUTILS := C:/perl/lib/ExtUtils
GAIM_TOP := ../../..
GTK_TOP := ../../../../win32-dev/gtk_2_0
PERL_TOP := ../../../../win32-dev/perl58
PERL_PLUGIN_TOP := ..
GAIM_INSTALL_DIR :=	$(GAIM_TOP)/win32-install-dir
PERLMOD_INSTALL_DIR :=	$(GAIM_INSTALL_DIR)/perlmod


INCLUDE_PATHS =		-I. \
			-I$(GAIM_TOP) \
			-I$(GAIM_TOP)/src \
			-I$(GTK_TOP)/include \
			-I$(GTK_TOP)/include/gtk-2.0 \
			-I$(GTK_TOP)/include/glib-2.0 \
			-I$(GTK_TOP)/include/pango-1.0 \
			-I$(GTK_TOP)/include/atk-1.0 \
			-I$(GTK_TOP)/lib/gtk-2.0/include \
			-I$(GTK_TOP)/lib/glib-2.0/include \
			-I$(PERL_TOP)/CORE

LIB_PATHS = 		-L$(PERL_TOP) \
			-L$(PERL_PLUGIN_TOP) \
			-L$(GAIM_TOP)/src \
			-L$(GTK_TOP)/lib


##
##  SOURCES, OBJECTS
##

XS_FILES =		Account.xs \
				AccountOpts.xs \
				BuddyIcon.xs \
				BuddyList.xs \
				Cipher.xs \
				Cmds.xs \
				Connection.xs \
				Conversation.xs \
				FT.xs \
				Gaim.xs \
				ImgStore.xs \
				Log.xs \
				Network.xs \
				Notify.xs \
				Plugin.xs \
				PluginPref.xs \
				Pounce.xs \
				Prefs.xs \
				Privacy.xs \
				Proxy.xs \
				Prpl.xs \
				Request.xs \
				Roomlist.xs \
				SSLConn.xs \
				SavedStatuses.xs \
				Server.xs \
				Sound.xs \
				Status.xs \
				Stringref.xs \
				Util.xs \
				XMLNode.xs \

FALLBACKS =		const-c.inc const-xs.inc

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

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

##
## LIBRARIES
##

LIBS =			-lperl58 \
			-lperl \
			-lgaim \
			-lglib-2.0

##
## RULES
##

# How to make a C file
%.o: %.c
	$(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@

# How to make a XS file
%.c: %.xs
	$(PERL) $(EXTUTILS)/xsubpp -typemap $(EXTUTILS)/typemap -typemap typemap $< > $@

%.inc:
	cp fallback/$@ ./

##
## TARGETS
##

.PHONY: all clean

all: $(TARGET).dll $(AUTOSPLIT)
	
install:
	rm -rf $(PERLMOD_INSTALL_DIR)
	cp -R lib $(PERLMOD_INSTALL_DIR)
	cp $(TARGET).dll $(PERLMOD_INSTALL_DIR)
	
$(AUTOSPLIT): Gaim.pm
	mkdir -p ./lib/auto
	cp Gaim.pm ./lib
	$(PERL) -MAutoSplit -e 'autosplit("lib/Gaim.pm")'

$(TARGET).dll: $(FALLBACKS) $(OBJECTS)
	$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) -o $(TARGET).dll

##
## CLEAN
##

clean:
	rm -rf *.o $(TARGET).dll $(FALLBACKS) lib