plugins/tcl/Makefile.mingw

Wed, 08 Mar 2006 03:41:58 +0000

author
Daniel Atallah <datallah@pidgin.im>
date
Wed, 08 Mar 2006 03:41:58 +0000
changeset 13456
4949b0656a2b
parent 7831
54076c9af6ad
child 13825
8ebbadddec26
permissions
-rw-r--r--

[gaim-migrate @ 15830]
This makes tcl.c a little uglier, but offers some significant benefits on win32. Firstly, we no longer call LoadLibrary() from within a DllMain function (which is fundamentally unsafe). Secondly, this prints a debugging message indicating that if gaim fails to load it is cygwin's fault. Thirdly, we now try to detect the loading of a cygwin tcl runtime and aborts loading the tcl plugin. The subsequent "hanging" is one of the most reported bugs, so this will hopefully reduce these bug reports.

7831
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
1 #
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
2 # Makefile.mingw
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
3 #
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
4 # Description: Makefile for tcl plugin loader plugin.
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
5 #
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
6
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
7 #
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
8 # PATHS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
9 #
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
10
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
11 GTK_TOP := ../../../win32-dev/gtk_2_0
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
12 GAIM_TOP := ../..
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
13 TCL_LIB_DIR := ../../../win32-dev/tcl-8.4.5
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
14 TCL_INC_DIR := $(TCL_LIB_DIR)/include
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
15 GAIM_INSTALL_DIR := $(GAIM_TOP)/win32-install-dir
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
16 DLL_INSTALL_DIR := $(GAIM_INSTALL_DIR)/plugins
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
17
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
18 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
19 ## VARIABLE DEFINITIONS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
20 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
21
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
22 TARGET = tcl
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
23
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
24 # Compiler Options
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
25
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
26 CFLAGS =
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
27
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
28 DEFINES = -DHAVE_TK -DUSE_TCL_STUBS -DUSE_TK_STUBS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
29
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
30 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
31 ## INCLUDE MAKEFILES
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
32 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
33
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
34 include $(GAIM_TOP)/src/win32/global.mak
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
35
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
36 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
37 ## INCLUDE PATHS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
38 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
39
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
40 INCLUDE_PATHS += -I. \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
41 -I$(GAIM_TOP) \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
42 -I$(GAIM_TOP)/src \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
43 -I$(GAIM_TOP)/src/win32 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
44 -I$(GTK_TOP)/include \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
45 -I$(GTK_TOP)/include/gtk-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
46 -I$(GTK_TOP)/include/glib-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
47 -I$(GTK_TOP)/include/pango-1.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
48 -I$(GTK_TOP)/include/atk-1.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
49 -I$(GTK_TOP)/lib/glib-2.0/include \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
50 -I$(GTK_TOP)/lib/gtk-2.0/include \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
51 -I$(TCL_INC_DIR)
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
52
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
53
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
54 LIB_PATHS = -L$(GTK_TOP)/lib \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
55 -L$(GAIM_TOP)/src \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
56 -L$(TCL_LIB_DIR)
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
57
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
58
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
59 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
60 ## SOURCES, OBJECTS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
61 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
62
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
63 C_SRC = tcl.c \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
64 tcl_cmds.c \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
65 tcl_glib.c \
13456
4949b0656a2b [gaim-migrate @ 15830]
Daniel Atallah <datallah@pidgin.im>
parents: 7831
diff changeset
66 tcl_signals.c
7831
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
67
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
68
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
69 OBJECTS = $(C_SRC:%.c=%.o)
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
70
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
71
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
72 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
73 ## LIBRARIES
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
74 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
75
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
76 LIBS = -lgtk-win32-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
77 -lglib-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
78 -lgdk-win32-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
79 -lgmodule-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
80 -lgobject-2.0 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
81 -lws2_32 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
82 -lintl \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
83 -lgaim \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
84 -ltclstub84 \
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
85 -ltkstub84
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
86
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
87
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
88 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
89 ## RULES
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
90 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
91
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
92 # How to make a C file
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
93
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
94 %.o: %.c
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
95 $(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PATHS) -o $@ -c $<
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
96
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
97 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
98 ## TARGET DEFINITIONS
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
99 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
100
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
101 .PHONY: all clean
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
102
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
103 all: $(TARGET).dll
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
104
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
105 install: $(TARGET).dll
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
106 cp $(TARGET).dll $(DLL_INSTALL_DIR)
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
107
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
108 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
109 ## BUILD Dependencies
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
110 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
111
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
112 $(GAIM_TOP)/src/gaim.lib:
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
113 $(MAKE) -C $(GAIM_TOP)/src -f Makefile.mingw gaim.lib
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
114
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
115 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
116 ## BUILD DLL
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
117 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
118
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
119 $(TARGET).dll: $(OBJECTS) $(GAIM_TOP)/src/gaim.lib
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
120 $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $(TARGET).dll
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
121
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
122
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
123 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
124 ## CLEAN RULES
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
125 ##
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
126
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
127 clean:
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
128 rm -rf *.o
54076c9af6ad [gaim-migrate @ 8483]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
129 rm -rf $(TARGET).dll

mercurial