summaryrefslogtreecommitdiff
path: root/makefile.msc
blob: 70d6d69d486a5cceda3e1a9fcb8aba1420d3113f (plain)
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
135
136
TOP = ..\..
!INCLUDE $(TOP)\glib\build\win32\make.msc

#DEBUG=1

#program placement should be handled im make.msc
!IFNDEF PYTHONDIR
PYTHONDIR = c:\python23
!ENDIF

!IFNDEF DEBUG
EXTRALIBS = $(PYTHONDIR)\libs\python23.lib user32.lib
!ELSE
EXTRALIBS = $(PYTHONDIR)\libs\python23_d.lib user32.lib
# Python in Debug Build requires a modue name postfix
PYD_POSTFIX = _d
!ENDIF

EXTRACFLAGS = -I$(PYTHONDIR)\include
MODULE_EXT = pyd

MODULES = atk pango

sub-all: 
	for %d in ($(MODULES)) do nmake -nologo -f makefile.msc sub-one THIS=%d

sub-one :
	nmake -nologo -f makefile.msc MODULE=$(THIS) $(THIS)$(PYD_POSTFIX).$(MODULE_EXT) OBJ_$(THIS)=1

sub-clean :
	cd gtk
	nmake -nologo -f makefile.msc clean
	cd ..\gobject
	nmake -nologo -f makefile.msc clean
	cd ..

sub-gtk :
	cd gtk
	nmake -nologo -f makefile.msc $(TARGET)
	cd ..

sub-gobject :
	cd gobject
	nmake -nologo -f makefile.msc $(TARGET)
	cd ..

all : \
	config.h \
	sub-all \
	sub-gtk \
	sub-gobject

# nothing much configuarable below this line ...
#################################################################

.SUFFIXES: .defs .c .exe

atk.c : atk.defs atk.override
pango.c : pango.defs pango.override

.defs.c :
	 $(PYTHONDIR)\python codegen/codegen.py \
	    --register pango-types.defs \
	    --register atk-types.defs \
#	    --register gtk/gdk-types.defs \
#	    --register gtk/gtk-types.defs \
	    --override $*.override \
	    --errorfilename gen-$*.err \
	    --prefix py$* $*.defs > gen-$*.c
	copy gen-$*.c $*.c
	del gen-$*.c

# cl -? describes the options
# CC = cl -GA -G5 -GF $(OPTIMIZE) -W3 -nologo

LDFLAGS = /link /machine:ix86 $(LINKDEBUG)

INCLUDES = \
	-FImsvc_recommended_pragmas.h \
	-DHAVE_CONFIG_H $(EXTRACFLAGS) -Igobject \
	-I. $(GLIB_CFLAGS) $(PANGO_CFLAGS) $(ATK_CFLAGS)

#	-I$(LIBGLADE) -I$(LIBXML)

!IFDEF OBJ_gobject
OBJECTS = \
	gobject\gobjectmodule.obj \
	gobject\pygboxed.obj \
	gobject\pygenum.obj \
	gobject\pygflags.obj \
	gobject\pygobject.obj \
	gobject\pygmaincontext.obj \
	gobject\pygmainloop.obj \
	gobject\pygparamspec.obj \
	gobject\pygpointer.obj \
	gobject\pygtype.obj
!ENDIF

!IFDEF OBJ_atk
EXTRALIBS = $(EXTRALIBS) $(ATK_LIBS)
!ENDIF

!IFDEF OBJ_pango
EXTRALIBS = $(EXTRALIBS) $(PANGO_LIBS)
!ENDIF

!IFNDEF OBJECTS
OBJECTS = \
	$(MODULE).obj \
	$(MODULE)module.obj
!ENDIF

config.h : config.h.win32
	copy config.h.win32 config.h
 
$(MODULE)$(PYD_POSTFIX).$(MODULE_EXT) : $(OBJECTS)
	$(CC) $(CFLAGS) -LD -Fe$@ $(OBJECTS) $(LDFLAGS) $(EXTRALIBS) \
	$(GLIB_LIBS) /export:init$(MODULE)

clean:: sub-clean
	del *.pyc
	del *.pyd

extra-clean: clean
	del atk.c
	del pango.c
	del config.h

# the first one asks to give you a chance to break it
install:
	@echo Installing to $(PYTHONDIR)
	@xcopy pygtk.py $(PYTHONDIR)\Lib
	@xcopy /y *.pyd $(PYTHONDIR)\Lib\gtk-2.0\*
	@xcopy /y gtk\*.pyd $(PYTHONDIR)\Lib\gtk-2.0\gtk\*
	@xcopy /y gtk\*.py $(PYTHONDIR)\Lib\gtk-2.0\gtk\*
	@xcopy /y gobject\*.pyd $(PYTHONDIR)\Lib\gtk-2.0\*