Few more IDE/editor nits from p5p.
[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#
7d4dff66 34INST_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#
45INST_ARCH = \$(ARCHNAME)
46
47#
48# uncomment to enable multiple interpreters. This is need for fork()
49# emulation.
50#
51#USE_MULTI = define
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#
58#USE_ITHREADS = define
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#
65#USE_IMP_SYS = define
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
308# VC 6.0 seems capable of compiling perl correctly with optimizations
309# enabled. Anything earlier fails tests.
310!IF "$(CFG)" == ""
311CFG = Optimize
312!ENDIF
313!ENDIF
314
315ARCHDIR = ..\lib\$(ARCHNAME)
316COREDIR = ..\lib\CORE
317AUTODIR = ..\lib\auto
318LIBDIR = ..\lib
319EXTDIR = ..\ext
320PODDIR = ..\pod
321EXTUTILSDIR = $(LIBDIR)\ExtUtils
322
323#
324INST_SCRIPT = $(INST_TOP)$(INST_VER)\bin
325INST_BIN = $(INST_SCRIPT)$(INST_ARCH)
326INST_LIB = $(INST_TOP)$(INST_VER)\lib
327INST_ARCHLIB = $(INST_LIB)$(INST_ARCH)
328INST_COREDIR = $(INST_ARCHLIB)\CORE
329INST_POD = $(INST_LIB)\pod
330INST_HTML = $(INST_POD)\html
331
332#
333# Programs to compile, build .lib files and link
334#
335
336CC = cl
337LINK32 = link
338LIB32 = $(LINK32) -lib
339RSC = rc
340
341#
342# Options
343#
344
345INCLUDES = -I$(COREDIR) -I.\include -I. -I..
7a9b6398 346#PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX
a9226780 347DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
348LOCDEFS = -DPERLDLL -DPERL_CORE
349SUBSYS = console
350CXX_FLAG = -TP -GX
351
352!IF "$(USE_PERLCRT)" != "define"
353LIBC = msvcrt.lib
354!ELSE
355LIBC = PerlCRT.lib
356!ENDIF
357
358PERLEXE_RES =
359PERLDLL_RES =
360
361!IF "$(CFG)" == "Debug"
362! IF "$(CCTYPE)" == "MSVC20"
363OPTIMIZE = -Od -MD -Z7 -DDEBUGGING
364! ELSE
365OPTIMIZE = -Od -MD -Zi -DDEBUGGING
366! ENDIF
367LINK_DBG = -debug -pdb:none
368!ELSE
369! IF "$(CFG)" == "Optimize"
370# -O1 yields smaller code, which turns out to be faster than -O2
371#OPTIMIZE = -O2 -MD -DNDEBUG
372OPTIMIZE = -O1 -MD -DNDEBUG
373! ELSE
374OPTIMIZE = -Od -MD -DNDEBUG
375! ENDIF
376LINK_DBG = -release
377!ENDIF
378
379!IF "$(USE_OBJECT)" == "define"
380OPTIMIZE = $(OPTIMIZE) $(CXX_FLAG)
381BUILDOPT = $(BUILDOPT) -DPERL_OBJECT
382!ENDIF
383
384!IF "$(USE_PERLCRT)" != "define"
385BUILDOPT = $(BUILDOPT) -DPERL_MSVCRT_READFIX
386!ENDIF
387
388LIBBASEFILES = $(CRYPT_LIB) \
389 oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
390 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
391 netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
392 version.lib odbc32.lib odbccp32.lib
393
394# we add LIBC here, since we may be using PerlCRT.dll
395LIBFILES = $(LIBBASEFILES) $(LIBC)
396
397CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
398 $(PCHFLAGS) $(OPTIMIZE)
399LINK_FLAGS = -nologo -nodefaultlib $(LINK_DBG) \
400 -libpath:"$(INST_COREDIR)" \
401 -machine:$(PROCESSOR_ARCHITECTURE)
402OBJOUT_FLAG = -Fo
403EXEOUT_FLAG = -Fe
404
405CFLAGS_O = $(CFLAGS) $(BUILDOPT)
406
407#################### do not edit below this line #######################
408############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
409
410o = .obj
411
412#
413# Rules
7a9b6398 414#
a9226780 415
416.SUFFIXES : .c $(o) .dll .lib .exe .rc .res
417
418.c$(o):
419 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
420
421.y.c:
422 $(NOOP)
423
424$(o).dll:
425 $(LINK32) -dll -subsystem:windows -implib:$(*B).lib -def:$(*B).def \
7a9b6398 426 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
a9226780 427
428.rc.res:
429 $(RSC) -i.. $<
430
431#
432# various targets
7d4dff66 433
434# makedef.pl must be updated if this changes, and this should normally
435# only change when there is an incompatible revision of the public API.
436# XXX so why did we change it from perl56 to perl57?
437PERLIMPLIB = ..\perl57.lib
438PERLDLL = ..\perl57.dll
a9226780 439
440MINIPERL = ..\miniperl.exe
441MINIDIR = .\mini
442PERLEXE = ..\perl.exe
443WPERLEXE = ..\wperl.exe
444GLOBEXE = ..\perlglob.exe
445CONFIGPM = ..\lib\Config.pm
446MINIMOD = ..\lib\ExtUtils\Miniperl.pm
447X2P = ..\x2p\a2p.exe
448
449PL2BAT = bin\pl2bat.pl
450GLOBBAT = bin\perlglob.bat
451
452UTILS = \
453 ..\utils\h2ph \
454 ..\utils\splain \
455 ..\utils\dprofpp \
456 ..\utils\perlbug \
457 ..\utils\pl2pm \
458 ..\utils\c2ph \
459 ..\utils\h2xs \
460 ..\utils\perldoc \
461 ..\utils\perlcc \
462 ..\pod\checkpods \
463 ..\pod\pod2html \
464 ..\pod\pod2latex \
465 ..\pod\pod2man \
466 ..\pod\pod2text \
467 ..\pod\pod2usage \
468 ..\pod\podchecker \
469 ..\pod\podselect \
470 ..\x2p\find2perl \
471 ..\x2p\s2p \
472 bin\exetype.pl \
473 bin\runperl.pl \
474 bin\pl2bat.pl \
475 bin\perlglob.pl \
476 bin\search.pl
477
478MAKE = nmake -nologo
479
480CFGSH_TMPL = config.vc
481CFGH_TMPL = config_H.vc
482
483XCOPY = xcopy /f /r /i /d
484RCOPY = xcopy /f /r /i /e /d
485NOOP = @echo
486NULL =
487
00b02797 488DEL = bin\mdelete.bat
489
a9226780 490#
491# filenames given to xsubpp must have forward slashes (since it puts
492# full pathnames in #line strings)
493XSUBPP = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
494 -C++ -prototypes
495
496MICROCORE_SRC = \
497 ..\av.c \
498 ..\deb.c \
499 ..\doio.c \
500 ..\doop.c \
501 ..\dump.c \
502 ..\globals.c \
503 ..\gv.c \
504 ..\hv.c \
505 ..\mg.c \
506 ..\op.c \
507 ..\perl.c \
508 ..\perlapi.c \
509 ..\perly.c \
510 ..\pp.c \
511 ..\pp_ctl.c \
512 ..\pp_hot.c \
513 ..\pp_sys.c \
514 ..\regcomp.c \
515 ..\regexec.c \
516 ..\run.c \
517 ..\scope.c \
518 ..\sv.c \
519 ..\taint.c \
520 ..\toke.c \
521 ..\universal.c \
522 ..\utf8.c \
523 ..\util.c \
524 ..\xsutils.c
525
526EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
527
528!IF "$(PERL_MALLOC)" == "define"
529EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
530!ENDIF
531
532!IF "$(USE_OBJECT)" != "define"
533EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
534!ENDIF
535
536WIN32_SRC = \
537 .\win32.c \
538 .\win32sck.c \
7a9b6398 539 .\win32thread.c
a9226780 540
541!IF "$(CRYPT_SRC)" != ""
542WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
543!ENDIF
544
545DLL_SRC = $(DYNALOADER).c
546
547X2P_SRC = \
548 ..\x2p\a2p.c \
549 ..\x2p\hash.c \
550 ..\x2p\str.c \
551 ..\x2p\util.c \
552 ..\x2p\walk.c
553
554CORE_NOCFG_H = \
555 ..\av.h \
556 ..\cop.h \
557 ..\cv.h \
558 ..\dosish.h \
559 ..\embed.h \
560 ..\form.h \
561 ..\gv.h \
562 ..\handy.h \
563 ..\hv.h \
564 ..\iperlsys.h \
565 ..\mg.h \
566 ..\nostdio.h \
567 ..\op.h \
568 ..\opcode.h \
569 ..\perl.h \
570 ..\perlapi.h \
571 ..\perlsdio.h \
572 ..\perlsfio.h \
573 ..\perly.h \
574 ..\pp.h \
575 ..\proto.h \
576 ..\regexp.h \
577 ..\scope.h \
578 ..\sv.h \
579 ..\thread.h \
580 ..\unixish.h \
581 ..\utf8.h \
582 ..\util.h \
583 ..\warnings.h \
584 ..\XSUB.h \
585 ..\EXTERN.h \
586 ..\perlvars.h \
587 ..\intrpvar.h \
588 ..\thrdvar.h \
589 .\include\dirent.h \
590 .\include\netdb.h \
591 .\include\sys\socket.h \
592 .\win32.h
593
594CORE_H = $(CORE_NOCFG_H) .\config.h
595
596MICROCORE_OBJ = $(MICROCORE_SRC:.c=.obj)
597CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=.obj)
598WIN32_OBJ = $(WIN32_SRC:.c=.obj)
599MINICORE_OBJ = $(MICROCORE_OBJ:..\=.\mini\) \
600 $(MINIDIR)\miniperlmain$(o) \
601 $(MINIDIR)\perlio$(o)
602MINIWIN32_OBJ = $(WIN32_OBJ:.\=.\mini\)
603MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
604DLL_OBJ = $(DLL_SRC:.c=.obj)
605X2P_OBJ = $(X2P_SRC:.c=.obj)
606
607PERLDLL_OBJ = $(CORE_OBJ)
608PERLEXE_OBJ = perlmain$(o)
609
610PERLDLL_OBJ = $(PERLDLL_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
611#PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
612
613!IF "$(USE_SETARGV)" != ""
614SETARGV_OBJ = setargv$(o)
615!ENDIF
616
617DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
618 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
24c3c6f8 619 Sys/Hostname Storable Filter/Util/Call Encode
a9226780 620STATIC_EXT = DynaLoader
621NONXS_EXT = Errno
622
623DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
624SOCKET = $(EXTDIR)\Socket\Socket
625FCNTL = $(EXTDIR)\Fcntl\Fcntl
626OPCODE = $(EXTDIR)\Opcode\Opcode
627SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
628IO = $(EXTDIR)\IO\IO
629POSIX = $(EXTDIR)\POSIX\POSIX
630ATTRS = $(EXTDIR)\attrs\attrs
631THREAD = $(EXTDIR)\Thread\Thread
632B = $(EXTDIR)\B\B
633RE = $(EXTDIR)\re\re
634DUMPER = $(EXTDIR)\Data\Dumper\Dumper
635ERRNO = $(EXTDIR)\Errno\Errno
636PEEK = $(EXTDIR)\Devel\Peek\Peek
637BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader
638DPROF = $(EXTDIR)\Devel\DProf\DProf
639GLOB = $(EXTDIR)\File\Glob\Glob
640HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname
641STORABLE = $(EXTDIR)\Storable\Storable
5e506771 642FILTER = $(EXTDIR)\Filter\Util\Call\Call
24c3c6f8 643ENCODE = $(EXTDIR)\Encode\Encode
a9226780 644
645SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
646FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
647OPCODE_DLL = $(AUTODIR)\Opcode\Opcode.dll
648SDBM_FILE_DLL = $(AUTODIR)\SDBM_File\SDBM_File.dll
649IO_DLL = $(AUTODIR)\IO\IO.dll
650POSIX_DLL = $(AUTODIR)\POSIX\POSIX.dll
651ATTRS_DLL = $(AUTODIR)\attrs\attrs.dll
652THREAD_DLL = $(AUTODIR)\Thread\Thread.dll
653B_DLL = $(AUTODIR)\B\B.dll
654DUMPER_DLL = $(AUTODIR)\Data\Dumper\Dumper.dll
655PEEK_DLL = $(AUTODIR)\Devel\Peek\Peek.dll
656RE_DLL = $(AUTODIR)\re\re.dll
657BYTELOADER_DLL = $(AUTODIR)\ByteLoader\ByteLoader.dll
658DPROF_DLL = $(AUTODIR)\Devel\DProf\DProf.dll
659GLOB_DLL = $(AUTODIR)\File\Glob\Glob.dll
660HOSTNAME_DLL = $(AUTODIR)\Sys\Hostname\Hostname.dll
661STORABLE_DLL = $(AUTODIR)\Storable\Storable.dll
24c3c6f8 662FILTER_DLL = $(AUTODIR)\Filter\Util\Call\Call.dll
663ENCODE_DLL = $(AUTODIR)\Encode\Encode.dll
a9226780 664
665ERRNO_PM = $(LIBDIR)\Errno.pm
666
667EXTENSION_C = \
668 $(SOCKET).c \
669 $(FCNTL).c \
670 $(OPCODE).c \
671 $(SDBM_FILE).c \
672 $(IO).c \
673 $(POSIX).c \
674 $(ATTRS).c \
675 $(THREAD).c \
676 $(RE).c \
677 $(DUMPER).c \
678 $(PEEK).c \
679 $(B).c \
680 $(BYTELOADER).c \
681 $(DPROF).c \
682 $(GLOB).c \
683 $(HOSTNAME).c \
a3ee43e0 684 $(STORABLE).c \
24c3c6f8 685 $(FILTER).c \
686 $(ENCODE).c
a9226780 687
688EXTENSION_DLL = \
689 $(SOCKET_DLL) \
690 $(FCNTL_DLL) \
691 $(OPCODE_DLL) \
692 $(SDBM_FILE_DLL)\
693 $(IO_DLL) \
694 $(POSIX_DLL) \
695 $(ATTRS_DLL) \
696 $(DUMPER_DLL) \
697 $(PEEK_DLL) \
698 $(B_DLL) \
699 $(RE_DLL) \
700 $(THREAD_DLL) \
701 $(BYTELOADER_DLL) \
702 $(DPROF_DLL) \
703 $(GLOB_DLL) \
704 $(HOSTNAME_DLL) \
a3ee43e0 705 $(STORABLE_DLL) \
24c3c6f8 706 $(FILTER_DLL) \
707 $(ENCODE_DLL)
a9226780 708
709EXTENSION_PM = \
710 $(ERRNO_PM)
711
712POD2HTML = $(PODDIR)\pod2html
713POD2MAN = $(PODDIR)\pod2man
714POD2LATEX = $(PODDIR)\pod2latex
715POD2TEXT = $(PODDIR)\pod2text
716
717CFG_VARS = \
718 "INST_DRV=$(INST_DRV)" \
719 "INST_TOP=$(INST_TOP)" \
720 "INST_VER=$(INST_VER)" \
721 "INST_ARCH=$(INST_ARCH)" \
722 "archname=$(ARCHNAME)" \
723 "cc=$(CC)" \
fd826df2 724 "ld=$(LINK32)" \
00b02797 725 "ccflags=-nologo -Gf -W3 $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
726 "cf_email=$(EMAIL)" \
a9226780 727 "d_crypt=$(D_CRYPT)" \
728 "d_mymalloc=$(PERL_MALLOC)" \
729 "libs=$(LIBFILES)" \
730 "incpath=$(CCINCDIR:"=\")" \
731 "libperl=$(PERLIMPLIB:..\=)" \
732 "libpth=$(CCLIBDIR:"=\");$(EXTRALIBDIRS:"=\")" \
733 "libc=$(LIBC)" \
734 "make=nmake" \
735 "static_ext=$(STATIC_EXT)" \
736 "dynamic_ext=$(DYNAMIC_EXT)" \
737 "nonxs_ext=$(NONXS_EXT)" \
738 "use5005threads=$(USE_5005THREADS)" \
739 "useithreads=$(USE_ITHREADS)" \
740 "usethreads=$(USE_5005THREADS)" \
741 "usemultiplicity=$(USE_MULTI)" \
742 "LINK_FLAGS=$(LINK_FLAGS:"=\")" \
743 "optimize=$(OPTIMIZE:"=\")"
744
745#
746# Top targets
747#
748
749all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
750 $(X2P) $(EXTENSION_DLL) $(EXTENSION_PM)
751
752$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
753
754#------------------------------------------------------------
755
756$(GLOBEXE) : perlglob$(o)
757 $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \
7a9b6398 758 perlglob$(o) setargv$(o)
a9226780 759
760perlglob$(o) : perlglob.c
761
762config.w32 : $(CFGSH_TMPL)
763 copy $(CFGSH_TMPL) config.w32
764
765.\config.h : $(CFGH_TMPL)
766 -del /f config.h
767 copy $(CFGH_TMPL) config.h
768
769..\config.sh : config.w32 $(MINIPERL) config_sh.PL
770 $(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) config.w32 > ..\config.sh
771
772# this target is for when changes to the main config.sh happen
773# edit config.{b,v,g}c and make this target once for each supported
7a9b6398 774# compiler (e.g. `nmake CCTYPE=BORLAND regen_config_h`)
a9226780 775regen_config_h:
776 perl config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh
777 cd ..
778 -del /f perl.exe
779 perl configpm
780 cd win32
781 -del /f $(CFGH_TMPL)
782 -mkdir $(COREDIR)
783 -perl -I..\lib config_h.PL "INST_VER=$(INST_VER)"
784 rename config.h $(CFGH_TMPL)
785
786$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
7a9b6398 787 cd ..
00b02797 788 miniperl configpm
789 cd win32
a9226780 790 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
791 $(XCOPY) ..\*.h $(COREDIR)\*.*
792 $(XCOPY) *.h $(COREDIR)\*.*
793 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
794 $(RCOPY) include $(COREDIR)\*.*
00b02797 795 -$(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)"
796 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
a9226780 797
798$(MINIPERL) : $(MINIDIR) $(MINI_OBJ)
799 $(LINK32) -subsystem:console -out:$@ @<<
800 $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ)
801<<
802
803$(MINIDIR) :
804 if not exist "$(MINIDIR)" mkdir "$(MINIDIR)"
805
806$(MINICORE_OBJ) : $(CORE_NOCFG_H)
807 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB $(OBJOUT_FLAG)$@ ..\$(*F).c
808
809$(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
810 $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $(*F).c
811
812# -DPERL_IMPLICIT_SYS needs C++ for perllib.c
813# This is the only file that depends on perlhost.h, vmem.h, and vdir.h
814!IF "$(USE_IMP_SYS)$(USE_OBJECT)" == "defineundef"
815perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
816 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
817!ENDIF
818
819# 1. we don't want to rebuild miniperl.exe when config.h changes
820# 2. we don't want to rebuild miniperl.exe with non-default config.h
821$(MINI_OBJ) : $(CORE_NOCFG_H)
822
823$(WIN32_OBJ) : $(CORE_H)
824$(CORE_OBJ) : $(CORE_H)
825$(DLL_OBJ) : $(CORE_H)
826$(X2P_OBJ) : $(CORE_H)
827
828perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
829 $(MINIPERL) -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
830 CCTYPE=$(CCTYPE) > perldll.def
831
832$(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
833 $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ @<<
834 $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) $(PERLDLL_RES)
835<<
836 $(XCOPY) $(PERLIMPLIB) $(COREDIR)
837
838$(MINIMOD) : $(MINIPERL) ..\minimod.pl
7a9b6398 839 cd ..
00b02797 840 miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
841 cd win32
a9226780 842
843..\x2p\a2p$(o) : ..\x2p\a2p.c
844 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
845
846..\x2p\hash$(o) : ..\x2p\hash.c
847 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
848
849..\x2p\str$(o) : ..\x2p\str.c
850 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
851
852..\x2p\util$(o) : ..\x2p\util.c
853 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
854
855..\x2p\walk$(o) : ..\x2p\walk.c
856 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
857
858$(X2P) : $(MINIPERL) $(X2P_OBJ)
859 $(MINIPERL) ..\x2p\find2perl.PL
860 $(MINIPERL) ..\x2p\s2p.PL
861 $(LINK32) -subsystem:console -out:$@ @<<
862 $(LINK_FLAGS) $(LIBFILES) $(X2P_OBJ)
863<<
864
7a9b6398 865perlmain.c : runperl.c
a9226780 866 copy runperl.c perlmain.c
867
868perlmain$(o) : perlmain.c
869 $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c
870
871$(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
872 $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \
873 $(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
874 copy $(PERLEXE) $(WPERLEXE)
875 $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
7a9b6398 876 copy splittree.pl ..
a9226780 877 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
878
879$(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
880 if not exist $(AUTODIR) mkdir $(AUTODIR)
881 cd $(EXTDIR)\$(*B)
882 ..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
883 ..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
884 cd ..\..\win32
885 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
886 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
887 cd $(EXTDIR)\$(*B)
888 $(XSUBPP) dl_win32.xs > $(*B).c
889 cd ..\..\win32
890
891$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
892 copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
893
894$(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs
895 cd $(EXTDIR)\Data\$(*B)
896 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
897 $(MAKE)
898 cd ..\..\..\win32
899
900$(DPROF_DLL): $(PERLEXE) $(DPROF).xs
901 cd $(EXTDIR)\Devel\$(*B)
902 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
903 $(MAKE)
904 cd ..\..\..\win32
905
906$(GLOB_DLL): $(PERLEXE) $(GLOB).xs
907 cd $(EXTDIR)\File\$(*B)
908 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
909 $(MAKE)
910 cd ..\..\..\win32
911
912$(PEEK_DLL): $(PERLEXE) $(PEEK).xs
913 cd $(EXTDIR)\Devel\$(*B)
914 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
915 $(MAKE)
916 cd ..\..\..\win32
917
918$(RE_DLL): $(PERLEXE) $(RE).xs
919 cd $(EXTDIR)\$(*B)
920 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
921 $(MAKE)
922 cd ..\..\win32
923
924$(B_DLL): $(PERLEXE) $(B).xs
925 cd $(EXTDIR)\$(*B)
926 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
927 $(MAKE)
928 cd ..\..\win32
929
930$(THREAD_DLL): $(PERLEXE) $(THREAD).xs
931 cd $(EXTDIR)\$(*B)
932 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
933 $(MAKE)
934 cd ..\..\win32
935
936$(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs
937 cd $(EXTDIR)\$(*B)
938 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
939 $(MAKE)
940 cd ..\..\win32
941
942$(POSIX_DLL): $(PERLEXE) $(POSIX).xs
943 cd $(EXTDIR)\$(*B)
944 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
945 $(MAKE)
946 cd ..\..\win32
947
948$(IO_DLL): $(PERLEXE) $(IO).xs
949 cd $(EXTDIR)\$(*B)
950 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
951 $(MAKE)
952 cd ..\..\win32
953
954$(SDBM_FILE_DLL) : $(PERLEXE) $(SDBM_FILE).xs
955 cd $(EXTDIR)\$(*B)
956 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
957 $(MAKE)
958 cd ..\..\win32
959
960$(FCNTL_DLL): $(PERLEXE) $(FCNTL).xs
961 cd $(EXTDIR)\$(*B)
962 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
963 $(MAKE)
964 cd ..\..\win32
965
966$(OPCODE_DLL): $(PERLEXE) $(OPCODE).xs
967 cd $(EXTDIR)\$(*B)
968 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
969 $(MAKE)
970 cd ..\..\win32
971
972$(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
973 cd $(EXTDIR)\$(*B)
974 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
975 $(MAKE)
976 cd ..\..\win32
977
978$(HOSTNAME_DLL): $(PERLEXE) $(HOSTNAME).xs
979 cd $(EXTDIR)\Sys\$(*B)
980 ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl
981 $(MAKE)
982 cd ..\..\..\win32
983
984$(BYTELOADER_DLL): $(PERLEXE) $(BYTELOADER).xs
985 cd $(EXTDIR)\$(*B)
986 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
987 $(MAKE)
988 cd ..\..\win32
989
7a9b6398 990$(ENCODE_DLL): $(PERLEXE) $(ENCODE).xs
991 cd $(EXTDIR)\$(*B)
992 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
993 $(MAKE)
994 cd ..\..\win32
995
a9226780 996$(STORABLE_DLL): $(PERLEXE) $(STORABLE).xs
997 cd $(EXTDIR)\$(*B)
998 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
999 $(MAKE)
1000 cd ..\..\win32
1001
a3ee43e0 1002$(FILTER_DLL): $(PERLEXE) $(FILTER).xs
5e506771 1003 cd $(EXTDIR)\Filter\Util\Call
89060ce2 1004 ..\..\..\..\miniperl -I..\..\..\..\lib Makefile.PL INSTALLDIRS=perl
a3ee43e0 1005 $(MAKE)
89060ce2 1006 cd ..\..\..\..\win32
a3ee43e0 1007
24c3c6f8 1008$(ENCODE_DLL): $(PERLEXE) $(ENCODE).xs
1009 cd $(EXTDIR)\$(*B)
1010 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
1011 $(MAKE)
1012 cd ..\..\win32
1013
a9226780 1014$(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL
1015 cd $(EXTDIR)\$(*B)
1016 ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl
1017 $(MAKE)
1018 cd ..\..\win32
1019
1020doc: $(PERLEXE)
1021 $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
1022 --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \
1023 --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
1024
1025utils: $(PERLEXE) $(X2P)
1026 cd ..\utils
1027 $(MAKE) PERL=$(MINIPERL)
1028 cd ..\pod
1029 copy ..\README.amiga .\perlamiga.pod
1030 copy ..\README.cygwin .\perlcygwin.pod
1031 copy ..\README.dos .\perldos.pod
1032 copy ..\README.hpux .\perlhpux.pod
1033 copy ..\README.machten .\perlmachten.pod
1034 copy ..\README.os2 .\perlos2.pod
1035 copy ..\vms\perlvms.pod .\perlvms.pod
1036 copy ..\README.win32 .\perlwin32.pod
1037 $(MAKE) -f ..\win32\pod.mak converters
1038 cd ..\lib
1039 $(PERLEXE) lib_pm.PL
1040 cd ..\win32
1041 $(PERLEXE) $(PL2BAT) $(UTILS)
1042
1043distclean: clean
1044 -del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
1045 $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1046 -del /f *.def *.map
1047 -del /f $(EXTENSION_DLL) $(EXTENSION_PM)
1048 -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
1049 -del /f $(EXTDIR)\DynaLoader\dl_win32.xs
1050 -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
1051 -del /f $(LIBDIR)\XSLoader.pm
1052 -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
1053 -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm
1054 -del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
1055 -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
1056 -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
1057 -del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
1058 -del /f $(LIBDIR)\File\Glob.pm
1059 -del /f $(LIBDIR)\Storable.pm
5e506771 1060 -del /f $(LIBDIR)\Filter\Util\Call\Call.pm
7a9b6398 1061 -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
00b02797 1062 -rmdir /s $(LIBDIR)\IO
7a9b6398 1063 -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread
00b02797 1064 -rmdir /s $(LIBDIR)\Thread
1065 -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
1066 -rmdir /s $(LIBDIR)\B
7a9b6398 1067 -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
00b02797 1068 -rmdir /s $(LIBDIR)\Data
5e506771 1069 -if exist $(LIBDIR)\Filter\Util\Call rmdir /s /q $(LIBDIR)\Filter\Util\Call
1070 -if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
a9226780 1071 -del /f $(PODDIR)\*.html
1072 -del /f $(PODDIR)\*.bat
1073 cd ..\utils
1074 -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp
1075 -del /f *.bat
1076 cd ..\win32
1077 cd ..\x2p
1078 -del /f find2perl s2p
1079 -del /f *.bat
1080 cd ..\win32
1081 -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
1082 -del /f $(CONFIGPM)
1083 -del /f bin\*.bat
1084 cd $(EXTDIR)
1085 -del /s *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib
1086 cd ..\win32
7a9b6398 1087 -if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
00b02797 1088 -rmdir /s $(AUTODIR)
7a9b6398 1089 -if exist $(COREDIR) rmdir /s /q $(COREDIR)
00b02797 1090 -rmdir /s $(COREDIR)
a9226780 1091
1092install : all installbare installhtml
1093
1094installbare : utils
1095 $(PERLEXE) ..\installperl
1096 if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
1097 $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
1098 $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
1099
1100installhtml : doc
1101 $(RCOPY) html\*.* $(INST_HTML)\*.*
1102
1103inst_lib : $(CONFIGPM)
7a9b6398 1104 copy splittree.pl ..
a9226780 1105 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1106 $(RCOPY) ..\lib $(INST_LIB)\*.*
1107
1108minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
1109 $(XCOPY) $(MINIPERL) ..\t\perl.exe
1110 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1111 attrib -r ..\t\*.*
1112 copy test ..\t
1113 cd ..\t
1114 $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
1115 cd ..\win32
1116
1117test-prep : all utils
1118 $(XCOPY) $(PERLEXE) ..\t\$(NULL)
1119 $(XCOPY) $(PERLDLL) ..\t\$(NULL)
1120 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1121
1122test : test-prep
1123 cd ..\t
1124 $(PERLEXE) -I..\lib harness
1125 cd ..\win32
1126
1127test-notty : test-prep
1128 set PERL_SKIP_TTY_TEST=1
1129 cd ..\t
1130 $(PERLEXE) -I..\lib harness
1131 cd ..\win32
1132
1133test-wide : test-prep
1134 set HARNESS_PERL_SWITCHES=-C
1135 cd ..\t
1136 $(PERLEXE) -I..\lib harness
1137 cd ..\win32
1138
1139test-wide-notty : test-prep
1140 set PERL_SKIP_TTY_TEST=1
1141 set HARNESS_PERL_SWITCHES=-C
1142 cd ..\t
1143 $(PERLEXE) -I..\lib harness
1144 cd ..\win32
1145
7a9b6398 1146clean :
00b02797 1147 -@$(DEL) miniperlmain$(o)
1148 -@$(DEL) $(MINIPERL)
1149 -@$(DEL) perlglob$(o)
1150 -@$(DEL) perlmain$(o)
1151 -@$(DEL) config.w32
1152 -@$(DEL) /f config.h
1153 -@$(DEL) $(GLOBEXE)
1154 -@$(DEL) $(PERLEXE)
1155 -@$(DEL) $(WPERLEXE)
1156 -@$(DEL) $(PERLDLL)
1157 -@$(DEL) $(CORE_OBJ)
7a9b6398 1158 -if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
1159 -rmdir /s $(MINIDIR)
00b02797 1160 -@$(DEL) $(WIN32_OBJ)
1161 -@$(DEL) $(DLL_OBJ)
1162 -@$(DEL) $(X2P_OBJ)
1163 -@$(DEL) ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1164 -@$(DEL) ..\t\*.exe ..\t\*.dll ..\t\*.bat
1165 -@$(DEL) ..\x2p\*.exe ..\x2p\*.bat
1166 -@$(DEL) *.ilk
1167 -@$(DEL) *.pdb
7a9b6398 1168
a9226780 1169# Handy way to run perlbug -ok without having to install and run the
1170# installed perlbug. We don't re-run the tests here - we trust the user.
1171# Please *don't* use this unless all tests pass.
1172# If you want to report test failures, use "nmake nok" instead.
1173ok: utils
1174 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)"
1175
1176okfile: utils
1177 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok
7a9b6398 1178
a9226780 1179nok: utils
1180 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)"
7a9b6398 1181
a9226780 1182nokfile: utils
1183 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok