Update Changes.
[p5sagit/p5-mst-13.2.git] / win32 / Makefile
CommitLineData
a9226780 1#
2# Makefile to build perl on Windows NT using Microsoft NMAKE.
7a9b6398 3# Supported compilers:
4# Visual C++ 5.x (possibly other versions)
a9226780 5#
6# This is set up to build a perl.exe that runs off a shared library
7d4dff66 7# (perl57.dll). Also makes individual DLLs for the XS extensions.
a9226780 8#
9
10##
11## Make sure you read README.win32 *before* you mess with anything here!
12##
13
14##
15## Build configuration. Edit the values below to suit your needs.
16##
17
18#
19# Set these to wherever you want "nmake install" to put your
20# newly built perl.
21#
22INST_DRV = c:
23INST_TOP = $(INST_DRV)\perl
24
25#
26# Comment this out if you DON'T want your perl installation to be versioned.
27# This means that the new installation will overwrite any files from the
28# old installation at the same INST_TOP location. Leaving it enabled is
29# the safest route, as perl adds the extra version directory to all the
30# locations it installs files to. If you disable it, an alternative
31# versioned installation can be obtained by setting INST_TOP above to a
32# path that includes an arbitrary version string.
33#
6a205a2b 34#INST_VER = \5.7.0
a9226780 35
36#
37# Comment this out if you DON'T want your perl installation to have
38# architecture specific components. This means that architecture-
39# specific files will be installed along with the architecture-neutral
40# files. Leaving it enabled is safer and more flexible, in case you
41# want to build multiple flavors of perl and install them together in
42# the same location. Commenting it out gives you a simpler
43# installation that is easier to understand for beginners.
44#
6a205a2b 45#INST_ARCH = \$(ARCHNAME)
a9226780 46
47#
48# uncomment to enable multiple interpreters. This is need for fork()
49# emulation.
50#
6a205a2b 51USE_MULTI = define
a9226780 52
53#
54# Beginnings of interpreter cloning/threads; still very incomplete.
55# This should be enabled to get the fork() emulation. This needs
56# USE_MULTI as well.
57#
6a205a2b 58USE_ITHREADS = define
a9226780 59
60#
61# uncomment to enable the implicit "host" layer for all system calls
62# made by perl. This needs USE_MULTI above. This is also needed to
63# get fork().
64#
6a205a2b 65USE_IMP_SYS = define
a9226780 66
67#
00b02797 68# uncomment to enable the experimental PerlIO I/O subsystem.
69# This is currently incompatible with USE_MULTI, USE_ITHREADS,
70# and USE_IMP_SYS
71#USE_PERLIO = define
72
73#
a9226780 74# WARNING! This option is deprecated and will eventually go away (enable
75# USE_ITHREADS instead).
76#
77# uncomment to enable threads-capabilities. This is incompatible with
78# USE_ITHREADS, and is only here for people who may have come to rely
79# on the experimental Thread support that was in 5.005.
80#
7a9b6398 81#USE_5005THREADS = define
a9226780 82
83#
84# WARNING! This option is deprecated and will eventually go away (enable
85# USE_MULTI instead).
86#
87# uncomment next line if you want to use the PERL_OBJECT build option.
88# DO NOT ENABLE unless you have legacy code that relies on the C++
89# CPerlObj class that was available in 5.005. This cannot be enabled
90# if you ask for USE_5005THREADS above.
91#
92#USE_OBJECT = define
93
94#
95# uncomment one of the following lines if you are using either
96# Visual C++ 2.x or Visual C++ 6.x (aka Visual Studio 98)
97#
98#CCTYPE = MSVC20
99#CCTYPE = MSVC60
100
101#
102# uncomment next line if you want debug version of perl (big,slow)
103#
104#CFG = Debug
105
106#
107# uncomment to enable use of PerlCRT.DLL when using the Visual C compiler.
108# It has patches that fix known bugs in older versions of MSVCRT.DLL.
109# This currently requires VC 5.0 with Service Pack 3 or later.
110# Get it from CPAN at http://www.perl.com/CPAN/authors/id/D/DO/DOUGL/
111# and follow the directions in the package to install.
112#
113# Not recommended if you have VC 6.x and you're not running Windows 9x.
114#
115#USE_PERLCRT = define
116
117#
118# uncomment to enable linking with setargv.obj under the Visual C
119# compiler. Setting this options enables perl to expand wildcards in
120# arguments, but it may be harder to use alternate methods like
121# File::DosGlob that are more powerful. This option is supported only with
122# Visual C.
123#
124#USE_SETARGV = define
125
126#
127# if you have the source for des_fcrypt(), uncomment this and make sure the
128# file exists (see README.win32). File should be located in the same
129# directory as this file.
130#
131#CRYPT_SRC = fcrypt.c
132
133#
134# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
135# library, uncomment this, and make sure the library exists (see README.win32)
136# Specify the full pathname of the library.
137#
138#CRYPT_LIB = fcrypt.lib
139
140#
141# set this if you wish to use perl's malloc
142# WARNING: Turning this on/off WILL break binary compatibility with extensions
143# you may have compiled with/without it. Be prepared to recompile all
144# extensions if you change the default. Currently, this cannot be enabled
145# if you ask for USE_IMP_SYS above.
146#
147#PERL_MALLOC = define
148
149#
150# set the install locations of the compiler include/libraries
151# Running VCVARS32.BAT is *required* when using Visual C.
152# Some versions of Visual C don't define MSVCDIR in the environment,
153# so you may have to set CCHOME explicitly (spaces in the path name should
154# not be quoted)
155#
156#CCHOME = f:\msvc20
157CCHOME = $(MSVCDIR)
158CCINCDIR = $(CCHOME)\include
159CCLIBDIR = $(CCHOME)\lib
160
161#
162# Additional compiler flags can be specified here.
163#
164
165#
166# This should normally be disabled. Adding -DPERL_POLLUTE enables support
167# for old symbols by default, at the expense of extreme pollution. You most
168# probably just want to build modules that won't compile with
169# perl Makefile.PL POLLUTE=1
170# instead of enabling this. Please report such modules to the respective
171# authors.
172#
173#BUILDOPT = $(BUILDOPT) -DPERL_POLLUTE
174
175#
176# This should normally be disabled. Enabling it will disable the File::Glob
177# implementation of CORE::glob.
178#
179#BUILDOPT = $(BUILDOPT) -DPERL_EXTERNAL_GLOB
180
181#
182# This should normally be disabled. Enabling it causes perl to read scripts
183# in text mode (which is the 5.005 behavior) and will break ByteLoader.
184#BUILDOPT = $(BUILDOPT) -DPERL_TEXTMODE_SCRIPTS
185
186#
187# specify semicolon-separated list of extra directories that modules will
188# look for libraries (spaces in path names need not be quoted)
189#
190EXTRALIBDIRS =
191
192#
193# set this to your email address (perl will guess a value from
194# from your loginname and your hostname, which may not be right)
195#
196#EMAIL =
197
198##
199## Build configuration ends.
200##
201
202##################### CHANGE THESE ONLY IF YOU MUST #####################
203
204!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
205D_CRYPT = undef
206!ELSE
207D_CRYPT = define
208CRYPT_FLAG = -DHAVE_DES_FCRYPT
209!ENDIF
210
211!IF "$(USE_OBJECT)" == "define"
212PERL_MALLOC = undef
213USE_5005THREADS = undef
214USE_MULTI = undef
215USE_IMP_SYS = define
216!ENDIF
217
218!IF "$(PERL_MALLOC)" == ""
219PERL_MALLOC = undef
220!ENDIF
221
222!IF "$(USE_5005THREADS)" == ""
223USE_5005THREADS = undef
224!ENDIF
225
226!IF "$(USE_5005THREADS)" == "define"
227USE_ITHREADS = undef
228!ENDIF
229
230!IF "$(USE_IMP_SYS)" == "define"
231PERL_MALLOC = undef
232!ENDIF
233
234!IF "$(USE_MULTI)" == ""
235USE_MULTI = undef
236!ENDIF
237
238!IF "$(USE_OBJECT)" == ""
239USE_OBJECT = undef
240!ENDIF
241
242!IF "$(USE_ITHREADS)" == ""
243USE_ITHREADS = undef
244!ENDIF
245
246!IF "$(USE_IMP_SYS)" == ""
247USE_IMP_SYS = undef
248!ENDIF
249
250!IF "$(USE_PERLCRT)" == ""
251USE_PERLCRT = undef
252!ENDIF
253
254!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" == "defineundefundefundef"
255USE_MULTI = define
256!ENDIF
257
258!IF "$(USE_ITHREADS)$(USE_MULTI)$(USE_OBJECT)" == "defineundefundef"
259USE_MULTI = define
260USE_5005THREADS = undef
261!ENDIF
262
263!IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
264BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
265!ENDIF
266
267!IF "$(USE_IMP_SYS)" != "undef"
268BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
269!ENDIF
270
271!IF "$(PROCESSOR_ARCHITECTURE)" == ""
272PROCESSOR_ARCHITECTURE = x86
273!ENDIF
274
275!IF "$(USE_OBJECT)" == "define"
276ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-object
277!ELSE
278!IF "$(USE_5005THREADS)" == "define"
279ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread
280!ELSE
281!IF "$(USE_MULTI)" == "define"
282ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-multi
283!ELSE
00b02797 284!IF "$(USE_PERLIO)" == "define"
285ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-perlio
286!ELSE
a9226780 287ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)
288!ENDIF
289!ENDIF
290!ENDIF
00b02797 291!ENDIF
292
293!IF "$(USE_PERLIO)" == "define"
294BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
295!ENDIF
a9226780 296
297!IF "$(USE_ITHREADS)" == "define"
298ARCHNAME = $(ARCHNAME)-thread
299!ENDIF
300
301# Visual Studio 98 specific
302!IF "$(CCTYPE)" == "MSVC60"
303
304# VC 6.0 can load the socket dll on demand. Makes the test suite
305# run in about 10% less time.
7a9b6398 306DELAYLOAD = -DELAYLOAD:wsock32.dll -DELAYLOAD:shell32.dll delayimp.lib
a9226780 307!ENDIF
308
309ARCHDIR = ..\lib\$(ARCHNAME)
310COREDIR = ..\lib\CORE
311AUTODIR = ..\lib\auto
312LIBDIR = ..\lib
313EXTDIR = ..\ext
314PODDIR = ..\pod
315EXTUTILSDIR = $(LIBDIR)\ExtUtils
316
317#
318INST_SCRIPT = $(INST_TOP)$(INST_VER)\bin
319INST_BIN = $(INST_SCRIPT)$(INST_ARCH)
320INST_LIB = $(INST_TOP)$(INST_VER)\lib
321INST_ARCHLIB = $(INST_LIB)$(INST_ARCH)
322INST_COREDIR = $(INST_ARCHLIB)\CORE
323INST_POD = $(INST_LIB)\pod
324INST_HTML = $(INST_POD)\html
325
326#
327# Programs to compile, build .lib files and link
328#
329
330CC = cl
331LINK32 = link
332LIB32 = $(LINK32) -lib
333RSC = rc
334
335#
336# Options
337#
338
339INCLUDES = -I$(COREDIR) -I.\include -I. -I..
7a9b6398 340#PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX
a9226780 341DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
342LOCDEFS = -DPERLDLL -DPERL_CORE
343SUBSYS = console
344CXX_FLAG = -TP -GX
345
346!IF "$(USE_PERLCRT)" != "define"
347LIBC = msvcrt.lib
348!ELSE
349LIBC = PerlCRT.lib
350!ENDIF
351
352PERLEXE_RES =
353PERLDLL_RES =
354
355!IF "$(CFG)" == "Debug"
356! IF "$(CCTYPE)" == "MSVC20"
357OPTIMIZE = -Od -MD -Z7 -DDEBUGGING
358! ELSE
359OPTIMIZE = -Od -MD -Zi -DDEBUGGING
360! ENDIF
361LINK_DBG = -debug -pdb:none
362!ELSE
a9226780 363# -O1 yields smaller code, which turns out to be faster than -O2
364#OPTIMIZE = -O2 -MD -DNDEBUG
365OPTIMIZE = -O1 -MD -DNDEBUG
a9226780 366LINK_DBG = -release
367!ENDIF
368
369!IF "$(USE_OBJECT)" == "define"
370OPTIMIZE = $(OPTIMIZE) $(CXX_FLAG)
371BUILDOPT = $(BUILDOPT) -DPERL_OBJECT
372!ENDIF
373
374!IF "$(USE_PERLCRT)" != "define"
375BUILDOPT = $(BUILDOPT) -DPERL_MSVCRT_READFIX
376!ENDIF
377
378LIBBASEFILES = $(CRYPT_LIB) \
379 oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
380 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
381 netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
382 version.lib odbc32.lib odbccp32.lib
383
384# we add LIBC here, since we may be using PerlCRT.dll
385LIBFILES = $(LIBBASEFILES) $(LIBC)
386
387CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
388 $(PCHFLAGS) $(OPTIMIZE)
389LINK_FLAGS = -nologo -nodefaultlib $(LINK_DBG) \
390 -libpath:"$(INST_COREDIR)" \
391 -machine:$(PROCESSOR_ARCHITECTURE)
392OBJOUT_FLAG = -Fo
393EXEOUT_FLAG = -Fe
394
395CFLAGS_O = $(CFLAGS) $(BUILDOPT)
396
397#################### do not edit below this line #######################
398############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
399
400o = .obj
401
402#
403# Rules
7a9b6398 404#
a9226780 405
406.SUFFIXES : .c $(o) .dll .lib .exe .rc .res
407
408.c$(o):
409 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
410
411.y.c:
412 $(NOOP)
413
414$(o).dll:
415 $(LINK32) -dll -subsystem:windows -implib:$(*B).lib -def:$(*B).def \
7a9b6398 416 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
a9226780 417
418.rc.res:
419 $(RSC) -i.. $<
420
421#
422# various targets
7d4dff66 423
424# makedef.pl must be updated if this changes, and this should normally
425# only change when there is an incompatible revision of the public API.
426# XXX so why did we change it from perl56 to perl57?
427PERLIMPLIB = ..\perl57.lib
428PERLDLL = ..\perl57.dll
a9226780 429
430MINIPERL = ..\miniperl.exe
431MINIDIR = .\mini
432PERLEXE = ..\perl.exe
433WPERLEXE = ..\wperl.exe
434GLOBEXE = ..\perlglob.exe
435CONFIGPM = ..\lib\Config.pm
436MINIMOD = ..\lib\ExtUtils\Miniperl.pm
437X2P = ..\x2p\a2p.exe
438
439PL2BAT = bin\pl2bat.pl
440GLOBBAT = bin\perlglob.bat
441
442UTILS = \
443 ..\utils\h2ph \
444 ..\utils\splain \
445 ..\utils\dprofpp \
446 ..\utils\perlbug \
447 ..\utils\pl2pm \
448 ..\utils\c2ph \
449 ..\utils\h2xs \
450 ..\utils\perldoc \
451 ..\utils\perlcc \
452 ..\pod\checkpods \
453 ..\pod\pod2html \
454 ..\pod\pod2latex \
455 ..\pod\pod2man \
456 ..\pod\pod2text \
457 ..\pod\pod2usage \
458 ..\pod\podchecker \
459 ..\pod\podselect \
460 ..\x2p\find2perl \
461 ..\x2p\s2p \
462 bin\exetype.pl \
463 bin\runperl.pl \
464 bin\pl2bat.pl \
465 bin\perlglob.pl \
466 bin\search.pl
467
468MAKE = nmake -nologo
469
470CFGSH_TMPL = config.vc
471CFGH_TMPL = config_H.vc
472
473XCOPY = xcopy /f /r /i /d
474RCOPY = xcopy /f /r /i /e /d
475NOOP = @echo
476NULL =
477
00b02797 478DEL = bin\mdelete.bat
479
a9226780 480#
481# filenames given to xsubpp must have forward slashes (since it puts
482# full pathnames in #line strings)
483XSUBPP = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
484 -C++ -prototypes
485
486MICROCORE_SRC = \
487 ..\av.c \
488 ..\deb.c \
489 ..\doio.c \
490 ..\doop.c \
491 ..\dump.c \
492 ..\globals.c \
493 ..\gv.c \
494 ..\hv.c \
495 ..\mg.c \
496 ..\op.c \
497 ..\perl.c \
498 ..\perlapi.c \
499 ..\perly.c \
500 ..\pp.c \
501 ..\pp_ctl.c \
502 ..\pp_hot.c \
503 ..\pp_sys.c \
504 ..\regcomp.c \
505 ..\regexec.c \
506 ..\run.c \
507 ..\scope.c \
508 ..\sv.c \
509 ..\taint.c \
510 ..\toke.c \
511 ..\universal.c \
512 ..\utf8.c \
513 ..\util.c \
514 ..\xsutils.c
515
516EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
517
518!IF "$(PERL_MALLOC)" == "define"
519EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
520!ENDIF
521
522!IF "$(USE_OBJECT)" != "define"
523EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
524!ENDIF
525
526WIN32_SRC = \
527 .\win32.c \
528 .\win32sck.c \
7a9b6398 529 .\win32thread.c
a9226780 530
531!IF "$(CRYPT_SRC)" != ""
532WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
533!ENDIF
534
535DLL_SRC = $(DYNALOADER).c
536
537X2P_SRC = \
538 ..\x2p\a2p.c \
539 ..\x2p\hash.c \
540 ..\x2p\str.c \
541 ..\x2p\util.c \
542 ..\x2p\walk.c
543
544CORE_NOCFG_H = \
545 ..\av.h \
546 ..\cop.h \
547 ..\cv.h \
548 ..\dosish.h \
549 ..\embed.h \
550 ..\form.h \
551 ..\gv.h \
552 ..\handy.h \
553 ..\hv.h \
554 ..\iperlsys.h \
555 ..\mg.h \
556 ..\nostdio.h \
557 ..\op.h \
558 ..\opcode.h \
559 ..\perl.h \
560 ..\perlapi.h \
561 ..\perlsdio.h \
562 ..\perlsfio.h \
563 ..\perly.h \
564 ..\pp.h \
565 ..\proto.h \
566 ..\regexp.h \
567 ..\scope.h \
568 ..\sv.h \
569 ..\thread.h \
570 ..\unixish.h \
571 ..\utf8.h \
572 ..\util.h \
573 ..\warnings.h \
574 ..\XSUB.h \
575 ..\EXTERN.h \
576 ..\perlvars.h \
577 ..\intrpvar.h \
578 ..\thrdvar.h \
579 .\include\dirent.h \
580 .\include\netdb.h \
581 .\include\sys\socket.h \
582 .\win32.h
583
584CORE_H = $(CORE_NOCFG_H) .\config.h
585
586MICROCORE_OBJ = $(MICROCORE_SRC:.c=.obj)
587CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=.obj)
588WIN32_OBJ = $(WIN32_SRC:.c=.obj)
589MINICORE_OBJ = $(MICROCORE_OBJ:..\=.\mini\) \
590 $(MINIDIR)\miniperlmain$(o) \
591 $(MINIDIR)\perlio$(o)
592MINIWIN32_OBJ = $(WIN32_OBJ:.\=.\mini\)
593MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
594DLL_OBJ = $(DLL_SRC:.c=.obj)
595X2P_OBJ = $(X2P_SRC:.c=.obj)
596
597PERLDLL_OBJ = $(CORE_OBJ)
598PERLEXE_OBJ = perlmain$(o)
599
600PERLDLL_OBJ = $(PERLDLL_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
601#PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
602
603!IF "$(USE_SETARGV)" != ""
604SETARGV_OBJ = setargv$(o)
605!ENDIF
606
607DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
608 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
24c3c6f8 609 Sys/Hostname Storable Filter/Util/Call Encode
a9226780 610STATIC_EXT = DynaLoader
611NONXS_EXT = Errno
612
613DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
614SOCKET = $(EXTDIR)\Socket\Socket
615FCNTL = $(EXTDIR)\Fcntl\Fcntl
616OPCODE = $(EXTDIR)\Opcode\Opcode
617SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
618IO = $(EXTDIR)\IO\IO
619POSIX = $(EXTDIR)\POSIX\POSIX
620ATTRS = $(EXTDIR)\attrs\attrs
621THREAD = $(EXTDIR)\Thread\Thread
622B = $(EXTDIR)\B\B
623RE = $(EXTDIR)\re\re
624DUMPER = $(EXTDIR)\Data\Dumper\Dumper
625ERRNO = $(EXTDIR)\Errno\Errno
626PEEK = $(EXTDIR)\Devel\Peek\Peek
627BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader
628DPROF = $(EXTDIR)\Devel\DProf\DProf
629GLOB = $(EXTDIR)\File\Glob\Glob
630HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname
631STORABLE = $(EXTDIR)\Storable\Storable
5e506771 632FILTER = $(EXTDIR)\Filter\Util\Call\Call
24c3c6f8 633ENCODE = $(EXTDIR)\Encode\Encode
a9226780 634
635SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
636FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
637OPCODE_DLL = $(AUTODIR)\Opcode\Opcode.dll
638SDBM_FILE_DLL = $(AUTODIR)\SDBM_File\SDBM_File.dll
639IO_DLL = $(AUTODIR)\IO\IO.dll
640POSIX_DLL = $(AUTODIR)\POSIX\POSIX.dll
641ATTRS_DLL = $(AUTODIR)\attrs\attrs.dll
642THREAD_DLL = $(AUTODIR)\Thread\Thread.dll
643B_DLL = $(AUTODIR)\B\B.dll
644DUMPER_DLL = $(AUTODIR)\Data\Dumper\Dumper.dll
645PEEK_DLL = $(AUTODIR)\Devel\Peek\Peek.dll
646RE_DLL = $(AUTODIR)\re\re.dll
647BYTELOADER_DLL = $(AUTODIR)\ByteLoader\ByteLoader.dll
648DPROF_DLL = $(AUTODIR)\Devel\DProf\DProf.dll
649GLOB_DLL = $(AUTODIR)\File\Glob\Glob.dll
650HOSTNAME_DLL = $(AUTODIR)\Sys\Hostname\Hostname.dll
651STORABLE_DLL = $(AUTODIR)\Storable\Storable.dll
24c3c6f8 652FILTER_DLL = $(AUTODIR)\Filter\Util\Call\Call.dll
653ENCODE_DLL = $(AUTODIR)\Encode\Encode.dll
a9226780 654
655ERRNO_PM = $(LIBDIR)\Errno.pm
656
657EXTENSION_C = \
658 $(SOCKET).c \
659 $(FCNTL).c \
660 $(OPCODE).c \
661 $(SDBM_FILE).c \
662 $(IO).c \
663 $(POSIX).c \
664 $(ATTRS).c \
665 $(THREAD).c \
666 $(RE).c \
667 $(DUMPER).c \
668 $(PEEK).c \
669 $(B).c \
670 $(BYTELOADER).c \
671 $(DPROF).c \
672 $(GLOB).c \
673 $(HOSTNAME).c \
a3ee43e0 674 $(STORABLE).c \
24c3c6f8 675 $(FILTER).c \
676 $(ENCODE).c
a9226780 677
678EXTENSION_DLL = \
679 $(SOCKET_DLL) \
680 $(FCNTL_DLL) \
681 $(OPCODE_DLL) \
682 $(SDBM_FILE_DLL)\
683 $(IO_DLL) \
684 $(POSIX_DLL) \
685 $(ATTRS_DLL) \
686 $(DUMPER_DLL) \
687 $(PEEK_DLL) \
688 $(B_DLL) \
689 $(RE_DLL) \
690 $(THREAD_DLL) \
691 $(BYTELOADER_DLL) \
692 $(DPROF_DLL) \
693 $(GLOB_DLL) \
694 $(HOSTNAME_DLL) \
a3ee43e0 695 $(STORABLE_DLL) \
24c3c6f8 696 $(FILTER_DLL) \
697 $(ENCODE_DLL)
a9226780 698
699EXTENSION_PM = \
700 $(ERRNO_PM)
701
702POD2HTML = $(PODDIR)\pod2html
703POD2MAN = $(PODDIR)\pod2man
704POD2LATEX = $(PODDIR)\pod2latex
705POD2TEXT = $(PODDIR)\pod2text
706
707CFG_VARS = \
708 "INST_DRV=$(INST_DRV)" \
709 "INST_TOP=$(INST_TOP)" \
710 "INST_VER=$(INST_VER)" \
711 "INST_ARCH=$(INST_ARCH)" \
712 "archname=$(ARCHNAME)" \
713 "cc=$(CC)" \
fd826df2 714 "ld=$(LINK32)" \
00b02797 715 "ccflags=-nologo -Gf -W3 $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
716 "cf_email=$(EMAIL)" \
a9226780 717 "d_crypt=$(D_CRYPT)" \
718 "d_mymalloc=$(PERL_MALLOC)" \
719 "libs=$(LIBFILES)" \
720 "incpath=$(CCINCDIR:"=\")" \
721 "libperl=$(PERLIMPLIB:..\=)" \
722 "libpth=$(CCLIBDIR:"=\");$(EXTRALIBDIRS:"=\")" \
723 "libc=$(LIBC)" \
724 "make=nmake" \
725 "static_ext=$(STATIC_EXT)" \
726 "dynamic_ext=$(DYNAMIC_EXT)" \
727 "nonxs_ext=$(NONXS_EXT)" \
728 "use5005threads=$(USE_5005THREADS)" \
729 "useithreads=$(USE_ITHREADS)" \
730 "usethreads=$(USE_5005THREADS)" \
731 "usemultiplicity=$(USE_MULTI)" \
732 "LINK_FLAGS=$(LINK_FLAGS:"=\")" \
733 "optimize=$(OPTIMIZE:"=\")"
734
735#
736# Top targets
737#
738
739all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
740 $(X2P) $(EXTENSION_DLL) $(EXTENSION_PM)
741
742$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
743
744#------------------------------------------------------------
745
746$(GLOBEXE) : perlglob$(o)
747 $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \
7a9b6398 748 perlglob$(o) setargv$(o)
a9226780 749
750perlglob$(o) : perlglob.c
751
752config.w32 : $(CFGSH_TMPL)
753 copy $(CFGSH_TMPL) config.w32
754
755.\config.h : $(CFGH_TMPL)
756 -del /f config.h
757 copy $(CFGH_TMPL) config.h
758
759..\config.sh : config.w32 $(MINIPERL) config_sh.PL
760 $(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) config.w32 > ..\config.sh
761
762# this target is for when changes to the main config.sh happen
763# edit config.{b,v,g}c and make this target once for each supported
7a9b6398 764# compiler (e.g. `nmake CCTYPE=BORLAND regen_config_h`)
a9226780 765regen_config_h:
766 perl config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh
767 cd ..
768 -del /f perl.exe
769 perl configpm
770 cd win32
771 -del /f $(CFGH_TMPL)
772 -mkdir $(COREDIR)
773 -perl -I..\lib config_h.PL "INST_VER=$(INST_VER)"
774 rename config.h $(CFGH_TMPL)
775
776$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
7a9b6398 777 cd ..
00b02797 778 miniperl configpm
779 cd win32
a9226780 780 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
781 $(XCOPY) ..\*.h $(COREDIR)\*.*
782 $(XCOPY) *.h $(COREDIR)\*.*
783 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
784 $(RCOPY) include $(COREDIR)\*.*
00b02797 785 -$(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)"
786 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
a9226780 787
788$(MINIPERL) : $(MINIDIR) $(MINI_OBJ)
789 $(LINK32) -subsystem:console -out:$@ @<<
790 $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ)
791<<
792
793$(MINIDIR) :
794 if not exist "$(MINIDIR)" mkdir "$(MINIDIR)"
795
796$(MINICORE_OBJ) : $(CORE_NOCFG_H)
797 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB $(OBJOUT_FLAG)$@ ..\$(*F).c
798
799$(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
800 $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $(*F).c
801
802# -DPERL_IMPLICIT_SYS needs C++ for perllib.c
803# This is the only file that depends on perlhost.h, vmem.h, and vdir.h
804!IF "$(USE_IMP_SYS)$(USE_OBJECT)" == "defineundef"
805perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
806 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
807!ENDIF
808
809# 1. we don't want to rebuild miniperl.exe when config.h changes
810# 2. we don't want to rebuild miniperl.exe with non-default config.h
811$(MINI_OBJ) : $(CORE_NOCFG_H)
812
813$(WIN32_OBJ) : $(CORE_H)
814$(CORE_OBJ) : $(CORE_H)
815$(DLL_OBJ) : $(CORE_H)
816$(X2P_OBJ) : $(CORE_H)
817
818perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
819 $(MINIPERL) -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
820 CCTYPE=$(CCTYPE) > perldll.def
821
822$(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
823 $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ @<<
824 $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) $(PERLDLL_RES)
825<<
826 $(XCOPY) $(PERLIMPLIB) $(COREDIR)
827
828$(MINIMOD) : $(MINIPERL) ..\minimod.pl
7a9b6398 829 cd ..
00b02797 830 miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
831 cd win32
a9226780 832
833..\x2p\a2p$(o) : ..\x2p\a2p.c
834 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
835
836..\x2p\hash$(o) : ..\x2p\hash.c
837 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
838
839..\x2p\str$(o) : ..\x2p\str.c
840 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
841
842..\x2p\util$(o) : ..\x2p\util.c
843 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
844
845..\x2p\walk$(o) : ..\x2p\walk.c
846 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
847
848$(X2P) : $(MINIPERL) $(X2P_OBJ)
849 $(MINIPERL) ..\x2p\find2perl.PL
850 $(MINIPERL) ..\x2p\s2p.PL
851 $(LINK32) -subsystem:console -out:$@ @<<
852 $(LINK_FLAGS) $(LIBFILES) $(X2P_OBJ)
853<<
854
7a9b6398 855perlmain.c : runperl.c
a9226780 856 copy runperl.c perlmain.c
857
858perlmain$(o) : perlmain.c
859 $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c
860
861$(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
862 $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \
863 $(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
864 copy $(PERLEXE) $(WPERLEXE)
865 $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
7a9b6398 866 copy splittree.pl ..
a9226780 867 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
868
869$(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
870 if not exist $(AUTODIR) mkdir $(AUTODIR)
871 cd $(EXTDIR)\$(*B)
872 ..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
873 ..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
874 cd ..\..\win32
875 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
876 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
877 cd $(EXTDIR)\$(*B)
878 $(XSUBPP) dl_win32.xs > $(*B).c
879 cd ..\..\win32
880
881$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
882 copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
883
884$(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs
885 cd $(EXTDIR)\Data\$(*B)
886 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
887 $(MAKE)
888 cd ..\..\..\win32
889
890$(DPROF_DLL): $(PERLEXE) $(DPROF).xs
891 cd $(EXTDIR)\Devel\$(*B)
892 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
893 $(MAKE)
894 cd ..\..\..\win32
895
896$(GLOB_DLL): $(PERLEXE) $(GLOB).xs
897 cd $(EXTDIR)\File\$(*B)
898 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
899 $(MAKE)
900 cd ..\..\..\win32
901
902$(PEEK_DLL): $(PERLEXE) $(PEEK).xs
903 cd $(EXTDIR)\Devel\$(*B)
904 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
905 $(MAKE)
906 cd ..\..\..\win32
907
908$(RE_DLL): $(PERLEXE) $(RE).xs
909 cd $(EXTDIR)\$(*B)
910 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
911 $(MAKE)
912 cd ..\..\win32
913
914$(B_DLL): $(PERLEXE) $(B).xs
915 cd $(EXTDIR)\$(*B)
916 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
917 $(MAKE)
918 cd ..\..\win32
919
920$(THREAD_DLL): $(PERLEXE) $(THREAD).xs
921 cd $(EXTDIR)\$(*B)
922 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
923 $(MAKE)
924 cd ..\..\win32
925
926$(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs
927 cd $(EXTDIR)\$(*B)
928 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
929 $(MAKE)
930 cd ..\..\win32
931
932$(POSIX_DLL): $(PERLEXE) $(POSIX).xs
933 cd $(EXTDIR)\$(*B)
934 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
935 $(MAKE)
936 cd ..\..\win32
937
938$(IO_DLL): $(PERLEXE) $(IO).xs
939 cd $(EXTDIR)\$(*B)
940 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
941 $(MAKE)
942 cd ..\..\win32
943
944$(SDBM_FILE_DLL) : $(PERLEXE) $(SDBM_FILE).xs
945 cd $(EXTDIR)\$(*B)
946 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
947 $(MAKE)
948 cd ..\..\win32
949
950$(FCNTL_DLL): $(PERLEXE) $(FCNTL).xs
951 cd $(EXTDIR)\$(*B)
952 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
953 $(MAKE)
954 cd ..\..\win32
955
956$(OPCODE_DLL): $(PERLEXE) $(OPCODE).xs
957 cd $(EXTDIR)\$(*B)
958 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
959 $(MAKE)
960 cd ..\..\win32
961
962$(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
963 cd $(EXTDIR)\$(*B)
964 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
965 $(MAKE)
966 cd ..\..\win32
967
968$(HOSTNAME_DLL): $(PERLEXE) $(HOSTNAME).xs
969 cd $(EXTDIR)\Sys\$(*B)
970 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
971 $(MAKE)
972 cd ..\..\..\win32
973
974$(BYTELOADER_DLL): $(PERLEXE) $(BYTELOADER).xs
975 cd $(EXTDIR)\$(*B)
976 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
977 $(MAKE)
978 cd ..\..\win32
979
7a9b6398 980$(ENCODE_DLL): $(PERLEXE) $(ENCODE).xs
981 cd $(EXTDIR)\$(*B)
982 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
983 $(MAKE)
984 cd ..\..\win32
985
a9226780 986$(STORABLE_DLL): $(PERLEXE) $(STORABLE).xs
987 cd $(EXTDIR)\$(*B)
988 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
989 $(MAKE)
990 cd ..\..\win32
991
a3ee43e0 992$(FILTER_DLL): $(PERLEXE) $(FILTER).xs
5e506771 993 cd $(EXTDIR)\Filter\Util\Call
89060ce2 994 ..\..\..\..\miniperl -I..\..\..\..\lib Makefile.PL INSTALLDIRS=perl
a3ee43e0 995 $(MAKE)
89060ce2 996 cd ..\..\..\..\win32
a3ee43e0 997
24c3c6f8 998$(ENCODE_DLL): $(PERLEXE) $(ENCODE).xs
999 cd $(EXTDIR)\$(*B)
1000 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
1001 $(MAKE)
1002 cd ..\..\win32
1003
a9226780 1004$(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL
1005 cd $(EXTDIR)\$(*B)
1006 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
1007 $(MAKE)
1008 cd ..\..\win32
1009
1010doc: $(PERLEXE)
1011 $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
1012 --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \
1013 --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
1014
1015utils: $(PERLEXE) $(X2P)
1016 cd ..\utils
1017 $(MAKE) PERL=$(MINIPERL)
1018 cd ..\pod
b5ec9dce 1019 copy ..\README.aix .\perlaix.pod
a9226780 1020 copy ..\README.amiga .\perlamiga.pod
1021 copy ..\README.cygwin .\perlcygwin.pod
1022 copy ..\README.dos .\perldos.pod
b5ec9dce 1023 copy ..\README.epoc .\perlepoc.pod
a9226780 1024 copy ..\README.hpux .\perlhpux.pod
1025 copy ..\README.machten .\perlmachten.pod
1026 copy ..\README.os2 .\perlos2.pod
b5ec9dce 1027 copy ..\README.os390 .\perlos390.pod
1028 copy ..\README.posix .\perlposix.pod
1029 copy ..\README.solaris .\perlsolaris.pod
a9226780 1030 copy ..\vms\perlvms.pod .\perlvms.pod
b5ec9dce 1031 copy ..\README.vos .\perlvos.pod
a9226780 1032 copy ..\README.win32 .\perlwin32.pod
1033 $(MAKE) -f ..\win32\pod.mak converters
1034 cd ..\lib
1035 $(PERLEXE) lib_pm.PL
1036 cd ..\win32
1037 $(PERLEXE) $(PL2BAT) $(UTILS)
1038
1039distclean: clean
1040 -del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
1041 $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1042 -del /f *.def *.map
1043 -del /f $(EXTENSION_DLL) $(EXTENSION_PM)
1044 -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
1045 -del /f $(EXTDIR)\DynaLoader\dl_win32.xs
1046 -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
1047 -del /f $(LIBDIR)\XSLoader.pm
1048 -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
1049 -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm
1050 -del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
1051 -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
1052 -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
1053 -del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
1054 -del /f $(LIBDIR)\File\Glob.pm
1055 -del /f $(LIBDIR)\Storable.pm
5e506771 1056 -del /f $(LIBDIR)\Filter\Util\Call\Call.pm
7a9b6398 1057 -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
00b02797 1058 -rmdir /s $(LIBDIR)\IO
7a9b6398 1059 -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread
00b02797 1060 -rmdir /s $(LIBDIR)\Thread
1061 -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
1062 -rmdir /s $(LIBDIR)\B
7a9b6398 1063 -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
00b02797 1064 -rmdir /s $(LIBDIR)\Data
5e506771 1065 -if exist $(LIBDIR)\Filter\Util\Call rmdir /s /q $(LIBDIR)\Filter\Util\Call
1066 -if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
a9226780 1067 -del /f $(PODDIR)\*.html
1068 -del /f $(PODDIR)\*.bat
1069 cd ..\utils
1070 -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp
1071 -del /f *.bat
1072 cd ..\win32
1073 cd ..\x2p
1074 -del /f find2perl s2p
1075 -del /f *.bat
1076 cd ..\win32
1077 -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
1078 -del /f $(CONFIGPM)
1079 -del /f bin\*.bat
1080 cd $(EXTDIR)
1081 -del /s *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib
1082 cd ..\win32
7a9b6398 1083 -if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
00b02797 1084 -rmdir /s $(AUTODIR)
7a9b6398 1085 -if exist $(COREDIR) rmdir /s /q $(COREDIR)
00b02797 1086 -rmdir /s $(COREDIR)
a9226780 1087
1088install : all installbare installhtml
1089
1090installbare : utils
1091 $(PERLEXE) ..\installperl
1092 if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
1093 $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
1094 $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
1095
1096installhtml : doc
1097 $(RCOPY) html\*.* $(INST_HTML)\*.*
1098
1099inst_lib : $(CONFIGPM)
7a9b6398 1100 copy splittree.pl ..
a9226780 1101 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1102 $(RCOPY) ..\lib $(INST_LIB)\*.*
1103
1104minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
1105 $(XCOPY) $(MINIPERL) ..\t\perl.exe
1106 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1107 attrib -r ..\t\*.*
1108 copy test ..\t
1109 cd ..\t
1110 $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
1111 cd ..\win32
1112
1113test-prep : all utils
1114 $(XCOPY) $(PERLEXE) ..\t\$(NULL)
1115 $(XCOPY) $(PERLDLL) ..\t\$(NULL)
1116 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1117
1118test : test-prep
1119 cd ..\t
1120 $(PERLEXE) -I..\lib harness
1121 cd ..\win32
1122
1123test-notty : test-prep
1124 set PERL_SKIP_TTY_TEST=1
1125 cd ..\t
1126 $(PERLEXE) -I..\lib harness
1127 cd ..\win32
1128
1129test-wide : test-prep
1130 set HARNESS_PERL_SWITCHES=-C
1131 cd ..\t
1132 $(PERLEXE) -I..\lib harness
1133 cd ..\win32
1134
1135test-wide-notty : test-prep
1136 set PERL_SKIP_TTY_TEST=1
1137 set HARNESS_PERL_SWITCHES=-C
1138 cd ..\t
1139 $(PERLEXE) -I..\lib harness
1140 cd ..\win32
1141
7a9b6398 1142clean :
00b02797 1143 -@$(DEL) miniperlmain$(o)
1144 -@$(DEL) $(MINIPERL)
1145 -@$(DEL) perlglob$(o)
1146 -@$(DEL) perlmain$(o)
1147 -@$(DEL) config.w32
1148 -@$(DEL) /f config.h
1149 -@$(DEL) $(GLOBEXE)
1150 -@$(DEL) $(PERLEXE)
1151 -@$(DEL) $(WPERLEXE)
1152 -@$(DEL) $(PERLDLL)
1153 -@$(DEL) $(CORE_OBJ)
7a9b6398 1154 -if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
1155 -rmdir /s $(MINIDIR)
00b02797 1156 -@$(DEL) $(WIN32_OBJ)
1157 -@$(DEL) $(DLL_OBJ)
1158 -@$(DEL) $(X2P_OBJ)
1159 -@$(DEL) ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1160 -@$(DEL) ..\t\*.exe ..\t\*.dll ..\t\*.bat
1161 -@$(DEL) ..\x2p\*.exe ..\x2p\*.bat
1162 -@$(DEL) *.ilk
1163 -@$(DEL) *.pdb
7a9b6398 1164
a9226780 1165# Handy way to run perlbug -ok without having to install and run the
1166# installed perlbug. We don't re-run the tests here - we trust the user.
1167# Please *don't* use this unless all tests pass.
1168# If you want to report test failures, use "nmake nok" instead.
1169ok: utils
1170 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)"
1171
1172okfile: utils
1173 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok
7a9b6398 1174
a9226780 1175nok: utils
1176 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)"
7a9b6398 1177
a9226780 1178nokfile: utils
1179 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok