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
NC
498 ..\utils\xsubpp \
499 ..\utils\instmodsh \
caec3c99
NC
500 ..\pod\checkpods \
501 ..\pod\pod2html \
502 ..\pod\pod2latex \
503 ..\pod\pod2man \
504 ..\pod\pod2text \
505 ..\pod\pod2usage \
506 ..\pod\podchecker \
507 ..\pod\podselect \
508 ..\x2p\find2perl \
509 ..\x2p\psed \
510 ..\x2p\s2p \
caec3c99
NC
511 bin\exetype.pl \
512 bin\runperl.pl \
513 bin\pl2bat.pl \
514 bin\perlglob.pl \
515 bin\search.pl
516
517MAKE = nmake -nologo
518MAKE_BARE = nmake
519
520!IF "$(WIN64)" == "define"
521CFGSH_TMPL = config.vc64
522CFGH_TMPL = config_H.vc64
523!ELSE
524CFGSH_TMPL = config.vc
525CFGH_TMPL = config_H.vc
526!ENDIF
527
528XCOPY = xcopy /f /r /i /d
529RCOPY = xcopy /f /r /i /e /d
530NOOP = @echo
531NULL =
532
533DEL = del
534
535#
536# filenames given to xsubpp must have forward slashes (since it puts
537# full pathnames in #line strings)
538XSUBPP = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
539 -C++ -prototypes
540
541MICROCORE_SRC = \
542 ..\av.c \
543 ..\deb.c \
544 ..\doio.c \
545 ..\doop.c \
546 ..\dump.c \
547 ..\globals.c \
548 ..\gv.c \
549 ..\hv.c \
550 ..\locale.c \
551 ..\mg.c \
552 ..\numeric.c \
553 ..\op.c \
554 ..\pad.c \
555 ..\perl.c \
556 ..\perlapi.c \
557 ..\perly.c \
558 ..\pp.c \
559 ..\pp_ctl.c \
560 ..\pp_hot.c \
561 ..\pp_pack.c \
562 ..\pp_sort.c \
563 ..\pp_sys.c \
564 ..\reentr.c \
565 ..\regcomp.c \
566 ..\regexec.c \
567 ..\run.c \
568 ..\scope.c \
569 ..\sv.c \
570 ..\taint.c \
571 ..\toke.c \
572 ..\universal.c \
573 ..\utf8.c \
574 ..\util.c \
575 ..\xsutils.c
576
577EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
578
579!IF "$(PERL_MALLOC)" == "define"
580EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
581!ENDIF
582
583EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
584
585WIN32_SRC = \
586 .\win32.c \
587 .\win32sck.c \
588 .\win32thread.c
589
590# We need this for miniperl build unless we override canned
591# config.h #define building mini\*
592#!IF "$(USE_PERLIO)" == "define"
593WIN32_SRC = $(WIN32_SRC) .\win32io.c
594#!ENDIF
595
596!IF "$(CRYPT_SRC)" != ""
597WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
598!ENDIF
599
600DLL_SRC = $(DYNALOADER).c
601
602X2P_SRC = \
603 ..\x2p\a2p.c \
604 ..\x2p\hash.c \
605 ..\x2p\str.c \
606 ..\x2p\util.c \
607 ..\x2p\walk.c
608
609CORE_NOCFG_H = \
610 ..\av.h \
611 ..\cop.h \
612 ..\cv.h \
613 ..\dosish.h \
614 ..\embed.h \
615 ..\form.h \
616 ..\gv.h \
617 ..\handy.h \
618 ..\hv.h \
619 ..\iperlsys.h \
620 ..\mg.h \
621 ..\nostdio.h \
622 ..\op.h \
623 ..\opcode.h \
624 ..\perl.h \
625 ..\perlapi.h \
626 ..\perlsdio.h \
627 ..\perlsfio.h \
628 ..\perly.h \
629 ..\pp.h \
630 ..\proto.h \
631 ..\regexp.h \
632 ..\scope.h \
633 ..\sv.h \
634 ..\thread.h \
635 ..\unixish.h \
636 ..\utf8.h \
637 ..\util.h \
638 ..\warnings.h \
639 ..\XSUB.h \
640 ..\EXTERN.h \
641 ..\perlvars.h \
642 ..\intrpvar.h \
643 ..\thrdvar.h \
644 .\include\dirent.h \
645 .\include\netdb.h \
646 .\include\sys\socket.h \
647 .\win32.h
648
649CORE_H = $(CORE_NOCFG_H) .\config.h
650
651MICROCORE_OBJ = $(MICROCORE_SRC:.c=.obj)
652CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=.obj)
653WIN32_OBJ = $(WIN32_SRC:.c=.obj)
654MINICORE_OBJ = $(MICROCORE_OBJ:..\=.\mini\) \
655 $(MINIDIR)\miniperlmain$(o) \
656 $(MINIDIR)\perlio$(o)
657MINIWIN32_OBJ = $(WIN32_OBJ:.\=.\mini\)
658MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
659DLL_OBJ = $(DLL_SRC:.c=.obj)
660X2P_OBJ = $(X2P_SRC:.c=.obj)
661
662PERLDLL_OBJ = $(CORE_OBJ)
663PERLEXE_OBJ = perlmain$(o)
664
665PERLDLL_OBJ = $(PERLDLL_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
666#PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
667
668!IF "$(USE_SETARGV)" != ""
669SETARGV_OBJ = setargv$(o)
670!ENDIF
671
672DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
673SOCKET = $(EXTDIR)\Socket\Socket
674FCNTL = $(EXTDIR)\Fcntl\Fcntl
675OPCODE = $(EXTDIR)\Opcode\Opcode
676SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
677IO = $(EXTDIR)\IO\IO
678POSIX = $(EXTDIR)\POSIX\POSIX
679ATTRS = $(EXTDIR)\attrs\attrs
680THREAD = $(EXTDIR)\Thread\Thread
681B = $(EXTDIR)\B\B
682RE = $(EXTDIR)\re\re
683DUMPER = $(EXTDIR)\Data\Dumper\Dumper
684ERRNO = $(EXTDIR)\Errno\Errno
685PEEK = $(EXTDIR)\Devel\Peek\Peek
686BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader
687DPROF = $(EXTDIR)\Devel\DProf\DProf
688GLOB = $(EXTDIR)\File\Glob\Glob
689HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname
690STORABLE = $(EXTDIR)\Storable\Storable
691FILTER = $(EXTDIR)\Filter\Util\Call\Call
692ENCODE = $(EXTDIR)\Encode\Encode
693MD5 = $(EXTDIR)\Digest\MD5\MD5
694PERLIOSCALAR = $(EXTDIR)\PerlIO\scalar\scalar
695MIMEBASE64 = $(EXTDIR)\MIME\Base64\Base64
696TIMEHIRES = $(EXTDIR)\Time\HiRes\HiRes
697CWD = $(EXTDIR)\Cwd\Cwd
698LISTUTIL = $(EXTDIR)\List\Util\Util
699PERLIOVIA = $(EXTDIR)\PerlIO\via\via
700XSAPITEST = $(EXTDIR)\XS\APItest\APItest
701XSTYPEMAP = $(EXTDIR)\XS\Typemap\Typemap
702UNICODENORMALIZE = $(EXTDIR)\Unicode\Normalize\Normalize
703
704SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
705FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
706OPCODE_DLL = $(AUTODIR)\Opcode\Opcode.dll
707SDBM_FILE_DLL = $(AUTODIR)\SDBM_File\SDBM_File.dll
708IO_DLL = $(AUTODIR)\IO\IO.dll
709POSIX_DLL = $(AUTODIR)\POSIX\POSIX.dll
710ATTRS_DLL = $(AUTODIR)\attrs\attrs.dll
711THREAD_DLL = $(AUTODIR)\Thread\Thread.dll
712B_DLL = $(AUTODIR)\B\B.dll
713DUMPER_DLL = $(AUTODIR)\Data\Dumper\Dumper.dll
714PEEK_DLL = $(AUTODIR)\Devel\Peek\Peek.dll
715RE_DLL = $(AUTODIR)\re\re.dll
716BYTELOADER_DLL = $(AUTODIR)\ByteLoader\ByteLoader.dll
717DPROF_DLL = $(AUTODIR)\Devel\DProf\DProf.dll
718GLOB_DLL = $(AUTODIR)\File\Glob\Glob.dll
719HOSTNAME_DLL = $(AUTODIR)\Sys\Hostname\Hostname.dll
720STORABLE_DLL = $(AUTODIR)\Storable\Storable.dll
721FILTER_DLL = $(AUTODIR)\Filter\Util\Call\Call.dll
722ENCODE_DLL = $(AUTODIR)\Encode\Encode.dll
723MD5_DLL = $(AUTODIR)\Digest\MD5\MD5.dll
724PERLIOSCALAR_DLL = $(AUTODIR)\PerlIO\scalar\scalar.dll
725MIMEBASE64_DLL = $(AUTODIR)\MIME\Base64\Base64.dll
726TIMEHIRES_DLL = $(AUTODIR)\Time\HiRes\HiRes.dll
727CWD_DLL = $(AUTODIR)\Cwd\Cwd.dll
728LISTUTIL_DLL = $(AUTODIR)\List\Util\Util.dll
729PERLIOVIA_DLL = $(AUTODIR)\PerlIO\via\via.dll
730XSAPITEST_DLL = $(AUTODIR)\XS\APItest\APItest.dll
731XSTYPEMAP_DLL = $(AUTODIR)\XS\Typemap\Typemap.dll
732UNICODENORMALIZE_DLL = $(AUTODIR)\Unicode\Normalize\Normalize.dll
733
734EXTENSION_C = \
735 $(SOCKET).c \
736 $(FCNTL).c \
737 $(OPCODE).c \
738 $(SDBM_FILE).c \
739 $(IO).c \
740 $(POSIX).c \
741 $(ATTRS).c \
742 $(THREAD).c \
743 $(RE).c \
744 $(DUMPER).c \
745 $(PEEK).c \
746 $(B).c \
747 $(BYTELOADER).c \
748 $(DPROF).c \
749 $(GLOB).c \
750 $(HOSTNAME).c \
751 $(STORABLE).c \
752 $(FILTER).c \
753 $(ENCODE).c \
754 $(MD5).c \
755 $(PERLIOSCALAR).c \
756 $(MIMEBASE64).c \
757 $(TIMEHIRES).c \
758 $(CWD).c \
759 $(LISTUTIL).c \
760 $(PERLIOVIA).c \
761 $(XSAPITEST).c \
762 $(XSTYPEMAP).c \
763 $(UNICODENORMALIZE).c
764
765EXTENSION_DLL = \
766 $(SOCKET_DLL) \
767 $(FCNTL_DLL) \
768 $(OPCODE_DLL) \
769 $(SDBM_FILE_DLL)\
770 $(IO_DLL) \
771 $(POSIX_DLL) \
772 $(ATTRS_DLL) \
773 $(DUMPER_DLL) \
774 $(PEEK_DLL) \
775 $(B_DLL) \
776 $(RE_DLL) \
777 $(THREAD_DLL) \
778 $(BYTELOADER_DLL) \
779 $(DPROF_DLL) \
780 $(GLOB_DLL) \
781 $(HOSTNAME_DLL) \
782 $(STORABLE_DLL) \
783 $(FILTER_DLL) \
784 $(ENCODE_DLL) \
785 $(MD5_DLL) \
786 $(PERLIOSCALAR_DLL) \
787 $(MIMEBASE64_DLL) \
788 $(TIMEHIRES_DLL) \
789 $(CWD_DLL) \
790 $(LISTUTIL_DLL) \
791 $(PERLIOVIA_DLL) \
792 $(XSAPITEST_DLL) \
793 $(XSTYPEMAP_DLL) \
794 $(UNICODENORMALIZE_DLL)
795
796POD2HTML = $(PODDIR)\pod2html
797POD2MAN = $(PODDIR)\pod2man
798POD2LATEX = $(PODDIR)\pod2latex
799POD2TEXT = $(PODDIR)\pod2text
800
801CFG_VARS = \
802 "INST_DRV=$(INST_DRV)" \
803 "INST_TOP=$(INST_TOP)" \
804 "INST_VER=$(INST_VER)" \
805 "INST_ARCH=$(INST_ARCH)" \
806 "archname=$(ARCHNAME)" \
807 "cc=$(CC)" \
808 "ld=$(LINK32)" \
809 "ccflags=-nologo -Gf -W3 $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
810 "cf_email=$(EMAIL)" \
811 "d_crypt=$(D_CRYPT)" \
812 "d_mymalloc=$(PERL_MALLOC)" \
813 "libs=$(LIBFILES)" \
814 "incpath=$(CCINCDIR:"=\")" \
815 "libperl=$(PERLIMPLIB:..\=)" \
816 "libpth=$(CCLIBDIR:"=\");$(EXTRALIBDIRS:"=\")" \
817 "libc=$(LIBC)" \
818 "make=$(MAKE_BARE)" \
819 "usethreads=$(USE_ITHREADS)" \
820 "use5005threads=$(USE_5005THREADS)" \
821 "useithreads=$(USE_ITHREADS)" \
822 "usethreads=$(USE_5005THREADS)" \
823 "usemultiplicity=$(USE_MULTI)" \
824 "useperlio=$(USE_PERLIO)" \
825 "uselargefiles=$(USE_LARGE_FILES)" \
826 "LINK_FLAGS=$(LINK_FLAGS:"=\")" \
827 "optimize=$(OPTIMIZE:"=\")"
828
829#
830# Top targets
831#
832
833all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
834 $(X2P) Extensions
835 @echo Everything is up to date. '$(MAKE_BARE) test' to run test suite.
836
837$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
838
839#------------------------------------------------------------
840
841$(GLOBEXE) : perlglob$(o)
842 $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \
843 perlglob$(o) setargv$(o)
844
845perlglob$(o) : perlglob.c
846
847config.w32 : $(CFGSH_TMPL)
848 copy $(CFGSH_TMPL) config.w32
849
850.\config.h : $(CFGH_TMPL)
851 -del /f config.h
852 copy $(CFGH_TMPL) config.h
853
854..\config.sh : config.w32 $(MINIPERL) config_sh.PL
855 $(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) config.w32 > ..\config.sh
856
857# this target is for when changes to the main config.sh happen
858# edit config.{b,v,g}c and make this target once for each supported
859# compiler (e.g. `nmake CCTYPE=BORLAND regen_config_h`)
860regen_config_h:
861 perl config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh
862 cd ..
863 -del /f perl.exe perl*.dll
864 perl configpm
865 cd win32
866 -del /f $(CFGH_TMPL)
867 -mkdir $(COREDIR)
868 -perl config_h.PL "INST_VER=$(INST_VER)"
869 rename config.h $(CFGH_TMPL)
870
871$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
872 cd ..
873 miniperl configpm
874 cd win32
875 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
876 $(XCOPY) ..\*.h $(COREDIR)\*.*
877 $(XCOPY) ..\*.inc $(COREDIR)\*.*
878 $(XCOPY) *.h $(COREDIR)\*.*
879 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
880 $(RCOPY) include $(COREDIR)\*.*
881 -$(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)"
882 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
883
884$(MINIPERL) : $(MINIDIR) $(MINI_OBJ)
885 $(LINK32) -subsystem:console -out:$@ @<<
886 $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ)
887<<
888
889$(MINIDIR) :
890 if not exist "$(MINIDIR)" mkdir "$(MINIDIR)"
891
892$(MINICORE_OBJ) : $(CORE_NOCFG_H)
893 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB $(OBJOUT_FLAG)$@ ..\$(*F).c
894
895$(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
896 $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $(*F).c
897
898# -DPERL_IMPLICIT_SYS needs C++ for perllib.c
899# This is the only file that depends on perlhost.h, vmem.h, and vdir.h
900!IF "$(USE_IMP_SYS)" == "define"
901perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
902 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
903!ENDIF
904
905# 1. we don't want to rebuild miniperl.exe when config.h changes
906# 2. we don't want to rebuild miniperl.exe with non-default config.h
907$(MINI_OBJ) : $(CORE_NOCFG_H)
908
909$(WIN32_OBJ) : $(CORE_H)
910$(CORE_OBJ) : $(CORE_H)
911$(DLL_OBJ) : $(CORE_H)
912$(X2P_OBJ) : $(CORE_H)
913
914perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
915 $(MINIPERL) -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
916 CCTYPE=$(CCTYPE) > perldll.def
917
918$(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
919 $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ @<<
920 $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) $(PERLDLL_RES)
921<<
922 $(XCOPY) $(PERLIMPLIB) $(COREDIR)
923
924$(MINIMOD) : $(MINIPERL) ..\minimod.pl
925 cd ..
926 miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
927 cd win32
928
929..\x2p\a2p$(o) : ..\x2p\a2p.c
930 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
931
932..\x2p\hash$(o) : ..\x2p\hash.c
933 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
934
935..\x2p\str$(o) : ..\x2p\str.c
936 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
937
938..\x2p\util$(o) : ..\x2p\util.c
939 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
940
941..\x2p\walk$(o) : ..\x2p\walk.c
942 $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
943
944$(X2P) : $(MINIPERL) $(X2P_OBJ)
945 $(MINIPERL) ..\x2p\find2perl.PL
946 $(MINIPERL) ..\x2p\s2p.PL
947 $(LINK32) -subsystem:console -out:$@ @<<
948 $(LINK_FLAGS) $(LIBFILES) $(X2P_OBJ)
949<<
950
951perlmain.c : runperl.c
952 copy runperl.c perlmain.c
953
954perlmain$(o) : perlmain.c
955 $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c
956
957$(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
958 $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \
959 $(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
960 copy $(PERLEXE) $(WPERLEXE)
961 $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
962 copy splittree.pl ..
963 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
964
965$(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
966 if not exist $(AUTODIR) mkdir $(AUTODIR)
967 cd $(EXTDIR)\$(*B)
968 ..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
969 ..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
970 cd ..\..\win32
971 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
972 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
973 cd $(EXTDIR)\$(*B)
974 $(XSUBPP) dl_win32.xs > $(*B).c
975 cd ..\..\win32
976
977$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
978 copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
979
980#----------------------------------------------------------------------------------
981Extensions: buildext.pl $(PERLDEP) $(CONFIGPM)
982 $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR)
983
984Extensions_clean:
985 -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
986
987#----------------------------------------------------------------------------------
988
989doc: $(PERLEXE)
990 $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
991 --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \
992 --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
993
994utils: $(PERLEXE) $(X2P)
995 cd ..\utils
996 $(MAKE) PERL=$(MINIPERL)
997 cd ..\pod
096852fc
NC
998 copy ..\README.aix .\perlaix.pod
999 copy ..\README.amiga .\perlamiga.pod
1000 copy ..\README.apollo .\perlapollo.pod
1001 copy ..\README.beos .\perlbeos.pod
1002 copy ..\README.bs2000 .\perlbs2000.pod
1003 copy ..\README.ce .\perlce.pod
1004 copy ..\README.cn .\perlcn.pod
1005 copy ..\README.cygwin .\perlcygwin.pod
1006 copy ..\README.dgux .\perldgux.pod
1007 copy ..\README.dos .\perldos.pod
1008 copy ..\README.epoc .\perlepoc.pod
1009 copy ..\README.freebsd .\perlfreebsd.pod
1010 copy ..\README.hpux .\perlhpux.pod
1011 copy ..\README.hurd .\perlhurd.pod
1012 copy ..\README.irix .\perlirix.pod
1013 copy ..\README.jp .\perljp.pod
1014 copy ..\README.ko .\perlko.pod
1015 copy ..\README.machten .\perlmachten.pod
1016 copy ..\README.macos .\perlmacos.pod
1017 copy ..\README.macosx .\perlmacosx.pod
1018 copy ..\README.mint .\perlmint.pod
1019 copy ..\README.mpeix .\perlmpeix.pod
1020 copy ..\README.netware .\perlnetware.pod
1021 copy ..\README.os2 .\perlos2.pod
1022 copy ..\README.os390 .\perlos390.pod
1023 copy ..\README.os400 .\perlos400.pod
1024 copy ..\README.plan9 .\perlplan9.pod
1025 copy ..\README.qnx .\perlqnx.pod
1026 copy ..\README.solaris .\perlsolaris.pod
1027 copy ..\README.tru64 .\perltru64.pod
1028 copy ..\README.tw .\perltw.pod
1029 copy ..\README.uts .\perluts.pod
1030 copy ..\README.vmesa .\perlvmesa.pod
1031 copy ..\README.vms .\perlvms.pod
1032 copy ..\README.vos .\perlvos.pod
1033 copy ..\README.win32 .\perlwin32.pod
caec3c99
NC
1034 copy ..\vms\perlvms.pod .\perlvms.pod
1035 $(MAKE) -f ..\win32\pod.mak converters
1036 cd ..\lib
1037 $(PERLEXE) lib_pm.PL
1038 cd ..\win32
1039 $(PERLEXE) $(PL2BAT) $(UTILS)
1040
1041# the doubled rmdir calls are needed because older cmd shells
1042# don't understand /q
1043distclean: clean
1044 -del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
1045 $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1046 -del /f *.def *.map
1047 -del /f $(EXTENSION_DLL)
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
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
1060 -del /f $(LIBDIR)\Filter\Util\Call.pm
1061 -del /f $(LIBDIR)\Digest\MD5.pm
1062 -del /f $(LIBDIR)\PerlIO\scalar.pm
1063 -del /f $(LIBDIR)\PerlIO\via.pm
1064 -del /f $(LIBDIR)\MIME\Base64.pm
1065 -del /f $(LIBDIR)\MIME\QuotedPrint.pm
1066 -del /f $(LIBDIR)\List\Util.pm
1067 -del /f $(LIBDIR)\Scalar\Util.pm
1068 -del /f $(LIBDIR)\Time\HiRes.pm
1069 -del /f $(LIBDIR)\XS\APItest.pm
1070 -del /f $(LIBDIR)\XS\Typemap.pm
1071 -del /f $(LIBDIR)\Unicode\Normalize.pm
1072 -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
1073 -if exist $(LIBDIR)\IO rmdir /s $(LIBDIR)\IO
1074 -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
1075 -if exist $(LIBDIR)\B rmdir /s $(LIBDIR)\B
1076 -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
1077 -if exist $(LIBDIR)\Data rmdir /s $(LIBDIR)\Data
1078 -if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
1079 -if exist $(LIBDIR)\Filter\Util rmdir /s $(LIBDIR)\Filter\Util
1080 -if exist $(LIBDIR)\Digest rmdir /s /q $(LIBDIR)\Digest
1081 -if exist $(LIBDIR)\Digest rmdir /s $(LIBDIR)\Digest
1082 -if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
1083 -if exist $(LIBDIR)\MIME rmdir /s $(LIBDIR)\MIME
1084 -if exist $(LIBDIR)\List rmdir /s /q $(LIBDIR)\List
1085 -if exist $(LIBDIR)\List rmdir /s $(LIBDIR)\List
1086 -if exist $(LIBDIR)\Scalar rmdir /s /q $(LIBDIR)\Scalar
1087 -if exist $(LIBDIR)\Scalar rmdir /s $(LIBDIR)\Scalar
1088 -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
1089 -if exist $(LIBDIR)\XS rmdir /s $(LIBDIR)\XS
1090 cd $(PODDIR)
1091 -del /f *.html *.bat checkpods \
1092 perlaix.pod perlamiga.pod perlapollo.pod perlbeos.pod \
1093 perlbs2000.pod perlce.pod perlcygwin.pod perldgux.pod \
1094 perldos.pod perlepoc.pod perlfreebsd.pod perlhurd.pod \
1095 perlhpux.pod perlirix.pod perlmachten.pod \
1096 perlmacos.pod perlmint.pod perlmpeix.pod perlnetware.pod \
1097 perlos2.pod perlos390.pod perlos400.pod perlplan9.pod \
1098 perlqnx.pod perlsolaris.pod perltru64.pod perluts.pod \
1099 perlvmesa.pod perlvms.pod perlvos.pod \
1100 perlwin32.pod pod2html pod2latex pod2man pod2text pod2usage \
1101 podchecker podselect
1102 cd ..\utils
1103 -del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs perldoc perlivp \
385df56d 1104 dprofpp perlcc libnetcfg enc2xs piconv cpan xsubpp instmodsh
caec3c99
NC
1105 -del /f *.bat
1106 cd ..\win32
1107 cd ..\x2p
1108 -del /f find2perl s2p psed
1109 -del /f *.bat
1110 cd ..\win32
1111 -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
1112 -del /f $(CONFIGPM)
1113 -del /f bin\*.bat
1114 cd ..
1115 -del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
1116 cd win32
1117 cd $(EXTDIR)
1118 -del /s *.def Makefile Makefile.old
1119 cd ..\win32
1120 -if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
1121 -if exist $(AUTODIR) rmdir /s $(AUTODIR)
1122 -if exist $(COREDIR) rmdir /s /q $(COREDIR)
1123 -if exist $(COREDIR) rmdir /s $(COREDIR)
1124
1125install : all installbare installhtml
1126
1127installbare : utils
1128 $(PERLEXE) ..\installperl
1129 if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
1130 $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
1131 $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
1132
1133installhtml : doc
1134 $(RCOPY) html\*.* $(INST_HTML)\*.*
1135
1136inst_lib : $(CONFIGPM)
1137 copy splittree.pl ..
1138 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1139 $(RCOPY) ..\lib $(INST_LIB)\*.*
1140
1141minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
1142 $(XCOPY) $(MINIPERL) ..\t\perl.exe
1143 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1144 attrib -r ..\t\*.*
1145 copy test ..\t
1146 cd ..\t
1147 $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
1148 cd ..\win32
1149
1150test-prep : all utils
1151 $(XCOPY) $(PERLEXE) ..\t\$(NULL)
1152 $(XCOPY) $(PERLDLL) ..\t\$(NULL)
1153 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1154
1155test : test-prep
1156 cd ..\t
1157 $(PERLEXE) -I..\lib harness
1158 cd ..\win32
1159
1160test-notty : test-prep
1161 set PERL_SKIP_TTY_TEST=1
1162 cd ..\t
1163 $(PERLEXE) -I..\lib harness
1164 cd ..\win32
1165
1166_test :
1167 $(XCOPY) $(PERLEXE) ..\t\$(NULL)
1168 $(XCOPY) $(PERLDLL) ..\t\$(NULL)
1169 $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
1170 cd ..\t
1171 $(PERLEXE) -I..\lib harness
1172 cd ..\win32
1173
1174clean : Extensions_clean
1175 -@$(DEL) miniperlmain$(o)
1176 -@$(DEL) $(MINIPERL)
1177 -@$(DEL) perlglob$(o)
1178 -@$(DEL) perlmain$(o)
1179 -@$(DEL) config.w32
1180 -@$(DEL) config.h
1181 -@$(DEL) $(GLOBEXE)
1182 -@$(DEL) $(PERLEXE)
1183 -@$(DEL) $(WPERLEXE)
1184 -@$(DEL) $(PERLDLL)
1185 -@$(DEL) $(CORE_OBJ)
1186 -if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
1187 -if exist $(MINIDIR) rmdir /s $(MINIDIR)
1188 -@$(DEL) $(WIN32_OBJ)
1189 -@$(DEL) $(DLL_OBJ)
1190 -@$(DEL) $(X2P_OBJ)
1191 -@$(DEL) ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1192 -@$(DEL) ..\t\*.exe ..\t\*.dll ..\t\*.bat
1193 -@$(DEL) ..\x2p\*.exe ..\x2p\*.bat
1194 -@$(DEL) *.ilk
1195 -@$(DEL) *.pdb
1196
1197# Handy way to run perlbug -ok without having to install and run the
1198# installed perlbug. We don't re-run the tests here - we trust the user.
1199# Please *don't* use this unless all tests pass.
1200# If you want to report test failures, use "nmake nok" instead.
1201ok: utils
1202 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)"
1203
1204okfile: utils
1205 $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok
1206
1207nok: utils
1208 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)"
1209
1210nokfile: utils
1211 $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok