Commit | Line | Data |
---|---|---|
b0f06652 | 1 | # |
e4451f11 | 2 | # perl makefile for wince |
b0f06652 VK |
3 | # During the cross-compilation, it first uses Makefile file to build |
4 | # miniperl on HOST and then build required platform | |
e4451f11 | 5 | # |
e4451f11 JH |
6 | |
7 | SRCDIR = .. | |
a24e4318 | 8 | PV = 519 |
42165d27 | 9 | |
18f68570 | 10 | # INSTALL_ROOT specifies a path where this perl will be installed on CE device |
42165d27 | 11 | INSTALL_ROOT=/netzwerk/sprache/perl |
18f68570 VK |
12 | INST_TOP=$(INSTALL_ROOT) |
13 | INST_VER= | |
42165d27 VK |
14 | |
15 | # PERLCEDIR shoud be set to current directory | |
58ff4bd0 | 16 | PERLCEDIR = $(MAKEDIR) |
42165d27 | 17 | |
18f68570 | 18 | # WCEROOT is a directory where Windows CE Tools was installed |
ca6c63e1 | 19 | WCEROOT = D:\Windows CE Tools |
18f68570 VK |
20 | |
21 | # HPERL stands for host perl, which is perl on local desktop machine | |
22 | # which is usually ..\miniperl.exe | |
23 | #HPERL = N:\Programme\perl\bin\perl.exe | |
24 | HPERL = $(MAKEDIR)\..\miniperl.exe | |
25 | ||
ca6c63e1 JH |
26 | CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN |
27 | CELIBDLLDIR = h:\src\wince\celib-palm-3.0 | |
e4451f11 | 28 | CECONSOLEDIR = h:\src\wince\w32console |
18f68570 VK |
29 | |
30 | # specify following options to build perl on local machine, by MSVC | |
31 | MSVCDIR = D:\MSVStudio\VC98 | |
32 | CCHOME = $(MSVCDIR) | |
33 | CCINCDIR = $(CCHOME)\include | |
34 | CCLIBDIR = $(CCHOME)\lib | |
35 | ||
42165d27 VK |
36 | # cecopy program. Make shure it is in your path, as well as cemkdir, cedel |
37 | CECOPY = cecopy | |
38 | ||
18f68570 | 39 | # |
f4257e4d YO |
40 | # Comment out next assign to disable perl's I/O subsystem and use compiler's |
41 | # stdio for IO - depending on your compiler vendor and run time library you may | |
42 | # then get a number of fails from make test i.e. bugs - complain to them not us ;-). | |
43 | # You will also be unable to take full advantage of perl5.8's support for multiple | |
18f68570 VK |
44 | # encodings and may see lower IO performance. You have been warned. |
45 | USE_PERLIO = define | |
46 | ||
2e64bfdb JH |
47 | # |
48 | # set this if you wish to use perl's malloc | |
49 | # This will make perl run few times faster | |
50 | # WARNING: Turning this on/off WILL break binary compatibility with extensions | |
51 | # you may have compiled with/without it. | |
52 | # | |
53 | PERL_MALLOC = define | |
54 | ||
18f68570 | 55 | |
e4451f11 JH |
56 | NOOP = @echo |
57 | # keep this untouched! | |
58 | NULL = | |
59 | ||
42165d27 | 60 | |
aebd5ec7 VK |
61 | #CFG=DEBUG |
62 | CFG=RELEASE | |
e4451f11 JH |
63 | |
64 | !if "$(MACHINE)" == "" | |
65 | MACHINE=wince-arm-hpc-wce300 | |
66 | #MACHINE=wince-arm-hpc-wce211 | |
67 | #MACHINE=wince-sh3-hpc-wce211 | |
68 | #MACHINE=wince-mips-hpc-wce211 | |
69 | #MACHINE=wince-sh3-hpc-wce200 | |
70 | #MACHINE=wince-mips-hpc-wce200 | |
71 | #MACHINE=wince-arm-pocket-wce300 | |
72 | #MACHINE=wince-mips-pocket-wce300 | |
73 | #MACHINE=wince-sh3-pocket-wce300 | |
74 | #MACHINE=wince-x86em-pocket-wce300 | |
75 | #MACHINE=wince-mips-palm-wce211 | |
76 | #MACHINE=wince-sh3-palm-wce211 | |
77 | #MACHINE=wince-x86em-palm-wce211 | |
61b311ca | 78 | #MACHINE=wince-x86-hpc-wce300 |
e4451f11 JH |
79 | !endif |
80 | ||
2e64bfdb JH |
81 | # set this to your email address |
82 | # | |
83 | #EMAIL = | |
84 | ||
85 | ##################### CHANGE THESE ONLY IF YOU MUST ##################### | |
86 | ||
e4451f11 JH |
87 | ###################################################################### |
88 | # machines | |
89 | ||
90 | !if "$(MACHINE)" == "wince-sh3-hpc-wce211" | |
91 | CC = shcl.exe | |
92 | ARCH = SH3 | |
93 | CPU = SH3 | |
94 | TARGETCPU = SH3 | |
95 | CEVersion = 211 | |
96 | OSVERSION = WCE211 | |
97 | PLATFORM = MS HPC Pro | |
98 | MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \ | |
99 | -I $(CELIBDLLDIR)\inc | |
100 | SUBSYS = -subsystem:windowsce,2.11 | |
101 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
102 | LDLIBPATH = -libpath:$(CELIBPATH) | |
103 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
104 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
105 | !endif | |
106 | ||
107 | !if "$(MACHINE)" == "wince-mips-hpc-wce211" | |
108 | CC = clmips.exe | |
109 | ARCH = MIPS | |
110 | CPU = MIPS | |
111 | TARGETCPU = MIPS | |
112 | CEVersion = 211 | |
113 | OSVERSION = WCE211 | |
114 | PLATFORM = MS HPC Pro | |
115 | MCFLAGS = -D _MT -D _DLL \ | |
116 | -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ | |
117 | -D PALM_SIZE \ | |
118 | -I $(CELIBDLLDIR)\inc | |
119 | SUBSYS = -subsystem:windowsce,2.11 | |
120 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
121 | LDLIBPATH = -libpath:$(CELIBPATH) | |
122 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
123 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
124 | !endif | |
125 | ||
126 | !if "$(MACHINE)" == "wince-mips-hpc-wce200" | |
127 | CC = clmips.exe | |
128 | ARCH = MIPS | |
129 | CPU = MIPS | |
130 | TARGETCPU = MIPS | |
131 | CEVersion = 200 | |
132 | OSVERSION = WCE200 | |
133 | PLATFORM = MS HPC | |
134 | # MUST USE -MD to get the right FPE stuff... | |
135 | MCFLAGS = -D _MT -D _DLL -MD \ | |
136 | -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ | |
137 | -D PALM_SIZE \ | |
138 | -I $(CELIBDLLDIR)\inc | |
139 | SUBSYS = -subsystem:windowsce,2.00 | |
140 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
141 | LDLIBPATH = -libpath:$(CELIBPATH) | |
142 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
143 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
144 | !endif | |
145 | ||
146 | !if "$(MACHINE)" == "wince-sh3-hpc-wce200" | |
147 | CC = shcl.exe | |
148 | ARCH = SH3 | |
149 | CPU = SH3 | |
150 | TARGETCPU = SH3 | |
151 | CEVersion = 200 | |
152 | OSVERSION = WCE200 | |
153 | PLATFORM = MS HPC | |
154 | # MUST USE -MD to get the right FPE stuff... | |
155 | MCFLAGS = -D _MT -D _DLL -MD \ | |
156 | -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \ | |
157 | -D PALM_SIZE \ | |
158 | -I $(CELIBDLLDIR)\inc | |
159 | SUBSYS = -subsystem:windowsce,2.00 | |
160 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
161 | LDLIBPATH = -libpath:$(CELIBPATH) | |
162 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
163 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
164 | !endif | |
165 | ||
166 | !if "$(MACHINE)" == "wince-arm-hpc-wce211" | |
167 | CC = clarm.exe | |
168 | ARCH = ARM | |
169 | CPU = ARM | |
170 | TARGETCPU = ARM | |
171 | CEVersion = 211 | |
172 | OSVERSION = WCE211 | |
173 | PLATFORM = MS HPC Pro | |
174 | MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \ | |
175 | -DPROCESSOR_ARM -DPALM_SIZE \ | |
176 | -I $(CELIBDLLDIR)\inc | |
177 | SUBSYS = -subsystem:windowsce,2.11 | |
178 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
179 | LDLIBPATH = -libpath:$(CELIBPATH) | |
180 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
181 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
182 | !endif | |
183 | ||
184 | !if "$(MACHINE)" == "wince-arm-hpc-wce300" | |
185 | CC = clarm.exe | |
186 | ARCH = ARM | |
187 | CPU = ARM | |
188 | TARGETCPU = ARM | |
189 | CEVersion = 300 | |
190 | OSVERSION = WCE300 | |
c96f74ce | 191 | #PLATFORM = HPC2000 |
e4451f11 JH |
192 | MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \ |
193 | -DPROCESSOR_ARM -DPALM_SIZE \ | |
194 | -I $(CELIBDLLDIR)\inc | |
195 | SUBSYS = -subsystem:windowsce,3.00 | |
196 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
197 | LDLIBPATH = -libpath:$(CELIBPATH) | |
198 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
199 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
200 | !endif | |
201 | ||
202 | !if "$(MACHINE)" == "wince-mips-palm-wce211" | |
203 | CC = clmips.exe | |
204 | ARCH = MIPS | |
205 | CPU = MIPS | |
206 | TARGETCPU = MIPS | |
207 | CEVersion = 211 | |
208 | OSVERSION = WCE211 | |
209 | PLATFORM = MS Palm Size PC | |
210 | MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \ | |
211 | -I $(CELIBDLLDIR)\inc | |
212 | SUBSYS = -subsystem:windowsce,2.11 | |
213 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
214 | LDLIBPATH = -libpath:$(CELIBPATH) | |
215 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
216 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
217 | !endif | |
218 | ||
219 | !if "$(MACHINE)" == "wince-sh3-palm-wce211" | |
220 | CC = shcl.exe | |
221 | ARCH = SH3 | |
222 | CPU = SH3 | |
223 | TARGETCPU = SH3 | |
224 | CEVersion = 211 | |
225 | OSVERSION = WCE211 | |
226 | PLATFORM = MS Palm Size PC | |
227 | MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \ | |
228 | -I $(CELIBDLLDIR)\inc | |
229 | SUBSYS = -subsystem:windowsce,2.11 | |
230 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
231 | LDLIBPATH = -libpath:$(CELIBPATH) | |
232 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
233 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
234 | !endif | |
235 | ||
236 | !if "$(MACHINE)" == "wince-x86em-palm-wce211" | |
237 | CC = cl.exe | |
238 | ARCH = X86EM | |
239 | CPU = X86 | |
240 | TARGETCPU = X86 | |
241 | CEVersion = 211 | |
242 | OSVERSION = WCE211 | |
243 | PLATFORM = MS Palm Size PC | |
244 | MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \ | |
245 | -D_WIN32_WCE_EMULATION -DPALM_SIZE \ | |
246 | -I $(CELIBDLLDIR)\inc | |
247 | MACH = -machine:x86 | |
248 | SUBSYS = -subsystem:windows | |
249 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
250 | LDLIBPATH = -libpath:$(CELIBPATH) | |
251 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
252 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
253 | !endif | |
254 | ||
255 | !if "$(MACHINE)" == "wince-x86em-pocket-wce300" | |
256 | CC = cl.exe | |
257 | ARCH = X86EM | |
258 | CPU = X86 | |
259 | TARGETCPU = X86 | |
260 | CEVersion = 300 | |
261 | OSVERSION = WCE300 | |
262 | PLATFORM = MS Pocket PC | |
263 | MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \ | |
264 | -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \ | |
f4257e4d | 265 | -I $(CELIBDLLDIR)\inc |
e4451f11 JH |
266 | MACH = -machine:x86 |
267 | SUBSYS = -subsystem:windows | |
268 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
269 | LDLIBPATH = -libpath:$(CELIBPATH) | |
270 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
271 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
272 | !endif | |
273 | ||
274 | !if "$(MACHINE)" == "wince-mips-pocket-wce300" | |
275 | CC = clmips.exe | |
276 | ARCH = MIPS | |
277 | CPU = MIPS | |
278 | TARGETCPU = MIPS | |
279 | CEVersion = 300 | |
280 | OSVERSION = WCE300 | |
281 | PLATFORM = MS Pocket PC | |
282 | MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ | |
283 | -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \ | |
f4257e4d | 284 | -I $(CELIBDLLDIR)\inc |
e4451f11 JH |
285 | MACH = -machine:mips |
286 | SUBSYS = -subsystem:windowsce,3.00 | |
287 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
216db7ee | 288 | #STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU) |
e4451f11 | 289 | LDLIBPATH = -libpath:$(CELIBPATH) |
216db7ee | 290 | #"-libpath:$(STDLIBPATH)" |
e4451f11 JH |
291 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ |
292 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
293 | !endif | |
294 | ||
295 | !if "$(MACHINE)" == "wince-sh3-pocket-wce300" | |
296 | CC = shcl.exe | |
297 | ARCH = SH3 | |
298 | CPU = SH3 | |
299 | TARGETCPU = SH3 | |
300 | CEVersion = 300 | |
301 | OSVERSION = WCE300 | |
302 | PLATFORM = MS Pocket PC | |
303 | MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \ | |
304 | -DPALM_SIZE -DPOCKET_SIZE \ | |
f4257e4d | 305 | -I $(CELIBDLLDIR)\inc |
2e64bfdb | 306 | MACH = -machine:sh3 |
e4451f11 JH |
307 | SUBSYS = -subsystem:windowsce,3.00 |
308 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
309 | LDLIBPATH = -libpath:$(CELIBPATH) | |
310 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
311 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
312 | !endif | |
313 | ||
314 | !if "$(MACHINE)" == "wince-arm-pocket-wce300" | |
315 | CC = clarm.exe | |
316 | ARCH = ARM | |
317 | CPU = ARM | |
318 | TARGETCPU = ARM | |
319 | CEVersion = 300 | |
320 | OSVERSION = WCE300 | |
321 | PLATFORM = MS Pocket PC | |
322 | MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \ | |
323 | -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \ | |
f4257e4d | 324 | -I $(CELIBDLLDIR)\inc |
e4451f11 JH |
325 | MACH = -machine:arm |
326 | SUBSYS = -subsystem:windowsce,3.00 | |
327 | CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release | |
328 | LDLIBPATH = -libpath:$(CELIBPATH) | |
329 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
330 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
331 | !endif | |
332 | ||
61b311ca DD |
333 | !if "$(MACHINE)" == "wince-x86-hpc-wce300" |
334 | CC = cl.exe | |
335 | ARCH = X86EM | |
336 | CPU = X86 | |
337 | TARGETCPU = X86 | |
338 | CEVersion = 400 | |
339 | OSVERSION = WCE400 | |
340 | PLATFORM = MS Pocket PC | |
341 | MCFLAGS = -DX86 -D_X86_ -Dx86 -DPROCESSOR_X86 -D _MT -D _DLL \ | |
342 | -DPALM_SIZE -DPOCKET_SIZE -I $(CELIBDLLDIR)\inc | |
343 | MACH = -machine:IX86 | |
344 | SUBSYS = -subsystem:windowsce,2.0 | |
345 | CELIBPATH = $(CELIBDLLDIR)\wince-x86-hpc-wce300-release | |
346 | LDLIBPATH = -libpath:$(CELIBPATH) | |
347 | STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ | |
348 | $(CECONSOLEDIR)/$(MACHINE)/w32console.obj | |
349 | !endif | |
350 | ||
e4451f11 JH |
351 | ###################################################################### |
352 | # common section | |
353 | ||
354 | CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \ | |
58ff4bd0 | 355 | $(MCFLAGS) -D PERL -GS- |
ca6c63e1 | 356 | |
e4451f11 JH |
357 | CECFLAGS = $(CEDEFS) |
358 | ||
359 | !if "$(CFG)" == "DEBUG" | |
360 | CECFLAGS = $(CECFLAGS) -Zi -Od | |
361 | !endif | |
362 | ||
363 | !if "$(CFG)" == "RELEASE" | |
364 | # -O2 and -Ot give internal compiler error in perl.c and lexer. | |
365 | # Also the dll cannot be loaded by perl.exe... | |
c96f74ce JH |
366 | !if "$(CPU)" == "SH3" |
367 | !else | |
2e64bfdb | 368 | CECFLAGS = $(CECFLAGS) -O2 -Ot |
e4451f11 JH |
369 | !endif |
370 | ||
c96f74ce JH |
371 | !endif |
372 | ||
e4451f11 JH |
373 | RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \ |
374 | /d _WIN32_WCE=$(CEVersion) | |
375 | ||
376 | PATH=$(CEPATH);$(PATH) | |
377 | ||
61b311ca DD |
378 | # attention, for eVC 4, these paths are not generated correctly since the |
379 | # WinCE SDK is organized differently from eVC 3, replace the next 2 macros | |
380 | # with absolute paths to the correct directories on your system | |
58ff4bd0 DD |
381 | #INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include |
382 | #LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH) | |
e4451f11 JH |
383 | |
384 | ###################################################################### | |
385 | ||
386 | !message | |
387 | !message Compiling for $(MACHINE) | |
388 | !message LIB=$(LIB) | |
389 | !message INCLUDE=$(INCLUDE) | |
390 | !message PATH=$(CEPATH) | |
391 | !message | |
392 | ||
393 | ###################################################################### | |
394 | # | |
395 | # Additional compiler flags can be specified here. | |
396 | # | |
397 | ||
b0f06652 | 398 | BUILDOPT = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE |
e4451f11 | 399 | |
e4451f11 JH |
400 | |
401 | !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == "" | |
402 | D_CRYPT = undef | |
403 | !ELSE | |
404 | D_CRYPT = define | |
405 | CRYPT_FLAG = -DHAVE_DES_FCRYPT | |
406 | !ENDIF | |
407 | ||
e4451f11 JH |
408 | !IF "$(PERL_MALLOC)" == "" |
409 | PERL_MALLOC = undef | |
410 | !ENDIF | |
411 | ||
e4451f11 JH |
412 | !IF "$(USE_MULTI)" == "" |
413 | USE_MULTI = undef | |
414 | !ENDIF | |
415 | ||
e4451f11 JH |
416 | !IF "$(USE_ITHREADS)" == "" |
417 | USE_ITHREADS = undef | |
418 | !ENDIF | |
419 | ||
420 | !IF "$(USE_IMP_SYS)" == "" | |
421 | USE_IMP_SYS = undef | |
422 | !ENDIF | |
423 | ||
18f68570 VK |
424 | !IF "$(USE_PERLIO)" == "" |
425 | USE_PERLIO = undef | |
426 | !ENDIF | |
427 | ||
e4451f11 JH |
428 | !IF "$(USE_PERLCRT)" == "" |
429 | USE_PERLCRT = undef | |
430 | !ENDIF | |
431 | ||
3db8f154 | 432 | !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef" |
e4451f11 JH |
433 | USE_MULTI = define |
434 | !ENDIF | |
435 | ||
acfe0abc | 436 | !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef" |
e4451f11 | 437 | USE_MULTI = define |
e4451f11 JH |
438 | !ENDIF |
439 | ||
3db8f154 | 440 | !IF "$(USE_MULTI)" != "undef" |
e4451f11 JH |
441 | BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT |
442 | !ENDIF | |
443 | ||
444 | !IF "$(USE_IMP_SYS)" != "undef" | |
445 | BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS | |
446 | !ENDIF | |
447 | ||
18f68570 VK |
448 | !IF "$(USE_PERLIO)" == "define" |
449 | BUILDOPT = $(BUILDOPT) -DUSE_PERLIO | |
450 | !ENDIF | |
451 | ||
47bcb90d | 452 | !IF "$(CROSS_NAME)" == "" |
2e64bfdb | 453 | CROSS_NAME = $(MACHINE) |
47bcb90d VK |
454 | !ENDIF |
455 | ||
e4451f11 JH |
456 | # new option - automatically defined in perl.h... |
457 | #BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY | |
458 | ||
459 | PROCESSOR_ARCHITECTURE = $(TARGETCPU) | |
460 | ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE) | |
e4451f11 JH |
461 | ARCHDIR = ..\lib\$(ARCHNAME) |
462 | COREDIR = ..\lib\CORE | |
e2a02c1e | 463 | XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE |
e4451f11 JH |
464 | AUTODIR = ..\lib\auto |
465 | LIBDIR = ..\lib | |
466 | EXTDIR = ..\ext | |
58ff4bd0 DD |
467 | DISTDIR = ..\dist |
468 | CPANDIR = ..\cpan | |
e4451f11 JH |
469 | PODDIR = ..\pod |
470 | EXTUTILSDIR = $(LIBDIR)\ExtUtils | |
471 | ||
472 | LINK32 = link | |
473 | LIB32 = $(LINK32) -lib | |
474 | RSC = rc | |
475 | ||
f4257e4d | 476 | INCLUDES = -I.\include -I. -I.. |
e4451f11 JH |
477 | DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS) |
478 | LOCDEFS = -DPERLDLL -DPERL_CORE | |
216db7ee | 479 | CXX_FLAG = -TP |
e4451f11 JH |
480 | |
481 | PERLEXE_RES = perl.res | |
482 | PERLDLL_RES = | |
483 | ||
e4451f11 JH |
484 | !if "$(CFG)" == "RELEASE" |
485 | CELIB = celib.lib | |
486 | !endif | |
487 | ||
488 | !if "$(CFG)" == "DEBUG" | |
489 | CELIB = celib.lib | |
490 | !endif | |
491 | ||
61b311ca | 492 | #use ws2.lib instead of winsock.lib for WSAGetLastError |
e4451f11 | 493 | CELIBS = -nodefaultlib \ |
61b311ca | 494 | ws2.lib $(CELIB) coredll.lib |
e4451f11 JH |
495 | |
496 | !if $(CEVersion) > 200 | |
f4257e4d | 497 | CELIBS = $(CELIBS) corelibc.lib |
e4451f11 | 498 | !else |
f4257e4d | 499 | CELIBS = $(CELIBS) msvcrt.lib |
e4451f11 JH |
500 | !endif |
501 | ||
502 | LIBBASEFILES = $(CRYPT_LIB) $(CELIBS) | |
503 | ||
504 | LIBFILES = $(LIBBASEFILES) $(LIBC) | |
505 | ||
58ff4bd0 | 506 | CFLAGS = -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \ |
e4451f11 JH |
507 | $(PCHFLAGS) $(OPTIMIZE) |
508 | ||
61b311ca | 509 | LINK_FLAGS = -nologo -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE) |
e4451f11 JH |
510 | |
511 | !if "$(CFG)" == "DEBUG" | |
61b311ca | 512 | LINK_FLAGS = $(LINK_FLAGS) -debug |
2e64bfdb | 513 | !else |
f4257e4d | 514 | LINK_FLAGS = $(LINK_FLAGS) -release |
e4451f11 JH |
515 | !endif |
516 | ||
517 | OBJOUT_FLAG = -Fo | |
518 | EXEOUT_FLAG = -Fe | |
519 | ||
520 | CFLAGS_O = $(CFLAGS) $(BUILDOPT) | |
521 | ||
522 | o = .obj | |
523 | ||
524 | # | |
525 | # Rules | |
f4257e4d | 526 | # |
e4451f11 JH |
527 | |
528 | .SUFFIXES : .c $(o) .dll .lib .exe .rc .res | |
529 | ||
530 | .c$(o): | |
531 | $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $< | |
532 | ||
61b311ca DD |
533 | .c.i: |
534 | $(CC) -c -I$(<D) $(CFLAGS_O) -P $(OBJOUT_FLAG)$@ $< | |
535 | ||
e4451f11 JH |
536 | .y.c: |
537 | $(NOOP) | |
538 | ||
539 | $(o).dll: | |
540 | $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \ | |
541 | -implib:$(*B).lib -def:$(*B).def \ | |
f4257e4d | 542 | -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL) |
e4451f11 JH |
543 | |
544 | .rc.res: | |
545 | $(RSC) -i.. $< | |
546 | ||
547 | # This must be relative to ../lib/CORE, else the ext dll build fails... | |
e2a02c1e | 548 | PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib |
e4451f11 JH |
549 | PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib |
550 | PERLDLL = $(MACHINE)\perl$(PV).dll | |
551 | ||
552 | DLLDIR = $(MACHINE)\dll | |
553 | PERLEXE = $(MACHINE)\perl.exe | |
554 | ||
e2a02c1e | 555 | CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm |
e4451f11 JH |
556 | MINIMOD = ..\lib\ExtUtils\Miniperl.pm |
557 | ||
42d1cefd | 558 | # Unicode data files generated by mktables |
517bb5c6 | 559 | FIRSTUNIFILE = ..\lib\unicore\Decomposition.pl |
3df51b85 | 560 | UNIDATAFILES = ..\lib\unicore\Decomposition.pl \ |
42d1cefd | 561 | ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \ |
860054a8 | 562 | ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \ |
1a234f2b | 563 | ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \ |
3e344d15 | 564 | ..\lib\unicore\TestProp.pl |
42d1cefd | 565 | |
517bb5c6 VK |
566 | PERLEXE_MANIFEST= .\perlexe.manifest |
567 | PERLEXE_ICO = .\perlexe.ico | |
568 | PERLEXE_RES = .\perlexe.res | |
569 | PERLDLL_RES = | |
570 | ||
42d1cefd RGS |
571 | # Directories of Unicode data files generated by mktables |
572 | UNIDATADIR1 = ..\lib\unicore\To | |
573 | UNIDATADIR2 = ..\lib\unicore\lib | |
574 | ||
fefd7080 VK |
575 | # Nominate a target which causes extensions to be re-built |
576 | # This used to be $(PERLEXE), but at worst it is the .dll that they depend | |
577 | # on and really only the interface - i.e. the .def file used to export symbols | |
578 | # from the .dll | |
579 | PERLDEP = perldll.def | |
580 | ||
e4451f11 | 581 | MAKE = nmake -nologo |
58ff4bd0 | 582 | MAKE_BARE = nmake |
e4451f11 JH |
583 | |
584 | CFGSH_TMPL = config.ce | |
585 | CFGH_TMPL = config_H.ce | |
586 | ||
58ff4bd0 DD |
587 | XCOPY = xcopy /f /r /i /d /y |
588 | RCOPY = xcopy /f /r /i /e /d /y | |
589 | NOOP = @rem | |
590 | NULL = | |
591 | ||
592 | DEL = del | |
593 | ||
e4451f11 JH |
594 | MICROCORE_SRC = \ |
595 | ..\av.c \ | |
596 | ..\deb.c \ | |
597 | ..\doio.c \ | |
598 | ..\doop.c \ | |
599 | ..\dump.c \ | |
600 | ..\globals.c \ | |
601 | ..\gv.c \ | |
e1a479c5 | 602 | ..\mro.c \ |
e4451f11 | 603 | ..\hv.c \ |
61b311ca | 604 | ..\locale.c \ |
26ea9e12 | 605 | ..\keywords.c \ |
61b311ca | 606 | ..\mathoms.c \ |
e4451f11 | 607 | ..\mg.c \ |
61b311ca | 608 | ..\numeric.c \ |
e4451f11 | 609 | ..\op.c \ |
b475b3e6 | 610 | ..\pad.c \ |
e4451f11 JH |
611 | ..\perl.c \ |
612 | ..\perlapi.c \ | |
613 | ..\perly.c \ | |
614 | ..\pp.c \ | |
615 | ..\pp_ctl.c \ | |
616 | ..\pp_hot.c \ | |
84d4ea48 JH |
617 | ..\pp_pack.c \ |
618 | ..\pp_sort.c \ | |
e4451f11 | 619 | ..\pp_sys.c \ |
10bc17b6 | 620 | ..\reentr.c \ |
e4451f11 JH |
621 | ..\regcomp.c \ |
622 | ..\regexec.c \ | |
623 | ..\run.c \ | |
624 | ..\scope.c \ | |
625 | ..\sv.c \ | |
626 | ..\taint.c \ | |
627 | ..\toke.c \ | |
628 | ..\universal.c \ | |
629 | ..\utf8.c \ | |
48462a74 | 630 | ..\util.c |
e4451f11 JH |
631 | |
632 | EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c | |
633 | ||
634 | !IF "$(PERL_MALLOC)" == "define" | |
635 | EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c | |
636 | !ENDIF | |
637 | ||
42165d27 | 638 | EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c |
e4451f11 JH |
639 | |
640 | WIN32_SRC = \ | |
641 | .\wince.c \ | |
642 | .\wincesck.c \ | |
f4257e4d | 643 | .\win32thread.c |
e4451f11 JH |
644 | |
645 | !IF "$(CRYPT_SRC)" != "" | |
646 | WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC) | |
647 | !ENDIF | |
648 | ||
e4451f11 JH |
649 | CORE_NOCFG_H = \ |
650 | ..\av.h \ | |
651 | ..\cop.h \ | |
652 | ..\cv.h \ | |
653 | ..\dosish.h \ | |
654 | ..\embed.h \ | |
655 | ..\form.h \ | |
656 | ..\gv.h \ | |
657 | ..\handy.h \ | |
658 | ..\hv.h \ | |
4d3a042d | 659 | ..\hv_func.h \ |
e4451f11 JH |
660 | ..\iperlsys.h \ |
661 | ..\mg.h \ | |
662 | ..\nostdio.h \ | |
663 | ..\op.h \ | |
664 | ..\opcode.h \ | |
665 | ..\perl.h \ | |
666 | ..\perlapi.h \ | |
667 | ..\perlsdio.h \ | |
668 | ..\perlsfio.h \ | |
669 | ..\perly.h \ | |
670 | ..\pp.h \ | |
671 | ..\proto.h \ | |
672 | ..\regexp.h \ | |
673 | ..\scope.h \ | |
674 | ..\sv.h \ | |
675 | ..\thread.h \ | |
676 | ..\unixish.h \ | |
677 | ..\utf8.h \ | |
678 | ..\util.h \ | |
679 | ..\warnings.h \ | |
680 | ..\XSUB.h \ | |
681 | ..\EXTERN.h \ | |
682 | ..\perlvars.h \ | |
683 | ..\intrpvar.h \ | |
e4451f11 JH |
684 | .\include\dirent.h \ |
685 | .\include\netdb.h \ | |
c44e86c9 | 686 | .\include\sys\errno2.h \ |
e4451f11 JH |
687 | .\include\sys\socket.h \ |
688 | .\win32.h | |
689 | ||
48462a74 | 690 | DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \ |
e4451f11 JH |
691 | Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \ |
692 | Sys/Hostname | |
693 | ||
694 | STATIC_EXT = DynaLoader | |
e4451f11 JH |
695 | |
696 | DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader | |
e4451f11 JH |
697 | |
698 | ERRNO_PM = $(LIBDIR)\Errno.pm | |
699 | ||
e4451f11 JH |
700 | |
701 | EXTENSION_PM = \ | |
702 | $(ERRNO_PM) | |
703 | ||
e4451f11 | 704 | CFG_VARS = \ |
e4451f11 JH |
705 | "INST_TOP=$(INST_TOP)" \ |
706 | "INST_VER=$(INST_VER)" \ | |
707 | "INST_ARCH=$(INST_ARCH)" \ | |
708 | "archname=$(ARCHNAME)" \ | |
58ff4bd0 DD |
709 | "cc=$(CC)" \ |
710 | "ld=$(LINK32)" \ | |
e4451f11 | 711 | "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \ |
1829b0dc VK |
712 | "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \ |
713 | "cf_by=vkon" \ | |
2e64bfdb | 714 | "cf_email=$(EMAIL)" \ |
58ff4bd0 | 715 | #9cef8306 |
e4451f11 JH |
716 | "d_mymalloc=$(PERL_MALLOC)" \ |
717 | "libs=$(LIBFILES)" \ | |
718 | "incpath=$(CCINCDIR)" \ | |
719 | "libperl=$(PERLIMPLIB_EXP)" \ | |
720 | "libpth=$(LIBPATH)" \ | |
721 | "libc=$(LIBC)" \ | |
58ff4bd0 | 722 | "make=$(MAKE_BARE)" \ |
e4451f11 JH |
723 | "static_ext=$(STATIC_EXT)" \ |
724 | "dynamic_ext=$(DYNAMIC_EXT)" \ | |
58ff4bd0 | 725 | "usethreads=$(USE_ITHREADS)" \ |
e4451f11 | 726 | "useithreads=$(USE_ITHREADS)" \ |
e4451f11 | 727 | "usemultiplicity=$(USE_MULTI)" \ |
18f68570 | 728 | "useperlio=$(USE_PERLIO)" \ |
58ff4bd0 DD |
729 | "use64bitint=undef" \ |
730 | "uselargefiles=undef" \ | |
e4451f11 | 731 | "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \ |
58ff4bd0 DD |
732 | "optimize=$(OPTIMIZE)" \ |
733 | "WIN64=$(WIN64)" | |
e4451f11 | 734 | |
517bb5c6 VK |
735 | ICWD = -I..\dist\Cwd -I..\dist\Cwd\lib |
736 | ICWD1 = -I..\..\dist\Cwd -I..\..\dist\Cwd\lib | |
737 | ||
738 | # | |
739 | # filenames given to xsubpp must have forward slashes (since it puts | |
740 | # full pathnames in #line strings) | |
741 | XSUBPP = $(HPERL) -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \ | |
742 | -C++ -prototypes | |
743 | ||
744 | ||
e4451f11 JH |
745 | # |
746 | # Top targets | |
747 | # | |
748 | ||
42e07562 | 749 | all: hostminiperl $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions |
e4451f11 | 750 | |
d8c3cb99 | 751 | $(DYNALOADER)$(o) : $(DYNALOADER).c xconfig.h $(EXTDIR)\DynaLoader\dlutils.c |
e4451f11 | 752 | |
58ff4bd0 DD |
753 | #convenience target |
754 | configpm_targ : $(CONFIGPM) | |
755 | ||
61b311ca | 756 | $(CONFIGPM) : $(HPERL) ..\Cross\config-$(MACHINE).sh config_h.PL ..\minimod.pl |
517bb5c6 | 757 | cd .. && $(HPERL) -Ilib configpm --cross=$(CROSS_NAME) --no-glossary |
e2a02c1e VK |
758 | -mkdir $(XCOREDIR) |
759 | $(XCOPY) ..\*.h $(XCOREDIR)\*.* | |
760 | $(XCOPY) *.h $(XCOREDIR)\*.* | |
e4451f11 | 761 | $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* |
e2a02c1e | 762 | $(RCOPY) include $(XCOREDIR)\*.* |
e4451f11 | 763 | |
f4257e4d YO |
764 | .\xconfig.h: |
765 | -del /f xconfig.h | |
608969de | 766 | -mkdir $(XCOREDIR) |
517bb5c6 | 767 | -$(HPERL) -I..\lib $(ICWD) -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" "CONFIG_H=xconfig.h" |
608969de | 768 | $(XCOPY) xconfig.h $(XCOREDIR)\config.h |
e2a02c1e | 769 | |
61b311ca DD |
770 | ..\Cross\config-$(MACHINE).sh: config.ce config_sh.PL |
771 | $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\Cross\config-$(MACHINE).sh | |
e4451f11 JH |
772 | |
773 | $(MINIMOD) : ..\minimod.pl | |
18f68570 | 774 | cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm |
e4451f11 | 775 | |
42e07562 | 776 | MakePPPort: $(MINIPERL) $(CONFIGPM) |
01e90026 | 777 | $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ..\mkppport |
42e07562 MHM |
778 | |
779 | MakePPPort_clean: | |
01e90026 | 780 | -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean |
42e07562 | 781 | |
fefd7080 | 782 | #---------------------------------------------------------------------------------- |
94081db1 VK |
783 | NOT_COMPILE_EXT = |
784 | !if "$(MACHINE)" == "wince-sh3-palm-wce211" | |
785 | NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap | |
786 | !endif | |
787 | !if "$(MACHINE)" == "wince-mips-palm-wce211" | |
788 | NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap | |
789 | !endif | |
790 | ||
58ff4bd0 DD |
791 | Extensions: ..\make_ext.pl $(CONFIGPM) |
792 | $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --all \ | |
793 | !POSIX !Errno !Win32 !Win32API/File !Socket !Time/HiRes !Time/Piece !re $(NOT_COMPILE_EXT) | |
fefd7080 | 794 | |
f4257e4d | 795 | Extensions_clean: |
58ff4bd0 | 796 | -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --all --target=clean |
fefd7080 VK |
797 | |
798 | #---------------------------------------------------------------------------------- | |
799 | ||
517bb5c6 VK |
800 | $(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO) |
801 | rc $(RCDEFS) perlexe.rc | |
e4451f11 | 802 | |
f4257e4d | 803 | clean: |
58ff4bd0 DD |
804 | -if exist .\$(MACHINE)\dll rmdir /s /q .\$(MACHINE)\dll |
805 | -@$(DEL) .\$(MACHINE)\*.obj | |
806 | -@$(DEL) .\$(MACHINE)\*.exe | |
807 | -@$(DEL) .\$(MACHINE)\*.dll | |
808 | -@$(DEL) .\$(MACHINE)\*.lib | |
809 | -@$(DEL) .\$(MACHINE)\*.exp | |
810 | -@$(DEL) .\$(MACHINE)\*.pdb | |
811 | -@$(DEL) ..\Cross\config-$(MACHINE).sh ..\lib\Config.pm | |
812 | -if exist ..\xlib rmdir /s /q ..\xlib | |
813 | -@$(DEL) config.h xconfig.h perl.res | |
814 | -@$(DEL) ..\t\test_state | |
e4451f11 | 815 | |
e4451f11 JH |
816 | XDLLOBJS = \ |
817 | $(DLLDIR)\av.obj \ | |
818 | $(DLLDIR)\deb.obj \ | |
819 | $(DLLDIR)\doio.obj \ | |
820 | $(DLLDIR)\doop.obj \ | |
821 | $(DLLDIR)\dump.obj \ | |
822 | $(DLLDIR)\globals.obj \ | |
823 | $(DLLDIR)\gv.obj \ | |
e1a479c5 | 824 | $(DLLDIR)\mro.obj \ |
e4451f11 JH |
825 | $(DLLDIR)\hv.obj \ |
826 | $(DLLDIR)\locale.obj \ | |
517bb5c6 | 827 | $(DLLDIR)\keywords.obj \ |
7ee2227d | 828 | $(DLLDIR)\mathoms.obj \ |
e4451f11 JH |
829 | $(DLLDIR)\mg.obj \ |
830 | $(DLLDIR)\numeric.obj \ | |
831 | $(DLLDIR)\op.obj \ | |
b475b3e6 | 832 | $(DLLDIR)\pad.obj \ |
e4451f11 JH |
833 | $(DLLDIR)\perl.obj \ |
834 | $(DLLDIR)\perlapi.obj \ | |
835 | $(DLLDIR)\perlio.obj \ | |
836 | $(DLLDIR)\perly.obj \ | |
837 | $(DLLDIR)\pp.obj \ | |
838 | $(DLLDIR)\pp_ctl.obj \ | |
839 | $(DLLDIR)\pp_hot.obj \ | |
840 | $(DLLDIR)\pp_pack.obj \ | |
84d4ea48 | 841 | $(DLLDIR)\pp_sort.obj \ |
e4451f11 | 842 | $(DLLDIR)\pp_sys.obj \ |
10bc17b6 | 843 | $(DLLDIR)\reentr.obj \ |
e4451f11 JH |
844 | $(DLLDIR)\regcomp.obj \ |
845 | $(DLLDIR)\regexec.obj \ | |
846 | $(DLLDIR)\run.obj \ | |
847 | $(DLLDIR)\scope.obj \ | |
848 | $(DLLDIR)\sv.obj \ | |
849 | $(DLLDIR)\taint.obj \ | |
850 | $(DLLDIR)\toke.obj \ | |
851 | $(DLLDIR)\universal.obj \ | |
852 | $(DLLDIR)\utf8.obj \ | |
853 | $(DLLDIR)\util.obj \ | |
854 | $(DLLDIR)\win32thread.obj \ | |
855 | $(DLLDIR)\wince.obj \ | |
42165d27 | 856 | $(DLLDIR)\win32io.obj \ |
e4451f11 | 857 | $(DLLDIR)\wincesck.obj \ |
e4451f11 JH |
858 | $(DLLDIR)\perllib.obj \ |
859 | $(DLLDIR)\DynaLoader.obj | |
2e64bfdb JH |
860 | !IF "$(PERL_MALLOC)" == "define" |
861 | XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj | |
862 | !ENDIF | |
81003058 VK |
863 | !IF "$(CRYPT_SRC)" != "" |
864 | XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj | |
865 | !ENDIF | |
e4451f11 JH |
866 | |
867 | {$(SRCDIR)}.c{$(DLLDIR)}.obj: | |
216db7ee VK |
868 | $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $< |
869 | ||
870 | # compiler explains that it will optimize toke.c if we'll give it an | |
871 | # option -QMOb<num> with num>=4178 | |
872 | $(DLLDIR)\toke.obj: | |
873 | $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c | |
e4451f11 | 874 | |
247d8755 | 875 | {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj: |
216db7ee VK |
876 | $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $< |
877 | ||
878 | # -DPERL_IMPLICIT_SYS needs C++ for perllib.c | |
879 | # This is the only file that depends on perlhost.h, vmem.h, and vdir.h | |
880 | !IF "$(USE_IMP_SYS)" == "define" | |
8f33b42a | 881 | $(DLLDIR)\perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h |
216db7ee VK |
882 | $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c |
883 | rem (frustrated) mv perllib.obj $(DLLDIR) | |
884 | !ENDIF | |
e4451f11 | 885 | |
61b311ca | 886 | perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl .\xconfig.h |
517bb5c6 VK |
887 | $(HPERL) -I..\lib -MCross create_perllibst_h.pl |
888 | $(HPERL) -I..\lib -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \ | |
080c3729 | 889 | CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def |
18f68570 | 890 | |
e4451f11 | 891 | $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES) |
61b311ca | 892 | $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \ |
e4451f11 JH |
893 | $(SUBSYS) $(LDLIBPATH) \ |
894 | $(LINK_FLAGS) $(LIBFILES) \ | |
895 | $(XDLLOBJS) $(PERLDLL_RES) | |
896 | ||
897 | $(DLLDIR) : | |
898 | if not exist "$(DLLDIR)" mkdir "$(DLLDIR)" | |
899 | ||
58ff4bd0 DD |
900 | $(EXTDIR)\DynaLoader\DynaLoader.c : |
901 | $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader | |
902 | ||
e4451f11 | 903 | $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c |
216db7ee | 904 | $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \ |
e4451f11 JH |
905 | $(EXTDIR)\DynaLoader\DynaLoader.c |
906 | ||
907 | XPERLEXEOBJS = \ | |
247d8755 | 908 | $(MACHINE)\perlmaince.obj |
e4451f11 JH |
909 | |
910 | $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS) | |
e2a02c1e | 911 | $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR) |
2e64bfdb | 912 | $(LINK32) $(SUBSYS) $(LDLIBPATH) \ |
e4451f11 JH |
913 | -entry:wWinMainCRTStartup \ |
914 | -out:$(MACHINE)\perl.exe \ | |
915 | -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \ | |
916 | $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES) | |
917 | ||
247d8755 VK |
918 | $(MACHINE)\perlmaince.obj : perlmaince.c |
919 | $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c | |
e4451f11 JH |
920 | |
921 | iodll: $(IO_DLL) | |
922 | socketdll: $(SOCKET_DLL) | |
923 | dumperdll: $(DUMPER_DLL) | |
924 | ||
925 | dlls: socketdll iodll dumperdll | |
926 | -xmkdir -p $(MACHINE)/lib/auto/IO | |
927 | cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO | |
928 | cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO | |
929 | -xmkdir $(MACHINE)/lib/auto/Socket | |
930 | cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket | |
931 | cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket | |
932 | -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper | |
933 | cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper | |
934 | cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper | |
935 | ||
936 | makedist: all dlls | |
937 | $(COPY) $(CELIBPATH)\celib.dll $(MACHINE) | |
938 | cp perl.txt $(MACHINE) | |
939 | cp registry.bat $(MACHINE) | |
940 | cp ../lib/Config.pm $(MACHINE)/lib | |
941 | cd $(MACHINE) | |
58ff4bd0 | 942 | -@$(DEL) perl-$(MACHINE).tar.gz |
e4451f11 JH |
943 | sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib" |
944 | gzip -9 perl-$(MACHINE).tar | |
945 | mv perl-$(MACHINE).tar.gz h:/freenet/new | |
946 | cd .. | |
947 | ||
42165d27 VK |
948 | install: all |
949 | -cemkdir "$(INSTALL_ROOT)" | |
950 | -cemkdir "$(INSTALL_ROOT)\bin" | |
951 | -cemkdir "$(INSTALL_ROOT)\lib" | |
952 | $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin" | |
18f68570 | 953 | $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin" |
e2a02c1e | 954 | $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib" |
42d1cefd RGS |
955 | |
956 | $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables | |
957 | cd ..\lib\unicore && \ | |
517bb5c6 | 958 | $(HPERL) -I.. -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE) |
e4451f11 | 959 | |
2e64bfdb | 960 | dist: all |
284edc75 | 961 | $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) |
c96f74ce JH |
962 | |
963 | zipdist: all | |
284edc75 VK |
964 | $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) |
965 | $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip | |
c96f74ce JH |
966 | |
967 | zip: | |
284edc75 | 968 | $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip |
2e64bfdb | 969 | |
18f68570 | 970 | hostminiperl: ..\miniperl.exe |
e4451f11 | 971 | |
18f68570 | 972 | ..\miniperl.exe: |
18f68570 | 973 | set PATH=$(CCHOME)\bin;$(PATH) |
47bcb90d | 974 | $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe |
476a6acb | 975 | |
47bcb90d VK |
976 | host-install: |
977 | perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)" | |
978 | perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)" | |
979 | perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#" | |
980 | perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#" | |
74a9a7e5 VK |
981 | perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \ |
982 | quotemeta($$Config{installprefixexp}) . \ | |
983 | qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#" |