view gtk/Makefile.mingw @ 14288:467d1ba79171

[gaim-migrate @ 16976] a POTFILES.in that doesn't break stats.pl committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 22 Aug 2006 12:07:41 +0000
parents c54ea2572de9
children 8793fc8f7064
line wrap: on
line source

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

#
# PATHS
#

GTK_TOP :=		../../win32-dev/gtk_2_0
GAIM_TOP :=		..
GTKGAIM_TOP :=		.
LIBGAIM_TOP :=		$(GAIM_TOP)/libgaim
PLUGINS_TOP :=		$(GTKGAIM_TOP)/plugins
PIXMAPS_TOP :=		$(GTKGAIM_TOP)/pixmaps
SOUNDS_TOP :=		$(GTKGAIM_TOP)/sounds
ASPELL_TOP :=		../../win32-dev/aspell-dev-0-50-3-3
GTKSPELL_TOP :=		../../win32-dev/gtkspell-2.0.6
IDLETRACK_TOP :=	$(GTKGAIM_TOP)/win32/IdleTracker
GAIM_INSTALL_DIR :=	$(GAIM_TOP)/win32-install-dir
#LIBXML2_DIR :=		../../win32-dev/libxml2

NEEDED_DLLS =		$(GTKSPELL_TOP)/gtkspell/libgtkspell.dll \
			$(IDLETRACK_TOP)/idletrack.dll

SOUNDS =		$(SOUNDS_TOP)/alert.wav \
			$(SOUNDS_TOP)/login.wav \
			$(SOUNDS_TOP)/logout.wav \
			$(SOUNDS_TOP)/receive.wav \
			$(SOUNDS_TOP)/send.wav

##
## VARIABLE DEFINITIONS
##

EXE_TARGET = gaim

GTKGAIM_TARGET = gtkgaim

# Compiler and Linker Options

CFLAGS =

DEFINES =

ifeq ($(MAKECMDGOALS), $(EXE_TARGET)-portable.exe)
DEFINES := $(DEFINES) -DPORTABLE
endif

WINAPP := -mwindows
# The Debug version of gaim is a console app, always having a console
CONSOLEAPP := -mconsole

LDFLAGS := $(WINAPP)

WINDRES := windres

##
## INCLUDE  MAKEFILES
##

include $(LIBGAIM_TOP)/win32/global.mak

##
## INCLUDE PATHS
##

LIBGAIM_INCLUDE_PATHS =	\
			-I$(LIBGAIM_TOP) \
			-I$(LIBGAIM_TOP)/win32 \
			-I$(GAIM_TOP) \
			-I$(GTK_TOP)/include \
			-I$(GTK_TOP)/include/glib-2.0 \
			-I$(GTK_TOP)/lib/glib-2.0/include

#			-I$(LIBXML2_DIR)/include

INCLUDE_PATHS =	\
			$(LIBGAIM_INCLUDE_PATHS) \
			-I$(IDLETRACK_TOP) \
			-I$(GTKGAIM_TOP) \
			-I$(GTKGAIM_TOP)/win32 \
			-I$(GTK_TOP)/include/gtk-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$(GTKSPELL_TOP) \
			-I$(ASPELL_TOP)/include



LIB_PATHS =		-L$(GTK_TOP)/lib \
			-L$(LIBGAIM_TOP) \
			-L$(GTKGAIM_TOP) \
			-L$(IDLETRACK_TOP) \
			-L$(ASPELL_TOP)/lib

#			-L$(LIBXML2_DIR)/lib

##
##  SOURCES, OBJECTS
##

GTKGAIM_C_SRC =	\
			gaimstock.c \
			gtkaccount.c \
			gtkblist.c \
			gtkconn.c \
			gtkconv.c \
			gtkcellrendererprogress.c \
			gtkdebug.c \
			gtkdialogs.c \
			gtkdnd-hints.c \
			gtkeventloop.c \
			gtkexpander.c \
			gtkft.c \
			gtkidle.c \
			gtkimhtml.c \
			gtkimhtmltoolbar.c \
			gtklog.c \
			gtkmain.c \
			gtkmenutray.c \
			gtknotify.c \
			gtkplugin.c \
			gtkpluginpref.c \
			gtkpounce.c \
			gtkprefs.c \
			gtkprivacy.c \
			gtkrequest.c \
			gtkroomlist.c \
			gtksavedstatuses.c \
			gtksound.c \
			gtksourceiter.c \
			gtkstatusbox.c \
			gtkthemes.c \
			gtkutils.c \
			gtkwhiteboard.c \
			win32/gtkwin32dep.c \
			win32/untar.c \
			win32/wspell.c

RC_SRC =		win32/gaimrc.rc

EXE_C_SRC = 		win32/win_gaim.c

GTKGAIM_OBJECTS = $(GTKGAIM_C_SRC:%.c=%.o)

EXE_OBJECTS = $(EXE_C_SRC:%.c=%.o) $(RC_SRC:%.rc=%.o)

##
## LIBRARIES
##

LIBGAIM_LIBS =	\
		-lgaim \
		-lglib-2.0 \
		-lgthread-2.0 \
		-lgobject-2.0 \
		-lgmodule-2.0 \
		-lintl \
		-lws2_32 \
		-lwinmm \
		-lz \
		-liberty \
		-lidletrack

#		-lxml2

GTKGAIM_LIBS =	\
		$(LIBGAIM_LIBS) \
		-lgtk-win32-2.0 \
		-latk-1.0 \
		-lpango-1.0 \
		-lgdk-win32-2.0 \
		-lgdk_pixbuf-2.0

EXE_LIBS =

##
## RULES
##

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

# How to make an RC file
%.o: %.rc
	$(WINDRES) -i $< -o $@

##
## TARGET DEFINITIONS
##

.PHONY: all clean

all: $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll
	$(MAKE) -C $(PLUGINS_TOP) -f Makefile.mingw

install: all
	$(MAKE) -C $(PLUGINS_TOP) -f Makefile.mingw install
	$(MAKE) -C $(PIXMAPS_TOP) -f Makefile.mingw install
	cp $(GTKGAIM_TOP)/$(EXE_TARGET).exe $(GTKGAIM_TOP)/$(GTKGAIM_TARGET).dll $(GAIM_INSTALL_DIR)
	cp $(NEEDED_DLLS) $(GAIM_INSTALL_DIR)
	cp $(SOUNDS) $(GAIM_INSTALL_DIR)/sounds/gaim

$(LIBGAIM_TOP)/libgaim.dll.a:
	S(MAKE) -C $(LIBGAIM_TOP) -f Makefile.mingw libgaim.dll.a

$(IDLETRACK_TOP)/idletrack.dll:
	$(MAKE) -C $(IDLETRACK_TOP) -f Makefile.mingw

#
# BUILD DLL
#
$(GTKGAIM_TARGET).dll.a $(GTKGAIM_TARGET).dll: $(LIBGAIM_TOP)/libgaim.dll.a $(GTKGAIM_OBJECTS) $(IDLETRACK_TOP)/idletrack.dll
	$(CC) -shared $(LIBGAIM_OBJECTS) $(GTKGAIM_OBJECTS) $(LIB_PATHS) $(GTKGAIM_LIBS) $(DLL_LD_FLAGS) -Wl,--out-implib,$(GTKGAIM_TARGET).dll.a -o $(GTKGAIM_TARGET).dll

#
# BUILD EXE
#

$(EXE_TARGET).exe: $(GTKGAIM_TARGET).dll $(EXE_OBJECTS)
	$(CC) $(LDFLAGS) $(EXE_OBJECTS) $(LIB_PATHS) $(EXE_LIBS) -o $(EXE_TARGET).exe

$(EXE_TARGET)-portable.exe: clean_exe $(EXE_OBJECTS)
	$(CC) $(LDFLAGS) $(EXE_OBJECTS) $(LIB_PATHS) $(EXE_LIBS) -o $(EXE_TARGET)-portable.exe
	rm win_gaim.o

##
## CLEAN RULES
##

clean:
	$(MAKE) -C $(IDLETRACK_TOP) -f Makefile.mingw clean
	rm -rf *.o ./win32/*.o
	rm -rf $(GTKGAIM_TARGET).dll
	rm -rf $(GTKGAIM_TARGET).dll.a
	rm -rf $(EXE_TARGET).exe
	$(MAKE) -C $(PLUGINS_TOP) -f Makefile.mingw clean

clean_exe:
	rm -rf win_gaim.o