view Makefile.mingw @ 16552:17ac25319a77

Quoth Charkins: This patch has two changes: "This patch has two changes: First is to slightly change the re-creation behavior of the docklet. Sadrul pointed out on gaim-devel that the x11 docklet re-creates itself when it is destroyed and thought this might be causing problems with fluxbox. This patch now distinguishes between initial creation and re-creation. When re-creating, the docklet no longer registers itself as a visibility manager until it successfully embeds. Second is to change the timeout behavior for embedding. Because the notification area API is asynchronous, gaim assumes the docklet gets embeded for a certain timeout period, allowing the buddy list to start hidden before the docklet has been embeded in the notification area. If the timeout occurs, it is removed as a visibility manager and the buddy list will become visible. This timeout has been set at 5 seconds. There have been a few reports that indicate this timeout period is not long enough when starting gaim from a saved session upon login. I have been hesitant to increase the timeout, as it has the potential of delaying the startup of gaim for the timeout period if the buddy list was hidden when gaim last closed and there is not currently a notification area available. This patch makes the x11 docklet track whether it was successfully embedded and uses a longer timeout (15 seconds in this patch) only if it successfully embedded on the previous execution. Otherwise, it uses the shorter 5 second timeout. "
author Luke Schierer <lschiere@pidgin.im>
date Sat, 28 Apr 2007 02:33:40 +0000
parents ded8da3de5f8
children 8da9fef3843a
line wrap: on
line source

# Makefile.mingw
#
# Author: hermanator12002@yahoo.com
# Date 9/11/02
# Description: Top Makefile for win32 (mingw) port of Pidgin and LibPurple
#

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

# Generate a X.X.X.X version for the installer file versioning header
# The last digit will be 99 for a final release, 0 for dev or unknown, or the beta number
PIDGIN_PRODUCT_VERSION = $(shell \
awk 'BEGIN {FS="."} { \
    if (int($$3) == $$3) { \
        $$4 = "99"; \
    } else { \
        $$5 = $$3; \
        sub(int($$3), "", $$5); \
        if ($$5 == "dev") { \
            $$4 = "0"; \
        } else { \
            if (sub("beta", "", $$5) > 0) { \
                $$4 = $$5; \
            } else { \
                $$4 = "0"; \
            } \
        } \
    } \
    printf("%s.%s.%s.%s", $$1, $$2, int($$3), $$4); \
    exit; \
}' VERSION)

GTK_INSTALL_VERSION = $(shell \
  source ../gtk_installer/version.sh; \
  echo $$gtk_version \
)

# Any *.dll or *.exe files included in win32-install-dir that we don't compile
# should be included in this list so they don't get stripped
EXTERNAL_DLLS = \
	freebl3.dll \
	libgtkspell.dll \
	libmeanwhile-1.dll \
	libxml2.dll \
	nspr4.dll \
	nss3.dll \
	nssckbi.dll \
	plc4.dll \
	plds4.dll \
	silc.dll \
	silcclient.dll \
	softokn3.dll \
	ssl3.dll

#build an expression for `find` to use to ignore the above files
EXTERNAL_DLLS_FIND_EXP = $(patsubst %,-o -name %,$(EXTERNAL_DLLS))

.PHONY: all install installer installer_nogtk installer_debug installers clean uninstall create_release_install_dir

all: $(PIDGIN_CONFIG_H)
	$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE)
	$(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE)
	$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE)

install: all $(PIDGIN_INSTALL_DIR)
	$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) install
	$(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) install
	$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) install

create_release_install_dir: install
	rm -rf $(PIDGIN_INSTALL_DIR).release
	cp -R $(PIDGIN_INSTALL_DIR) $(PIDGIN_INSTALL_DIR).release
	find $(PIDGIN_INSTALL_DIR).release \( -name '*.dll' -o -name '*.exe' \) \
	 -not \( -false $(EXTERNAL_DLLS_FIND_EXP) \) -exec $(STRIP) --strip-unneeded {} ';'

installer: create_release_install_dir
	$(MAKENSIS) /V3 /DPIDGIN_VERSION="$(PIDGIN_VERSION)" /DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" /DWITH_GTK /DPIDGIN_INSTALL_DIR="$(PIDGIN_INSTALL_DIR).release" /DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi
	mv pidgin/win32/nsis/pidgin*.exe ./

installer_nogtk: create_release_install_dir
	$(MAKENSIS) /V3 /DPIDGIN_VERSION="$(PIDGIN_VERSION)" /DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" /DPIDGIN_INSTALL_DIR="$(PIDGIN_INSTALL_DIR).release" /DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi
	mv pidgin/win32/nsis/pidgin*.exe ./

installer_debug: install
	$(MAKENSIS) /V3 /DPIDGIN_VERSION="$(PIDGIN_VERSION)" /DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" /DPIDGIN_INSTALL_DIR="$(PIDGIN_INSTALL_DIR)" /DDEBUG /DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi
	mv pidgin/win32/nsis/pidgin*.exe ./

installers: installer installer_nogtk installer_debug

clean:
	$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) clean
	$(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) clean
	$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) clean
	rm -f $(PIDGIN_CONFIG_H) VERSION pidgin*.exe

uninstall:
	rm -rf $(PURPLE_INSTALL_PERLMOD_DIR) $(PIDGIN_INSTALL_PLUGINS_DIR) $(PURPLE_INSTALL_PO_DIR) $(PIDGIN_INSTALL_DIR) $(PIDGIN_INSTALL_DIR).release

include $(PIDGIN_COMMON_TARGETS)