Mercurial > pidgin.yaz
diff Makefile.mingw @ 16177:d88f0f320c9b
merge of '07fc4db9a3c2c12596e0354b8e7959aa847f966b'
and '2e6d324c725b3e6a2c803589bca3f0ac9b9790bf'
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 16 Apr 2007 00:44:33 +0000 |
parents | ded8da3de5f8 |
children | 8da9fef3843a |
line wrap: on
line diff
--- a/Makefile.mingw Mon Apr 16 00:43:53 2007 +0000 +++ b/Makefile.mingw Mon Apr 16 00:44:33 2007 +0000 @@ -2,128 +2,99 @@ # # Author: hermanator12002@yahoo.com # Date 9/11/02 -# Description: Top Makefile for win32 (mingw) port of Gaim +# Description: Top Makefile for win32 (mingw) port of Pidgin and LibPurple # -GAIM_SRC = ./src -GAIM_PROTOS = $(GAIM_SRC)/protocols -GAIM_PLUGINS = ./plugins -GAIM_PIXMAPS = ./pixmaps -GAIM_SOUNDS = ./sounds -GAIM_INSTALL_DIR = ./win32-install-dir -GTKSPELL_TOP = ../win32-dev/gtkspell-2.0.6/gtkspell -IDLETRACK_TOP = $(GAIM_SRC)/win32/IdleTracker -GTKRC_TOP = ../win32-dev/gtkrc -OSCAR = $(GAIM_PROTOS)/oscar -YAHOO = $(GAIM_PROTOS)/yahoo -MSN = $(GAIM_PROTOS)/msn -TOC = $(GAIM_PROTOS)/toc -IRC = $(GAIM_PROTOS)/irc -JABBER = $(GAIM_PROTOS)/jabber -NAPSTER = $(GAIM_PROTOS)/napster -GG = $(GAIM_PROTOS)/gg -NOVELL = $(GAIM_PROTOS)/novell -SILC = $(GAIM_PROTOS)/silc -SIMPLE = $(GAIM_PROTOS)/simple -SAMETIME = $(GAIM_PROTOS)/sametime -PO = ./po +PIDGIN_TREE_TOP := . +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak -MAKENSIS := makensis.exe - -VERSION := $(shell cat ./VERSION) - -NEEDED_DLLS = $(GTKSPELL_TOP)/libgtkspell.dll \ - $(IDLETRACK_TOP)/idletrack.dll +# 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) -SOUNDS = $(GAIM_SOUNDS)/alert.wav \ - $(GAIM_SOUNDS)/login.wav \ - $(GAIM_SOUNDS)/logout.wav \ - $(GAIM_SOUNDS)/receive.wav \ - $(GAIM_SOUNDS)/send.wav - - -## -## Don't forget to change STATIC_PROTO_INIT, in config.h.mingw if you -## change the status of a protocol (static/plugin) -## +GTK_INSTALL_VERSION = $(shell \ + source ../gtk_installer/version.sh; \ + echo $$gtk_version \ +) -OSCAR_TYPE = PLUGIN -YAHOO_TYPE = PLUGIN -MSN_TYPE = PLUGIN -TOC_TYPE = PLUGIN -IRC_TYPE = PLUGIN -JABBER_TYPE = PLUGIN -NAPSTER_TYPE = PLUGIN -GG_TYPE = PLUGIN -NOVELL_TYPE = PLUGIN -SILC_TYPE = PLUGIN -SIMPLE_TYPE = PLUGIN -SAMETIME_TYPE = PLUGIN +# 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 -all: - cp config.h.mingw config.h - $(MAKE) TYPE='$(OSCAR_TYPE)' -C $(OSCAR) -f Makefile.mingw - $(MAKE) TYPE='$(YAHOO_TYPE)' -C $(YAHOO) -f Makefile.mingw - $(MAKE) TYPE='$(MSN_TYPE)' -C $(MSN) -f Makefile.mingw - $(MAKE) TYPE='$(IRC_TYPE)' -C $(IRC) -f Makefile.mingw - $(MAKE) TYPE='$(JABBER_TYPE)' -C $(JABBER) -f Makefile.mingw - $(MAKE) TYPE='$(NAPSTER_TYPE)' -C $(NAPSTER) -f Makefile.mingw - $(MAKE) TYPE='$(GG_TYPE)' -C $(GG) -f Makefile.mingw - $(MAKE) TYPE='$(NOVELL_TYPE)' -C $(NOVELL) -f Makefile.mingw - $(MAKE) TYPE='$(SILC_TYPE)' -C $(SILC) -f Makefile.mingw - $(MAKE) TYPE='$(SIMPLE_TYPE)' -C $(SIMPLE) -f Makefile.mingw - $(MAKE) TYPE='$(SAMETIME_TYPE)' -C $(SAMETIME) -f Makefile.mingw - $(MAKE) -C $(GAIM_SRC) -f Makefile.mingw - $(MAKE) -C $(GAIM_PLUGINS) -f Makefile.mingw +#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 -install: all - mkdir -p $(GAIM_INSTALL_DIR)/plugins - mkdir -p $(GAIM_INSTALL_DIR)/sounds/gaim - $(MAKE) -C $(GAIM_PIXMAPS) -f Makefile.mingw install - $(MAKE) -C $(PO) -f Makefile.mingw install - $(MAKE) -C $(GAIM_SRC) -f Makefile.mingw install - $(MAKE) -C $(GAIM_PLUGINS) -f Makefile.mingw install - $(MAKE) TYPE='$(OSCAR_TYPE)' -C $(OSCAR) -f Makefile.mingw install - $(MAKE) TYPE='$(YAHOO_TYPE)' -C $(YAHOO) -f Makefile.mingw install - $(MAKE) TYPE='$(MSN_TYPE)' -C $(MSN) -f Makefile.mingw install - $(MAKE) TYPE='$(IRC_TYPE)' -C $(IRC) -f Makefile.mingw install - $(MAKE) TYPE='$(JABBER_TYPE)' -C $(JABBER) -f Makefile.mingw install - $(MAKE) TYPE='$(NAPSTER_TYPE)' -C $(NAPSTER) -f Makefile.mingw install - $(MAKE) TYPE='$(GG_TYPE)' -C $(GG) -f Makefile.mingw install - $(MAKE) TYPE='$(NOVELL_TYPE)' -C $(NOVELL) -f Makefile.mingw install - $(MAKE) TYPE='$(SILC_TYPE)' -C $(SILC) -f Makefile.mingw install - $(MAKE) TYPE='$(SIMPLE_TYPE)' -C $(SIMPLE) -f Makefile.mingw install - $(MAKE) TYPE='$(SAMETIME_TYPE)' -C $(SAMETIME) -f Makefile.mingw install - cp $(NEEDED_DLLS) $(GAIM_INSTALL_DIR) - cp $(SOUNDS) $(GAIM_INSTALL_DIR)/sounds/gaim +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 -installer: - $(MAKENSIS) /DGAIM_VERSION="$(VERSION)" /DWITH_GTK gaim-installer.nsi +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_nogtk: - $(MAKENSIS) /DGAIM_VERSION="$(VERSION)" gaim-installer.nsi +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_debug: - $(MAKENSIS) /DGAIM_VERSION="$(VERSION)" /DDEBUG gaim-installer.nsi +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 ./ -installers: installer installer_nogtk +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 $(PO) -f Makefile.mingw clean - $(MAKE) -C $(OSCAR) -f Makefile.mingw clean - $(MAKE) -C $(YAHOO) -f Makefile.mingw clean - $(MAKE) -C $(MSN) -f Makefile.mingw clean - $(MAKE) -C $(IRC) -f Makefile.mingw clean - $(MAKE) -C $(JABBER) -f Makefile.mingw clean - $(MAKE) -C $(NAPSTER) -f Makefile.mingw clean - $(MAKE) -C $(GG) -f Makefile.mingw clean - $(MAKE) -C $(NOVELL) -f Makefile.mingw clean - $(MAKE) -C $(SILC) -f Makefile.mingw clean - $(MAKE) -C $(SIMPLE) -f Makefile.mingw clean - $(MAKE) -C $(SAMETIME) -f Makefile.mingw clean - $(MAKE) -C $(GAIM_SRC) -f Makefile.mingw clean - $(MAKE) -C $(GAIM_PLUGINS) -f Makefile.mingw clean - rm -rf config.h $(GAIM_INSTALL_DIR) - rm -rf gaim*.exe + $(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)