plugins/perl/common/Makefile.mingw

changeset 7383
d6b354fc9ea2
parent 6816
b14a3043ed09
child 10804
e51729c86312
equal deleted inserted replaced
7382:c8ba2402f6fb 7383:d6b354fc9ea2
3 # 3 #
4 # Description: Makefile for Gaim perl module. 4 # Description: Makefile for Gaim perl module.
5 # 5 #
6 6
7 TARGET = Gaim 7 TARGET = Gaim
8 AUTOSPLIT = lib/auto/Gaim/autosplit.ix
8 9
9 CC := gcc 10 ##
10 PERL := /cygdrive/c/perl/bin/perl 11 ## TOOLS
12 ##
13
14 CC = gcc
15 PERL = /cygdrive/c/perl/bin/perl
16
17 ##
18 ## PATHS
19 ##
11 20
12 EXTUTILS := C:/perl/lib/ExtUtils 21 EXTUTILS := C:/perl/lib/ExtUtils
13 GAIM_TOP := ../../.. 22 GAIM_TOP := ../../..
14 GTK_TOP := ../../../../win32-dev/gtk_2_0 23 GTK_TOP := ../../../../win32-dev/gtk_2_0
15 PERL_TOP := ../../../../win32-dev/perl58 24 PERL_TOP := ../../../../win32-dev/perl58
16 PERL_PLUGIN_TOP := .. 25 PERL_PLUGIN_TOP := ..
17 GAIM_INSTALL_DIR := $(GAIM_TOP)/win32-install-dir 26 GAIM_INSTALL_DIR := $(GAIM_TOP)/win32-install-dir
18 PERLMOD_INSTALL_DIR := $(GAIM_INSTALL_DIR)/perlmod 27 PERLMOD_INSTALL_DIR := $(GAIM_INSTALL_DIR)/perlmod
28
19 29
20 INCLUDE_PATHS = -I. \ 30 INCLUDE_PATHS = -I. \
21 -I$(GAIM_TOP) \ 31 -I$(GAIM_TOP) \
22 -I$(GAIM_TOP)/src \ 32 -I$(GAIM_TOP)/src \
23 -I$(GTK_TOP)/include/glib-2.0 \ 33 -I$(GTK_TOP)/include/glib-2.0 \
27 LIB_PATHS = -L$(PERL_TOP) \ 37 LIB_PATHS = -L$(PERL_TOP) \
28 -L$(PERL_PLUGIN_TOP) \ 38 -L$(PERL_PLUGIN_TOP) \
29 -L$(GAIM_TOP)/src \ 39 -L$(GAIM_TOP)/src \
30 -L$(GTK_TOP)/lib 40 -L$(GTK_TOP)/lib
31 41
42
43 ##
44 ## SOURCES, OBJECTS
45 ##
32 46
33 XS_FILES = Account.xs \ 47 XS_FILES = Account.xs \
34 BuddyList.xs \ 48 BuddyList.xs \
35 BuddyList_Buddy.xs \ 49 BuddyList_Buddy.xs \
36 BuddyList_Chat.xs \ 50 BuddyList_Chat.xs \
46 60
47 C_FILES = $(XS_FILES:%.xs=%.c) 61 C_FILES = $(XS_FILES:%.xs=%.c)
48 62
49 OBJECTS = $(C_FILES:%.c=%.o) 63 OBJECTS = $(C_FILES:%.c=%.o)
50 64
65 ##
66 ## LIBRARIES
67 ##
68
51 LIBS = -lperl58 \ 69 LIBS = -lperl58 \
52 -lperl \ 70 -lperl \
53 -lgaim \ 71 -lgaim \
54 -lglib-2.0 72 -lglib-2.0
73
74 ##
75 ## RULES
76 ##
55 77
56 # How to make a C file 78 # How to make a C file
57 %.o: %.c 79 %.o: %.c
58 $(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@ 80 $(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@
59 81
62 $(PERL) $(EXTUTILS)/xsubpp -typemap $(EXTUTILS)/typemap -typemap typemap $< > $@ 84 $(PERL) $(EXTUTILS)/xsubpp -typemap $(EXTUTILS)/typemap -typemap typemap $< > $@
63 85
64 %.inc: 86 %.inc:
65 cp fallback/$@ ./ 87 cp fallback/$@ ./
66 88
67 all: $(TARGET).dll 89 ##
90 ## TARGETS
91 ##
68 92
93 .PHONY: all clean
94
95 all: $(TARGET).dll $(AUTOSPLIT)
96
69 install: 97 install:
70 mkdir -p $(PERLMOD_INSTALL_DIR) 98 rm -rf $(PERLMOD_INSTALL_DIR)
71 cp $(TARGET).dll Gaim.pm $(PERLMOD_INSTALL_DIR) 99 cp -R lib $(PERLMOD_INSTALL_DIR)
100 cp $(TARGET).dll $(PERLMOD_INSTALL_DIR)
101
102 $(AUTOSPLIT): Gaim.pm
103 mkdir -p ./lib/auto
104 cp Gaim.pm ./lib
105 $(PERL) -MAutoSplit -e 'autosplit("lib/Gaim.pm")'
72 106
73 $(TARGET).dll: $(FALLBACKS) $(OBJECTS) 107 $(TARGET).dll: $(FALLBACKS) $(OBJECTS)
74 $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) -o $(TARGET).dll 108 $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) -o $(TARGET).dll
75 109
110 ##
111 ## CLEAN
112 ##
113
76 clean: 114 clean:
77 rm -rf *.o $(TARGET).dll $(FALLBACKS) 115 rm -rf *.o $(TARGET).dll $(FALLBACKS) lib

mercurial