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