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