source: trunk/essentials/dev-lang/perl/win32/Makefile

Last change on this file was 3181, checked in by bird, 18 years ago

perl 5.8.8

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