Git init
[external/pango1.0.git] / pango / makefile.msc
1 TOP = ../..
2 !INCLUDE $(TOP)/glib/build/win32/make.msc
3
4 !IFNDEF PERL
5 PERL = perl
6 !ENDIF
7
8 # Possibly override Pango version from build/win32/module.defs
9 PANGO_VER = 1.0
10 PANGO_MODULE_VERSION = 1.6.0
11
12 # INCLUDES = -I .. -I .
13 # -DHAVE_USP10_H 
14 # DEFINES = -DPACKAGE=\"Pango\" -DVERSION=\"$(PANGO_VER)\" 
15 # DEPCFLAGS = $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) $(FREETYPE2_CFLAGS)
16
17 !IFNDEF PACKAGE
18
19 DLLS = pango pangowin32 pangoft2 pangocairo # pangox
20 EXES = querymodules testfonts
21 #? test1 test2 test3 test4 test5
22
23 # The main target
24 all : \
25         sub-all
26
27 sub-all: 
28         for %d in ($(DLLS)) do nmake -nologo -f makefile.msc sub-one-dll THIS=%d
29         for %d in ($(DLLS)) do nmake -nologo -f makefile.msc sub-one-lib THIS=%d
30         for %d in ($(EXES)) do nmake -nologo -f makefile.msc sub-one-exe THIS=%d
31
32 sub-one-lib:
33         nmake -nologo -f makefile.msc $(THIS)-$(PANGO_VER)s.lib PACKAGE=$(THIS) OBJS_$(THIS)=1
34
35 sub-one-dll:
36         nmake -nologo -f makefile.msc lib$(THIS)-$(PANGO_VER)-0.dll PACKAGE=$(THIS) OBJS_$(THIS)=1
37
38 sub-one-exe:
39         nmake -nologo -f makefile.msc $(THIS).exe PACKAGE=$(THIS) OBJS_$(THIS)=1
40
41 !ELSE
42
43 PRJ_TOP = ..
44 PKG_VER = $(PANGO_VER)
45 PKG_DEF = $(PACKAGE).def
46
47 PKG_CFLAGS = -FImsvc_recommended_pragmas.h -I.. -I. -I$(PRJ_TOP) \
48                 -DPACKAGE=\"Pango\" -DVERSION=\"$(PANGO_VER)\" \
49                 -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE \
50                 -DMODULE_VERSION=\"$(PANGO_MODULE_VERSION)\" \
51                 $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) \
52                 $(X11_CFLAGS)  -DSYSCONFDIR=\"/etc\" \
53                 -DPANGO_BINARY_AGE=0 
54
55 #-DHAVE_USP10_H
56                 
57
58 !IFDEF OBJS_pango
59 # don't link with itself
60 PKG_LINK = $(GLIB_LIBS) $(FONTCONFIG_LIBS)
61 !ENDIF
62
63 !IFDEF OBJS_pangowin32
64 PKG_LINK = $(GLIB_LIBS) $(LIBICONV_LIBS) \
65         pango-$(PANGO_VER).lib
66 !ENDIF
67
68 !IFDEF OBJS_pangoft2
69 PKG_CFLAGS = $(PKG_CFLAGS) $(FREETYPE2_CFLAGS) $(FONTCONFIG_CFLAGS) \
70         -DPANGO_MODULE_PREFIX=_pango_basic_ft2
71
72 PKG_LINK = $(GLIB_LIBS) $(LIBICONV_LIBS) $(FREETYPE2_LIBS) $(FONTCONFIG_LIBS) \
73         pango-$(PANGO_VER).lib opentype\pango-ot.lib
74 !ENDIF
75
76 !IFDEF OBJS_pangox
77 PKG_LINK = $(GLIB_LIBS) $(LIBICONV_LIBS) \
78         pango-$(PANGO_VER).lib $(X11_LIBS)
79 !ENDIF
80
81 !IFDEF OBJS_pangocairo
82 PKG_LINK = $(GLIB_LIBS) $(LIBICONV_LIBS) \
83         pango-$(PANGO_VER).lib $(CAIRO_LIBS) \
84         pangowin32-$(PANGO_VER).lib $(FONTCONFIG_LIBS) 
85 !ENDIF
86
87 !IF DEFINED (OBJS_querymodules) || DEFINED (OBJS_testfonts)
88 PKG_LINK = $(GLIB_LIBS) $(LIBICONV_LIBS) \
89         pango-$(PANGO_VER).lib pangowin32-$(PANGO_VER).lib
90 !ENDIF
91
92 !IFDEF OBJS_pango
93 OBJECTS = \
94         pango-enum-types.obj \
95         \
96         module-defs-lang.obj \
97         \
98         break.obj \
99         ellipsize.obj \
100         fonts.obj \
101         glyphstring.obj \
102         mapping.obj \
103         modules.obj \
104         pango-attributes.obj \
105         pango-engine.obj \
106         pango-color.obj \
107         pango-context.obj \
108         pango-coverage.obj \
109         pango-fontset.obj \
110         pango-fontmap.obj \
111         pango-glyph-item.obj \
112         pango-gravity.obj \
113         pango-item.obj \
114         pango-markup.obj \
115         pango-matrix.obj \
116         pango-language.obj \
117         pango-layout.obj \
118         pango-renderer.obj \
119         pango-script.obj \
120         pango-tabs.obj \
121         pango-utils.obj \
122         reorder-items.obj \
123         shape.obj \
124         \
125         fribidi.obj \
126         fribidi_types.obj \
127         fribidi_char_type.obj
128 !ENDIF
129
130 basic-win32.obj : ..\modules\basic\basic-win32.c
131         $(CC) $(PKG_CFLAGS) -GD -DPANGO_MODULE_PREFIX=_pango_basic_win32 -c ..\modules\basic\basic-win32.c
132
133 basic-fc.obj : ..\modules\basic\basic-fc.c
134         $(CC) $(PKG_CFLAGS) -GD -DPANGO_MODULE_PREFIX=_pango_basic_ft2 -c ..\modules\basic\basic-fc.c
135
136 basic-x.obj : ..\modules\basic\basic-x.c
137         $(CC) $(PKG_CFLAGS) -GD -DPANGO_MODULE_PREFIX=_pango_basic_xs -c ..\modules\basic\basic-x.c
138
139
140 fribidi.obj : mini-fribidi\fribidi.c
141         $(CC) $(PKG_CFLAGS) -GD -c mini-fribidi\fribidi.c
142 fribidi_types.obj : mini-fribidi\fribidi_types.c
143         $(CC) $(PKG_CFLAGS) -GD -c mini-fribidi\fribidi_types.c
144 fribidi_char_type.obj : mini-fribidi\fribidi_char_type.c
145         $(CC) $(PKG_CFLAGS) -GD -c mini-fribidi\fribidi_char_type.c
146
147 testfonts.obj : ..\examples\pangowin32tobmp.c
148         $(CC) $(PKG_CFLAGS) -GD  -Fotestfonts.obj -c ..\examples\pangowin32tobmp.c
149
150 !IFDEF OBJS_pangowin32
151 PKG_CFLAGS = $(PKG_CFLAGS) -DPANGO_MODULE_PREFIX=_pango_basic_win32
152 OBJECTS = \
153         module-defs-win32.obj \
154         pangowin32.obj \
155         pangowin32-fontcache.obj \
156         pangowin32-fontmap.obj \
157 #       pangowin32-render.obj \
158         basic-win32.obj
159 !ENDIF
160
161 !IFDEF OBJS_pangoft2 
162 OBJECTS = \
163         module-defs-fc.obj \
164         pangofc-decoder.obj \
165         pangofc-font.obj \
166         pangofc-fontmap.obj \
167         pangoft2.obj \
168         pangoft2-fontmap.obj \
169         pangoft2-render.obj \
170         \
171         pango-ot-buffer.obj \
172         pango-ot-info.obj \
173         pango-ot-tag.obj \
174         pango-ot-ruleset.obj \
175         \
176         basic-fc.obj
177
178 PKG_CFLAGS = $(PKG_CFLAGS) $(FONTCONFIG_CFLAGS) $(FREETYPE2_CFLAGS)
179 !ENDIF
180
181 !IFDEF OBJS_pangox
182 OBJECTS = \
183         module-defs-x.obj \
184         pangox.obj \
185         pangox-fontcache.obj \
186         pangox-fontmap.obj \
187         pango-indic.obj \
188         basic-x.obj
189 !ENDIF
190
191 # -DHAVE_CAIRO_FREETYPE
192 !IFDEF OBJS_pangocairo
193 PKG_CFLAGS = \
194         $(PKG_CFLAGS) $(FONTCONFIG_CFLAGS) $(FREETYPE2_CFLAGS) \
195         -DHAVE_CAIRO_WIN32 $(CAIRO_CFLAGS)
196 OBJECTS = \
197         pangocairo-context.obj \
198         pangocairo-font.obj \
199         pangocairo-fontmap.obj \
200         pangocairo-render.obj \
201         pangocairo-win32font.obj \
202         pangocairo-win32fontmap.obj \
203 #        pangocairo-fcfont.obj \
204 #        pangocairo-fcfontmap.obj \
205 !ENDIF
206
207 !IFDEF OBJS_querymodules
208 PKG_CFLAGS = $(PKG_CFLAGS) \
209         -DPACKAGE_NAME=\"Pango\" -DPACKAGE_VERSION=\"$(PANGO_VER)\"
210 OBJECTS = \
211         querymodules.obj
212 !ENDIF
213
214 !IFNDEF OBJECTS
215 OBJECTS = $(PACKAGE).obj
216 !ENDIF
217
218 module-defs-win32.c : module-defs-win32.c.win32
219         copy module-defs-win32.c.win32 module-defs-win32.c
220
221 module-defs-fc.c : module-defs-fc.c.win32
222         copy module-defs-fc.c.win32 module-defs-fc.c
223
224 module-defs-lang.c : module-defs-lang.c.win32
225         copy module-defs-lang.c.win32 module-defs-lang.c
226
227 pango_headers=             \
228         pango.h            \
229         pango-attributes.h \
230         pango-break.h      \
231         pango-context.h    \
232         pango-coverage.h   \
233         pango-engine.h     \
234         pango-font.h       \
235         pango-fontmap.h    \
236         pango-fontset.h    \
237         pango-glyph.h      \
238         pango-glyph-item.h \
239         pango-gravity.h    \
240         pango-item.h       \
241         pango-layout.h     \
242         pango-modules.h    \
243         pango-renderer.h   \
244         pango-script.h     \
245         pango-tabs.h       \
246         pango-types.h      \
247         pango-utils.h      \
248         pangofc-font.h     \
249         pangofc-fontmap.h
250
251 pango-enum-types.h: $(pango_headers) makefile.msc
252         $(PERL) $(GLIB)\gobject\glib-mkenums  \
253                 --fhead "#ifndef __PANGO_ENUM_TYPES_H__\n#define __PANGO_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
254                 --fprod "/* enumerations from \"@filename@\" */\n" \
255                 --vhead "GType @enum_name@_get_type (void);\n#define PANGO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
256                 --ftail "G_END_DECLS\n#endif /* __PANGO_ENUM_TYPES_H__ */" \
257                 $(pango_headers) > pango-enum-types.h
258
259 pango-enum-types.c: $(pango_headers) pango-enum-types.h makefile.msc
260         $(PERL) $(GLIB)\gobject\glib-mkenums  \
261                 --fhead "#include <pango.h>" \
262                 --fprod "\n/* enumerations from \"@filename@\" */" \
263                 --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
264                 --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
265                 --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
266                 $(pango_headers) > pango-enum-types.c
267
268 $(PACKAGE)-$(PKG_VER)s.lib : $(OBJECTS) $(PRJ_TOP)\config.h
269         lib /out:$(PACKAGE)-$(PKG_VER)s.lib $(OBJECTS)
270
271 lib$(PACKAGE)-$(PKG_VER)-0.dll : $(OBJECTS) $(PKG_DEF) $(PRJ_TOP)\config.h
272         $(CC) $(CFLAGS) -LD -Fe$@ $(OBJECTS) $(PKG_LINK) \
273         user32.lib gdi32.lib advapi32.lib $(LDFLAGS) /implib:$(PACKAGE)-$(PKG_VER).lib /def:$(PKG_DEF)
274
275 $(PACKAGE).exe : $(PKG_LINK) $(OBJECTS)
276         $(CC) $(CFLAGS) -Fe$(PACKAGE).exe $(OBJECTS) $(PKG_LINK) gdi32.lib user32.lib
277
278 $(PRJ_TOP)\config.h.win32 : makefile.msc
279         echo /*almostempty*/ > $(PRJ_TOP)\config.h.win32
280         echo #define PANGO_BINARY_AGE 0 >> $(PRJ_TOP)\config.h.win32
281         echo #define DHAVE_USP10_H 1 >> $(PRJ_TOP)\config.h.win32
282
283 $(PRJ_TOP)\config.h: $(PRJ_TOP)\config.h.win32
284         copy $(PRJ_TOP)\config.h.win32 $(PRJ_TOP)\config.h
285
286
287 .c.obj :
288         $(CC) $(CFLAGS) -GD -c $(PKG_CFLAGS) $<
289
290 !ENDIF #PACKAGE