1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# 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 \
)
STRIPPED_RELEASE_DIR = $(PIDGIN_TREE_TOP)/pidgin-$(PIDGIN_VERSION)-win32bin
# 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 = \
comerr32.dll \
freebl3.dll \
gssapi32.dll \
k5sprt32.dll \
krb5_32.dll \
libgtkspell.dll \
libmeanwhile-1.dll \
libsasl.dll \
libxml2.dll \
nspr4.dll \
nss3.dll \
nssckbi.dll \
plc4.dll \
plds4.dll \
saslANONYMOUS.dll \
saslCRAMMD5.dll \
saslDIGESTMD5.dll \
saslGSSAPI.dll \
saslLOGIN.dll \
saslPLAIN.dll \
libsilc-1-1-2.dll \
libsilcclient-1-1-2.dll \
smime3.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 docs 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)
ifndef DISABLE_NLS
$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE)
endif
install: all $(PIDGIN_INSTALL_DIR)
$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) install
$(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) install
ifndef DISABLE_NLS
$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) install
endif
$(MAKE) -C share/ca-certs -f $(MINGW_MAKEFILE) install
$(MAKE) -C share/sounds -f $(MINGW_MAKEFILE) install
create_release_install_dir: install
rm -rf $(STRIPPED_RELEASE_DIR)
cp -R $(PIDGIN_INSTALL_DIR) $(STRIPPED_RELEASE_DIR)
find $(STRIPPED_RELEASE_DIR) \( -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="$(STRIPPED_RELEASE_DIR)" /DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi
mv pidgin/win32/nsis/pidgin-$(PIDGIN_VERSION).exe ./
installer_nogtk: create_release_install_dir
$(MAKENSIS) /V3 /DPIDGIN_VERSION="$(PIDGIN_VERSION)" /DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" /DPIDGIN_INSTALL_DIR="$(STRIPPED_RELEASE_DIR)" /DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi
mv pidgin/win32/nsis/pidgin-$(PIDGIN_VERSION)-no-gtk.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-$(PIDGIN_VERSION)-debug.exe ./
installer_zip: create_release_install_dir
rm -f pidgin-$(PIDGIN_VERSION)-win32-bin.zip
zip -9 -r pidgin-$(PIDGIN_VERSION)-win32-bin.zip $(STRIPPED_RELEASE_DIR)
installers: installer installer_nogtk installer_debug installer_zip
Doxyfile.mingw: Doxyfile.in
sed -e "s/@PACKAGE@/pidgin/" -e "s/@VERSION@/$(PIDGIN_VERSION)/" -e "s/@top_srcdir@/$(PIDGIN_TREE_TOP)/g" -e "s/@enable_dot@/NO/" Doxyfile.in > Doxyfile.mingw
docs: Doxyfile.mingw
@echo "Running doxygen..."
@doxygen Doxyfile.mingw
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-$(PIDGIN_VERSION)*.exe pidgin-$(PIDGIN_VERSION)-win32-bin.zip
rm -rf doc/html Doxyfile.mingw
uninstall:
rm -rf $(PURPLE_INSTALL_PERLMOD_DIR) $(PIDGIN_INSTALL_PLUGINS_DIR) $(PURPLE_INSTALL_PO_DIR) $(PIDGIN_INSTALL_DIR) $(STRIPPED_RELEASE_DIR)
rm -f ./VERSION
include $(PIDGIN_COMMON_TARGETS)
|