view plugins/perl/common/Makefile.mingw @ 11139:2b6009535e30

[gaim-migrate @ 13203] Patch #1242220, from nekokun "Attached is a patch for getting the CVS pliugins/perl/common to compile in Win32. The makefile was just missing some escape characters and a few include directories, and module.h was referencing GaimBrowserPlace without #ifndef _WIN32." I haven't tested this. I have no idea if it works. Can someone on Windows let me know? It's my understanding that Perl doesn't compile on Windows anyway, so this can't really make it worse. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Thu, 21 Jul 2005 16:19:22 +0000
parents 3f3bc7f1b6bf
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