# makefile : Builds perl and perlglob on NT # # Usage: NMAKE option (build perl and perlglob) # or: NMAKE clean (erase all compiled files) # # option: DEBUG=[0|1] (DEBUG not defined is equivalent to DEBUG=1) # # On MIPS, Alpha and i86 platforms: # # The LIB environment variable should point to the # SDK libraries and then the VC libraries # # The INCLUDE environment variable should point to the # SDK includes and then the VC includes # # The path should include the VC binaries # # !include CPP = cl.exe CPPFLAGS = /W3 /DWIN32 /D_CONSOLE /I ".\inc" LINKFLAGS = -subsystem:console -incremental:yes !if "$(DEBUG)" != "0" OBJ_DIR=WinDebug CPPFLAGS=$(CPPFLAGS) /D_DEBUG /DDEBUGGING /Fd$(OBJ_DIR)\ /Fo$(OBJ_DIR)\ /FR"$(OBJ_DIR)/" /Od /Zi LINKFLAGS=$(LINKFLAGS) -debug:full LIBS=kernel32.lib wsock32.lib ole32.lib oleaut32.lib advapi32.lib shell32.lib user32.lib uuid.lib setargv.obj LIBSGLOB=kernel32.lib setargv.obj !else OBJ_DIR=WinRel CPPFLAGS=$(CPPFLAGS) /DNDEBUG /Fd$(OBJ_DIR)\ /Fo$(OBJ_DIR)\ /FR"$(OBJ_DIR)/" /O2 LINKFLAGS=$(LINKFLAGS) -debug:none LIBS=kernel32.lib wsock32.lib ole32.lib oleaut32.lib advapi32.lib shell32.lib user32.lib uuid.lib setargv.obj LIBSGLOB=kernel32.lib setargv.obj !endif ############################################################################# # Targets all: $(OBJ_DIR) ntt\perl.exe ntt\perlglob.exe $(OBJ_DIR): @if not exist $(OBJ_DIR) md $(OBJ_DIR) ############################################################################# # Special inference rules .c{$(OBJ_DIR)}.obj: $(CPP) $(CPPFLAGS) /c $< ############################################################################# # file list OBJS= \ $(OBJ_DIR)\AV.obj \ $(OBJ_DIR)\DEB.obj \ $(OBJ_DIR)\DOIO.obj \ $(OBJ_DIR)\DOOP.obj \ $(OBJ_DIR)\DUMP.obj \ $(OBJ_DIR)\GLOBALS.obj \ $(OBJ_DIR)\GV.obj \ $(OBJ_DIR)\HV.obj \ $(OBJ_DIR)\MG.obj \ $(OBJ_DIR)\main.obj \ $(OBJ_DIR)\NT.obj \ $(OBJ_DIR)\NTLIB.obj \ $(OBJ_DIR)\NTOLE.obj \ $(OBJ_DIR)\NTXS.obj \ $(OBJ_DIR)\OP.obj \ $(OBJ_DIR)\PERL.obj \ $(OBJ_DIR)\PERLY.obj \ $(OBJ_DIR)\PP.obj \ $(OBJ_DIR)\PP_CTL.obj \ $(OBJ_DIR)\PP_HOT.obj \ $(OBJ_DIR)\PP_SYS.obj \ $(OBJ_DIR)\REGCOMP.obj \ $(OBJ_DIR)\REGEXEC.obj \ $(OBJ_DIR)\RUN.obj \ $(OBJ_DIR)\SCOPE.obj \ $(OBJ_DIR)\SV.obj \ $(OBJ_DIR)\TAINT.obj \ $(OBJ_DIR)\TOKE.obj \ $(OBJ_DIR)\UTIL.obj OBJSGLOB= \ $(OBJ_DIR)\PERLGLOB.obj ############################################################################# # Final linking ntt\perl.exe: $(OBJ_DIR) $(OBJS) link $(LINKFLAGS) -out:ntt\perl.exe @<< $(OBJS) $(LIBS) $(RESOURCES) << ntt\perlglob.exe: $(OBJ_DIR) $(OBJSGLOB) link $(LINKFLAGS) -out:ntt\perlglob.exe @<< $(OBJSGLOB) $(LIBSGLOB) $(RESOURCES) << ############################################################################# # Note $(OBJ_DIR)\NTOLE.obj: \ ntole.cpp \ nt.h \ perl.h \ extern.h $(CPP) $(CPPFLAGS) /c ntole.cpp clean: -erase ntt\perl.exe -erase ntt\perlglob.exe -erase ntt\perl.ilk -erase ntt\perlglob.ilk -erase ntt\perl.pdb -erase ntt\perlglob.pdb -erase $(OBJ_DIR)\*.* #############################################################################