view src/Makefile.mingw @ 5286:f82c251c8300

[gaim-migrate @ 5658] David Brigada (jsi) writes: " I juggled a little code around. This means that you can now set the buddy ticker to be as small as 1px wide. The default is still 500px. Also included is the related patch to the .todo file." committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Fri, 02 May 2003 21:25:49 +0000
parents d635e8fe2fba
children cb2a6b373ba1
line wrap: on
line source

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

#
# PATHS
#

INCLUDE_DIR :=		.
GTK_TOP :=		../../win32-dev/gtk_2_0
GAIM_TOP :=		..
GAIM_SRC :=		.
PERL_LIB_DIR :=		../../win32-dev/perl56
PERL_INCLUDE :=         $(PERL_LIB_DIR)/CORE
ASPELL_TOP :=		../../win32-dev/aspell-dev-0-50-3-3
GTKSPELL_TOP :=		../../win32-dev/gtkspell-2.0.4
IDLETRACK_TOP :=	$(GAIM_TOP)/src/win32/IdleTracker
GAIM_INSTALL_DIR :=	$(GAIM_TOP)/win32-install-dir
MINGW_PLUS_DIR :=	$(GAIM_SRC)/win32/mingw_plus

##
## VARIABLE DEFINITIONS
##

TARGET = gaim

# Compiler and Linker Options

CFLAGS =

DEFINES =

LDFLAGS = -mconsole -mwindows

#-mconsole
#-mwindows

##
## INCLUDE  MAKEFILES
##

include $(GAIM_TOP)/src/win32/global.mak

##
## INCLUDE PATHS
##

INCLUDE_PATHS =		-I$(INCLUDE_DIR) \
			-I$(INCLUDE_DIR)/win32 \
			-I$(MINGW_PLUS_DIR) \
			-I$(IDLETRACK_TOP) \
			-I$(GAIM_TOP) \
			-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/glib-2.0/include \
			-I$(GTK_TOP)/lib/gtk-2.0/include \
			-I$(PERL_INCLUDE) \
			-I$(ASPELL_TOP)/include \
			-I$(GTKSPELL_TOP)


LIB_PATHS =		-L$(GTK_TOP)/lib \
			-L$(GAIM_SRC) \
			-L$(IDLETRACK_TOP) \
			-L$(PERL_LIB_DIR) \
			-L$(ASPELL_TOP)/lib

##
##  SOURCES, OBJECTS
##

DLL_C_SRC =		about.c \
			away.c \
			blist.c \
			browser.c \
			buddy_chat.c \
			conversation.c \
			core.c \
			debug.c \
			dialogs.c \
			dnd-hints.c \
			event.c \
			ft.c \
			gaim-disclosure.c \
			gaimrc.c \
			gtkblist.c \
			gtkconv.c \
			gtkcellrendererprogress.c \
			gtkdebug.c \
			gtkft.c \
			gtkimhtml.c \
			gtkplugin.c \
			gtkpounce.c \
			gtkutils.c \
			html.c \
			idle.c \
			log.c \
			main.c \
			md5.c \
			multi.c \
			plugin.c \
			pounce.c \
			prefs.c \
			proxy.c \
			prpl.c \
			server.c \
			sound.c \
			stock.c \
			themes.c \
			util.c \
			win32/win32dep.c \
			win32/MinimizeToTray.c \
			win32/libc_interface.c \
			win32/systray.c \
			win32/wspell.c \
			win32/untar.c

RC_SRC =		win32/gaimrc.rc

EXE_C_SRC = 		win_gaim.c

DLL_OBJECTS = $(DLL_C_SRC:%.c=%.o) 

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

##
## LIBRARIES
##

DLL_LIBS =		-lgtk-win32-2.0 \
			-lpango-1.0 \
			-lglib-2.0 \
			-lgdk-win32-2.0 \
			-lgobject-2.0 \
			-lintl \
			-lgmodule-2.0 \
			-lgdk_pixbuf-2.0 \
			-lws2_32 \
			-liberty \
			-lwinmm \
			-lperl56 \
			-llibz \
			-lidletrack
			

EXE_LIBS = -lgaim -lglib-2.0

##
## 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: $(TARGET).exe $(TARGET).dll

install:
	cp $(GAIM_SRC)/gaim.exe $(GAIM_SRC)/gaim.dll $(GAIM_INSTALL_DIR)

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

#
# BUILD DLL
#

$(TARGET).def: $(DLL_OBJECTS)
	dlltool -D $(TARGET).dll -z $(TARGET).def --export-all-symbols \
		--exclude-symbols WinMain@16 $^

$(TARGET).base: $(DLL_OBJECTS)
	$(CC) -mdll $(LDFLAGS) -o junk.tmp -Wl,--base-file,$@ $(DLL_OBJECTS) $(LIB_PATHS) $(DLL_LIBS)
	rm -rf junk.tmp

$(TARGET).exp: $(TARGET).base $(TARGET).def
	dlltool --dllname $(TARGET).dll --base-file $(TARGET).base \
		--output-exp $(TARGET).exp --def $(TARGET).def

$(TARGET).dll: $(DLL_OBJECTS) $(IDLETRACK_TOP)/idletrack.dll $(TARGET).exp
	$(CC) -mdll $(LDFLAGS) -o $(TARGET).dll $(DLL_OBJECTS) -Wl,$(TARGET).exp $(LIB_PATHS) $(DLL_LIBS)
	rm -rf $(TARGET).exp $(TARGET).def $(TARGET).base

$(TARGET).lib: $(TARGET).def
	dlltool -D $(TARGET).dll -d $(TARGET).def -l $(TARGET).lib

#
# BUILD EXE
#

$(TARGET).exe: $(TARGET).lib $(EXE_OBJECTS)
	$(CC) $(LDFLAGS) $(EXE_OBJECTS) $(LIB_PATHS) $(EXE_LIBS) -o $(TARGET).exe

##
## CLEAN RULES
##

clean:
	$(MAKE) -C $(IDLETRACK_TOP) -f Makefile.mingw clean
	rm -rf *.o ./win32/*.o
	rm -rf $(TARGET).dll
	rm -rf $(TARGET).lib
	rm -rf $(TARGET).exe