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 1330