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