X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/4e35701fd273ba8d0093a29660dee38a92408e9b..8d9b2e3c6958e5856b03a00694b8ae02817ed002:/win32/Makefile diff --git a/win32/Makefile b/win32/Makefile index 1bc08ff..66d2a33 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1,303 +1,577 @@ # -# Makefile to build perl on Windowns NT using Microsoft NMAKE. -# +# Makefile to build perl on Windows NT using Microsoft NMAKE. # # This is set up to build a perl.exe that runs off a shared library # (perl.dll). Also makes individual DLLs for the XS extensions. # +## +## Build configuration. Edit the values below to suit your needs. +## + # # Set these to wherever you want "nmake install" to put your # newly built perl. -INST_DRV=c: -INST_TOP=$(INST_DRV)\perl -BUILDOPT=-DUSE_THREADS -TP +# +INST_DRV = c: +INST_TOP = $(INST_DRV)\perl + +# +# Comment this out if you DON'T want your perl installation to be versioned. +# This means that the new installation will overwrite any files from the +# old installation at the same INST_TOP location. Leaving it enabled is +# the safest route, as perl adds the extra version directory to all the +# locations it installs files to. If you disable it, an alternative +# versioned installation can be obtained by setting INST_TOP above to a +# path that includes an arbitrary version string. +# +INST_VER = \5.00471 + +# +# uncomment to enable threads-capabilities +# +#USE_THREADS = define # # uncomment next line if you are using Visual C++ 2.x -#CCTYPE=MSVC20 +# +#CCTYPE = MSVC20 + +# +# uncomment next line if you want to use the perl object +# Currently, this cannot be enabled if you ask for threads above +# +#OBJECT = -DPERL_OBJECT # # uncomment next line if you want debug version of perl (big,slow) -CFG=Debug +# +#CFG = Debug + +# +# uncomment to enable use of PerlCRT.DLL. Highly recommended. It has +# patches that fix known bugs in MSCVRT.DLL. You will need to download it +# from: and follow the directions in the package to install. +# +#USE_PERLCRT = define + +# +# uncomment to enable linking with setargv.obj under the Visual C +# compiler. Setting this options enables perl to expand wildcards in +# arguments, but it may be harder to use alternate methods like +# File::DosGlob that are more powerful. This option is supported only with +# Visual C. +# +#USE_SETARGV = define + +# +# if you have the source for des_fcrypt(), uncomment this and make sure the +# file exists (see README.win32). File should be located in the same +# directory as this file. +# +#CRYPT_SRC = des_fcrypt.c + +# +# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a +# library, uncomment this, and make sure the library exists (see README.win32) +# Specify the full pathname of the library. +# +#CRYPT_LIB = des_fcrypt.lib + +# +# set this if you wish to use perl's malloc +# WARNING: Turning this on/off WILL break binary compatibility with extensions +# you may have compiled with/without it. Be prepared to recompile all +# extensions if you change the default. Currently, this cannot be enabled +# if you ask for PERL_OBJECT above. +# +#PERL_MALLOC = define # # set the install locations of the compiler include/libraries -#CCHOME = f:\msvc20 -CCHOME = $(MSVCDIR) -CCINCDIR = $(CCHOME)\include -CCLIBDIR = $(CCHOME)\lib +# +#CCHOME = f:\msvc20 +CCHOME = $(MSVCDIR) +CCINCDIR = $(CCHOME)\include +CCLIBDIR = $(CCHOME)\lib + +# +# specify space-separated list of extra directories to look for libraries +# +EXTRALIBDIRS = # # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) -#EMAIL = +# +#EMAIL = + +## +## Build configuration ends. +## ##################### CHANGE THESE ONLY IF YOU MUST ##################### +!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == "" +D_CRYPT = undef +!ELSE +D_CRYPT = define +CRYPT_FLAG = -DHAVE_DES_FCRYPT +!ENDIF + +!IF "$(OBJECT)" != "" +PERL_MALLOC = undef +!ENDIF + +!IF "$(PERL_MALLOC)" == "" +PERL_MALLOC = undef +!ENDIF + +!IF "$(USE_THREADS)" == "" +USE_THREADS = undef +!ENDIF + +#BUILDOPT = -DMULTIPLICITY +#BUILDOPT = -DPERL_GLOBAL_STRUCT -DMULTIPLICITY +# -DUSE_PERLIO -D__STDC__=1 -DUSE_SFIO -DI_SFIO -I\sfio97\include + +!IF "$(PROCESSOR_ARCHITECTURE)" == "" +PROCESSOR_ARCHITECTURE = x86 +!ENDIF + +!IF "$(USE_THREADS)" == "define" +ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread +!ELSE +ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE) +!ENDIF + +ARCHDIR = ..\lib\$(ARCHNAME) +COREDIR = ..\lib\CORE +AUTODIR = ..\lib\auto + # # Programs to compile, build .lib files and link # -CC=cl.exe -LINK32=link.exe -LIB32=$(LINK32) -lib +CC = cl.exe +LINK32 = link.exe +LIB32 = $(LINK32) -lib + # # Options # -!IF "$(RUNTIME)" == "" -RUNTIME = -MD + +RUNTIME = -MD +INCLUDES = -I.\include -I. -I.. +#PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX +DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(BUILDOPT) $(CRYPT_FLAG) +LOCDEFS = -DPERLDLL -DPERL_CORE +SUBSYS = console +CXX_FLAG = -TP -GX + +!IF "$(USE_PERLCRT)" == "" +! IF "$(CFG)" == "Debug" +PERLCRTLIBC = msvcrtd.lib +! ELSE +PERLCRTLIBC = msvcrt.lib +! ENDIF +!ELSE +! IF "$(CFG)" == "Debug" +PERLCRTLIBC = PerlCRTD.lib +! ELSE +PERLCRTLIBC = PerlCRT.lib +! ENDIF !ENDIF -INCLUDES = -I.\include -I. -I.. -#PCHFLAGS = -Fp"$(INTDIR)/modules.pch" -YX -DEFINES = -DWIN32 -D_CONSOLE $(BUILDOPT) -LOCDEFS = -DPERLDLL -SUBSYS = console !IF "$(RUNTIME)" == "-MD" -LIBC = msvcrt.lib -WINIOMAYBE = +LIBC = $(PERLCRTLIBC) !ELSE -LIBC = libcmt.lib -WINIOMAYBE = win32io.obj +LIBC = libcmt.lib !ENDIF !IF "$(CFG)" == "Debug" ! IF "$(CCTYPE)" == "MSVC20" -OPTIMIZE = -Od $(RUNTIME) -Z7 -D_DEBUG +OPTIMIZE = -Od $(RUNTIME) -Z7 -D_DEBUG -DDEBUGGING ! ELSE -OPTIMIZE = -Od $(RUNTIME)d -Z7 -D_DEBUG +OPTIMIZE = -Od $(RUNTIME)d -Zi -D_DEBUG -DDEBUGGING ! ENDIF -LINK_DBG = -debug -pdb:none +LINK_DBG = -debug -pdb:none !ELSE ! IF "$(CCTYPE)" == "MSVC20" -OPTIMIZE = -Od $(RUNTIME) -DNDEBUG +OPTIMIZE = -Od $(RUNTIME) -DNDEBUG ! ELSE -OPTIMIZE = -Od $(RUNTIME) -DNDEBUG +OPTIMIZE = -Od $(RUNTIME) -DNDEBUG ! ENDIF -LINK_DBG = -release +LINK_DBG = -release +!ENDIF + +!IF "$(OBJECT)" != "" +OPTIMIZE = $(OPTIMIZE) $(CXX_FLAG) !ENDIF -# we don't add LIBC here, the compiler do it based on -MD/-MT -LIBFILES = oldnames.lib kernel32.lib user32.lib gdi32.lib \ - winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \ - oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \ - version.lib odbc32.lib odbccp32.lib +LIBBASEFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \ + winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \ + oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \ + version.lib odbc32.lib odbccp32.lib + +# we add LIBC here, since we may be using PerlCRT.dll +LIBFILES = $(LIBBASEFILES) $(LIBC) -CFLAGS = -nologo -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) $(PCHFLAGS) $(OPTIMIZE) -LINK_FLAGS = -nologo $(LIBFILES) $(LINK_DBG) -machine:I386 -OBJOUT_FLAG = -Fo +CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \ + $(PCHFLAGS) $(OPTIMIZE) +LINK_FLAGS = -nologo -nodefaultlib $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE) +OBJOUT_FLAG = -Fo +EXEOUT_FLAG = -Fe + +CFLAGS_O = $(CFLAGS) $(OBJECT) #################### do not edit below this line ####################### ############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ############## +o = .obj + # # Rules # -.SUFFIXES : -.SUFFIXES : .c .obj .dll .lib .exe -.c.obj: - $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $< +.SUFFIXES : .c $(o) .dll .lib .exe + +.c$(o): + $(CC) -c -I$( $(GLOBBAT) +$(GLOBEXE) : perlglob$(o) + $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \ + perlglob$(o) setargv$(o) -perlglob.obj : perlglob.c - -..\miniperlmain.obj : ..\miniperlmain.c $(CORE_H) +perlglob$(o) : perlglob.c config.w32 : $(CFGSH_TMPL) copy $(CFGSH_TMPL) config.w32 @@ -305,41 +579,67 @@ config.w32 : $(CFGSH_TMPL) .\config.h : $(CFGH_TMPL) -del /f config.h copy $(CFGH_TMPL) config.h - ..\config.sh : config.w32 $(MINIPERL) config_sh.PL - $(MINIPERL) -I..\lib config_sh.PL "INST_DRV=$(INST_DRV)" \ - "INST_TOP=$(INST_TOP)" "cc=$(CC)" "ccflags=$(OPTIMIZE) $(DEFINES)" \ - "cf_email=$(EMAIL)" "libs=$(LIBFILES)" "incpath=$(CCINCDIR)" \ - "libpth=$(CCLIBDIR)" "libc=$(LIBC)" \ - config.w32 > ..\config.sh + $(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) config.w32 > ..\config.sh + +# this target is for when changes to the main config.sh happen +# edit config.{b,v,g}c and make this target once for each supported +# compiler (e.g. `dmake CCTYPE=BORLAND regen_config_h`) +regen_config_h: + perl config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh + cd .. + -del /f perl.exe + perl configpm + cd win32 + -del /f $(CFGH_TMPL) + -mkdir ..\lib\CORE + -perl -I..\lib config_h.PL "INST_VER=$(INST_VER)" + rename config.h $(CFGH_TMPL) $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl cd .. && miniperl configpm if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) - $(XCOPY) ..\*.h ..\lib\CORE\*.* - $(XCOPY) *.h ..\lib\CORE\*.* - $(RCOPY) include ..\lib\CORE\*.* - $(MINIPERL) -I..\lib config_h.PL || $(MAKE) CCTYPE=$(CCTYPE) \ - RUNTIME=$(RUNTIME) CFG=$(CFG) $(CONFIGPM) - -$(MINIPERL) : ..\miniperlmain.obj $(CORE_OBJ) $(WIN32_OBJ) + $(XCOPY) ..\*.h $(COREDIR)\*.* + $(XCOPY) *.h $(COREDIR)\*.* + $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* + $(RCOPY) include $(COREDIR)\*.* + $(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \ + || $(MAKE) $(MAKEFLAGS) $(CONFIGPM) + +$(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(LINK32) -subsystem:console -out:$@ @<< - $(LINK_FLAGS) ..\miniperlmain.obj $(CORE_OBJ) $(WIN32_OBJ) + $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ) << -$(WIN32_OBJ) : $(CORE_H) -$(CORE_OBJ) : $(CORE_H) -$(DLL_OBJ) : $(CORE_H) +$(MINIDIR) : + if not exist "$(MINIDIR)" mkdir "$(MINIDIR)" + +$(MINICORE_OBJ) : $(CORE_NOCFG_H) + $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ ..\$(*F).c + +$(MINIWIN32_OBJ) : $(CORE_NOCFG_H) + $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $(*F).c -perldll.def : $(MINIPERL) $(CONFIGPM) - $(MINIPERL) -w makedef.pl $(DEFINES) $(CCTYPE) > perldll.def +# 1. we don't want to rebuild miniperl.exe when config.h changes +# 2. we don't want to rebuild miniperl.exe with non-default config.h +$(MINI_OBJ) : $(CORE_NOCFG_H) -$(PERLDLL): perldll.def $(CORE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) +$(WIN32_OBJ) : $(CORE_H) +$(CORE_OBJ) : $(CORE_H) +$(DLL_OBJ) : $(CORE_H) +$(PERL95_OBJ) : $(CORE_H) +$(X2P_OBJ) : $(CORE_H) + +perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym makedef.pl + $(MINIPERL) -w makedef.pl $(OPTIMIZE) $(DEFINES) $(OBJECT) \ + CCTYPE=$(CCTYPE) > perldll.def + +$(PERLDLL): perldll.def $(PERLDLL_OBJ) $(LINK32) -dll -def:perldll.def -out:$@ @<< - $(LINK_FLAGS) $(CORE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) + $(LINK_FLAGS) $(LIBFILES) $(PERLDLL_OBJ) << - $(XCOPY) $(PERLIMPLIB) ..\lib\CORE + $(XCOPY) $(PERLIMPLIB) $(COREDIR) perl.def : $(MINIPERL) makeperldef.pl $(MINIPERL) -I..\lib makeperldef.pl $(NULL) > perl.def @@ -347,54 +647,105 @@ perl.def : $(MINIPERL) makeperldef.pl $(MINIMOD) : $(MINIPERL) ..\minimod.pl cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm +..\x2p\a2p$(o) : ..\x2p\a2p.c + $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c + +..\x2p\hash$(o) : ..\x2p\hash.c + $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c + +..\x2p\str$(o) : ..\x2p\str.c + $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c + +..\x2p\util$(o) : ..\x2p\util.c + $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c + +..\x2p\walk$(o) : ..\x2p\walk.c + $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c + +$(X2P) : $(MINIPERL) $(X2P_OBJ) + $(MINIPERL) ..\x2p\find2perl.PL + $(MINIPERL) ..\x2p\s2p.PL + $(LINK32) -subsystem:console -out:$@ @<< + $(LINK_FLAGS) $(LIBFILES) $(X2P_OBJ) +<< + perlmain.c : runperl.c copy runperl.c perlmain.c -perlmain.obj : perlmain.c - $(CC) $(CFLAGS) -UPERLDLL -c perlmain.c +perlmain$(o) : perlmain.c + $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c -$(PERLEXE): $(PERLDLL) $(CONFIGPM) perlmain.obj - $(LINK32) -subsystem:console -out:perl.exe $(LINK_FLAGS) \ - perlmain.obj $(WINIOMAYBE) $(PERLIMPLIB) - copy perl.exe $@ - del perl.exe +$(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) + $(LINK32) -subsystem:console -out:$@ $(LINK_FLAGS) $(LIBFILES) \ + $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) copy splittree.pl .. - $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto" - attrib -r ..\t\*.* - copy test ..\t + $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) + +!IF "$(USE_PERLCRT)" == "" perl95.c : runperl.c copy runperl.c perl95.c -perl95.obj : perl95.c - $(CC) $(CFLAGS) -MT -UPERLDLL -c perl95.c +perl95$(o) : perl95.c + $(CC) $(CFLAGS_O) -MT -UPERLDLL -DWIN95FIX -c perl95.c -win32iomt.obj : win32io.c - $(CC) $(CFLAGS) -MT -c $(OBJOUT_FLAG)win32iomt.obj win32io.c +win32sckmt$(o) : win32sck.c + $(CC) $(CFLAGS_O) -MT -UPERLDLL -DWIN95FIX -c \ + $(OBJOUT_FLAG)win32sckmt$(o) win32sck.c -win32sckmt.obj : win32sck.c - $(CC) $(CFLAGS) -MT -c $(OBJOUT_FLAG)win32sckmt.obj win32sck.c +win32mt$(o) : win32.c + $(CC) $(CFLAGS_O) -MT -UPERLDLL -DWIN95FIX -c \ + $(OBJOUT_FLAG)win32mt$(o) win32.c -win32mt.obj : win32.c - $(CC) $(CFLAGS) -MT -c $(OBJOUT_FLAG)win32mt.obj win32.c +DynaLoadmt$(o) : $(DYNALOADER).c + $(CC) $(CFLAGS_O) -MT -UPERLDLL -DWIN95FIX -c \ + $(OBJOUT_FLAG)DynaLoadmt$(o) $(DYNALOADER).c $(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ) - $(LINK32) -subsystem:console -out:perl95.exe $(LINK_FLAGS) \ - $(PERL95_OBJ) $(PERLIMPLIB) - copy perl95.exe $@ - del perl95.exe + $(LINK32) -subsystem:console -nodefaultlib -out:$@ $(LINK_FLAGS) \ + $(LIBBASEFILES) $(PERL95_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) \ + libcmt.lib + +!ENDIF $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) - if not exist ..\lib\auto md ..\lib\auto + if not exist $(AUTODIR) mkdir $(AUTODIR) + cd $(EXTDIR)\$(*B) + ..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL + cd ..\..\win32 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL) cd $(EXTDIR)\$(*B) $(XSUBPP) dl_win32.xs > $(*B).c cd ..\..\win32 +!IF "$(OBJECT)" == "-DPERL_OBJECT" +PerlCAPI.cpp : $(MINIPERL) + $(MINIPERL) GenCAPI.pl $(COREDIR) + +PerlCAPI$(o) : PerlCAPI.cpp + $(CC) $(CFLAGS_O) $(RUNTIME) -UPERLDLL -c \ + $(OBJOUT_FLAG)PerlCAPI$(o) PerlCAPI.cpp + +$(CAPILIB) : PerlCAPI.cpp PerlCAPI$(o) + lib /OUT:$(CAPILIB) PerlCAPI$(o) +!ENDIF + $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs -$(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs +$(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs + cd $(EXTDIR)\Data\$(*B) + ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\..\win32 + +$(RE_DLL): $(PERLEXE) $(RE).xs + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\win32 + +$(B_DLL): $(PERLEXE) $(B).xs cd $(EXTDIR)\$(*B) ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl $(MAKE) @@ -406,8 +757,19 @@ $(THREAD_DLL): $(PERLEXE) $(THREAD).xs $(MAKE) cd ..\..\win32 +$(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\win32 -$(IO_DLL): $(PERLEXE) $(CONFIGPM) $(IO).xs +$(POSIX_DLL): $(PERLEXE) $(POSIX).xs + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\win32 + +$(IO_DLL): $(PERLEXE) $(IO).xs cd $(EXTDIR)\$(*B) ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl $(MAKE) @@ -437,65 +799,83 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs $(MAKE) cd ..\..\win32 +$(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\win32 + doc: $(PERLEXE) - cd ..\pod - $(MAKE) -f ..\win32\pod.mak checkpods pod2html pod2latex \ - pod2man pod2text - $(XCOPY) *.bat ..\win32\bin\*.* - cd ..\win32 copy ..\README.win32 ..\pod\perlwin32.pod - $(PERLEXE) ..\installhtml --podroot=.. --htmldir=./html \ - --podpath=pod:lib:ext:utils --htmlroot="//$(INST_HTML::=|)" \ + $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \ + --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \ --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse -utils: $(PERLEXE) +utils: $(PERLEXE) $(X2P) cd ..\utils - nmake PERL=$(MINIPERL) - $(PERLEXE) ..\win32\$(PL2BAT) h2ph splain perlbug pl2pm c2ph - $(PERLEXE) ..\win32\$(PL2BAT) h2xs perldoc pstruct - $(XCOPY) *.bat ..\win32\bin\*.* + $(MAKE) PERL=$(MINIPERL) + cd ..\pod + $(MAKE) -f ..\win32\pod.mak converters cd ..\win32 - $(PERLEXE) $(PL2BAT) bin\network.pl bin\www.pl bin\runperl.pl \ - bin\pl2bat.pl + $(PERLEXE) $(PL2BAT) $(UTILS) distclean: clean - -del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \ + -del /f $(MINIPERL) $(PERLEXE) $(PERL95EXE) $(PERLDLL) $(GLOBEXE) \ $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD) -del /f *.def *.map - -del /f $(SOCKET_DLL) $(IO_DLL) $(SDBM_FILE_DLL) $(FCNTL_DLL) \ - $(OPCODE_DLL) $(ATTRS_DLL) $(THREAD_DLL) - -del /f $(SOCKET).c $(IO).c $(SDBM_FILE).c $(FCNTL).c $(OPCODE).c \ - $(DYNALOADER).c $(ATTRS).c $(THREAD).c + -del /f $(EXTENSION_DLL) $(EXTENSION_PM) + -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm + -del /f $(EXTDIR)\DynaLoader\dl_win32.xs + -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm + -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm + -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm + -del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm + -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm + -del /f $(LIBDIR)\Data\Dumper.pm + -rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO + -rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread + -rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B + -rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data -del /f $(PODDIR)\*.html -del /f $(PODDIR)\*.bat - -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c \ - config.h.new perl95.c + cd ..\utils + -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc pstruct + -del /f *.bat + cd ..\win32 + cd ..\x2p + -del /f find2perl s2p + -del /f *.bat + cd ..\win32 + -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new + -del /f $(CONFIGPM) + -del /f perl95.c -del /f bin\*.bat - -rmdir /s /q ..\lib\auto - -rmdir /s /q ..\lib\CORE cd $(EXTDIR) - -del /s *.lib *.def *.map *.bs Makefile *.obj pm_to_blib + -del /s *.lib *.def *.map *.bs Makefile *$(o) pm_to_blib cd ..\win32 + -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR) + -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR) -install : all doc utils - if not exist $(INST_TOP) mkdir $(INST_TOP) - echo I $(INST_TOP) L $(LIBDIR) - $(XCOPY) $(PERLEXE) $(INST_BIN)\*.* +install : all installbare installhtml + +installbare : utils + $(PERLEXE) ..\installperl +!IF "$(USE_PERLCRT)" == "" $(XCOPY) $(PERL95EXE) $(INST_BIN)\*.* +!ENDIF $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* - $(XCOPY) $(PERLDLL) $(INST_BIN)\*.* - $(XCOPY) bin\*.bat $(INST_BIN)\*.* - $(RCOPY) ..\lib $(INST_LIB)\*.* - $(XCOPY) ..\pod\*.bat $(INST_BIN)\*.* - $(XCOPY) ..\pod\*.pod $(INST_POD)\*.* + $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.* + $(XCOPY) bin\network.pl $(INST_LIB)\*.* + +installhtml : doc $(RCOPY) html\*.* $(INST_HTML)\*.* inst_lib : $(CONFIGPM) copy splittree.pl .. - $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto" + $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) $(RCOPY) ..\lib $(INST_LIB)\*.* -minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) +minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils $(XCOPY) $(MINIPERL) ..\t\perl.exe $(XCOPY) $(GLOBEXE) ..\t\$(NULL) attrib -r ..\t\*.* @@ -504,7 +884,7 @@ minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t cd ..\win32 -test-prep : all +test-prep : all utils $(XCOPY) $(PERLEXE) ..\t\$(NULL) $(XCOPY) $(PERLDLL) ..\t\$(NULL) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) @@ -521,21 +901,24 @@ test-notty : test-prep cd ..\win32 clean : - -@erase miniperlmain.obj + -@erase miniperlmain$(o) -@erase $(MINIPERL) - -@erase perlglob.obj - -@erase perlmain.obj + -@erase perlglob$(o) + -@erase perlmain$(o) -@erase config.w32 -@erase /f config.h + -@erase PerlCAPI.cpp -@erase $(GLOBEXE) -@erase $(PERLEXE) -@erase $(PERLDLL) -@erase $(CORE_OBJ) + -@erase $(CAPILIB) + -rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR) -@erase $(WIN32_OBJ) -@erase $(DLL_OBJ) - -@erase ..\*.obj ..\*.lib ..\*.exp *.obj *.lib *.exp + -@erase $(X2P_OBJ) + -@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp -@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat + -@erase ..\x2p\*.exe ..\x2p\*.bat -@erase *.ilk -@erase *.pdb - -