--- mstools/mfc/src/makefile 2018/08/09 18:22:45 1.1.1.2 +++ mstools/mfc/src/makefile 2018/08/09 18:25:03 1.1.1.3 @@ -7,10 +7,10 @@ # 'Options' are one of each of: # "MODEL=M" (defaults to M) # Any of the following models are accepted: S (small), M (medium), -# C (compact), or L (large). -# "TARGET=N" (defaults to N) +# C (compact), L (large) or N (Windows NT). +# "TARGET=W" (defaults to W) # Any of the following platforms are accepted: R (real-mode DOS), -# W (windows), N (Windows NT). +# or W (windows). # "DLL" (defaults to 0) # If this item is 1, a DLL version of the library is generated. # If this item is 0, then a normal library is generated. @@ -44,13 +44,16 @@ ############################################################################# # Standard tools -!if "$(MODEL)"=="n" || "$(MODEL)"=="N" -CPP=cl386 -CC=cl386 -MKNT=1 -!else CPP=cl CC=cl +CV=/Zi + +!if "$(MODEL)"=="n" || "$(MODEL)"=="N" +_NTWIN=1 +!else +!if "$(OS)"=="Windows_NT" +!error MODEL=N required for Windows NT +!endif !endif ############################################################################# @@ -63,7 +66,7 @@ DEBUG=1 !ifndef DLL DLL=0 !else -!ifndef MKNT +!ifndef _NTWIN # DLL must be large model, except under Windows/NT. MODEL=l !endif @@ -81,47 +84,27 @@ MODEL=M CODEVIEW=2 !endif -!if "$(CODEVIEW)" == "2" -#REVIEW_NT: Bug in compiler prevents PCH with CODEVIEW=2, don't use PCH... -!ifdef MKNT -NO_PCH=1 -!endif -!endif - !if "$(DEBUG)" != "0" DEBUGSUF=D DEBDEFS=/D_DEBUG -!ifdef MKNT -DEBOPTS=/Od -!if "$(CODEVIEW)" == "1" -DEBOPTS=/Od /Zi -!endif -!else +!ifndef _NTWIN DEBOPTS=/Odr /f +!else +DEBOPTS=/Od !endif !else DEBUGSUF= DEBDEFS= -!ifdef MKNT -DEBOPTS=/Os -!if "$(CODEVIEW)" == "1" -DEBOPTS=/Os /Zi -!endif -!else DEBOPTS=/Oxt !endif -!endif -#REVIEW_NT: $(FOO) + blah still doesn't work under NT nmake!! -!ifndef MKNT !if "$(CODEVIEW)" == "1" -DEBOPTS=$(DEBOPTS) /Zi -!endif +DEBOPTS=$(DEBOPTS) $(CV) !endif # CVEXTRA used for select CodeView information (main files only) !if "$(CODEVIEW)" == "2" -CVEXTRA=/Zi +CVEXTRA=$(CV) !endif !if "$(MODEL)"=="s" || "$(MODEL)"=="S" @@ -138,8 +121,7 @@ CL_MODEL=/AL !else !if "$(MODEL)"=="n" || "$(MODEL)"=="N" # Windows NT -CL_MODEL=/D_NTWIN /Di386 -MKNT=1 +CL_MODEL=/D_NTWIN !else !error MODEL must be one of S, M, L, or N @@ -150,12 +132,16 @@ MKNT=1 !endif !if "$(TARGET)"=="r" || "$(TARGET)"=="R" -!ifdef MKNT -TARGDEFS= +!ifndef _NTWIN +TARGDEFS=/D_DOS TARGOPTS= EXPFLAG= !else -TARGDEFS=/D_DOS +!if "$(CPU)" == "MIPS" +TARGDEFS=/D_MIPS_=1 +!else +TARGDEFS=/D_X86_=1 +!endif TARGOPTS= EXPFLAG= !endif @@ -163,14 +149,18 @@ EXPFLAG= !if "$(TARGET)"=="w" || "$(TARGET)"=="W" MKWIN=1 -!ifdef MKNT -TARGDEFS=/D_WINDOWS /DWINVER=0x030a -TARGOPTS=/G3d -EXPFLAG= -!else +!ifndef _NTWIN TARGDEFS=/D_WINDOWS TARGOPTS=/GA /GEs /G2 EXPFLAG=/GEe +!else +!if "$(CPU)" == "MIPS" +TARGDEFS=/D_WINDOWS /D_MIPS_=1 +!else +TARGDEFS=/D_WINDOWS /D_X86_=1 +!endif +TARGOPTS=/Gd +EXPFLAG= !endif !else @@ -181,14 +171,12 @@ EXPFLAG=/GEe !endif +# REVIEW_NT: workaround for NMAKE bug !if "$(OBJ)" == "" -D=$$$(MODEL)$(TARGET)$(DEBUGSUF) !if "$(DLL)" != "0" -D=$D.dll -!ifdef MKNT -#REVIEW_NT: above assign does not work... D=$$$(MODEL)$(TARGET)$(DEBUGSUF).dll -!endif +!else +D=$$$(MODEL)$(TARGET)$(DEBUGSUF) !endif !else D=$(OBJ) @@ -203,7 +191,7 @@ GOAL=$(MODEL)afxc$(TARGET)$(DEBUGSUF) !else # DLL library (SS!=DS) - only Large model supported (compact model is possible) GOAL=$(MODEL)afxd$(TARGET)$(DEBUGSUF) -!ifndef MKNT +!ifndef _NTWIN CL_MODEL=$(CL_MODEL)w TARGOPTS=/GD /G2 !else @@ -212,6 +200,7 @@ TARGOPTS=/D_WINDLL # /GD will define _WINDLL !endif + ############################################################################# # Library Components @@ -231,10 +220,10 @@ MISC=$D\string.obj $D\stringex.obj $D\ti WINDOWS=$D\window.obj $D\wingdi.obj $D\winctrl.obj $D\winstr.obj \ $D\winapp.obj $D\winmain.obj $D\winmenu.obj $D\winmdi.obj $D\trace.obj -!ifdef MKNT -WINEXTRAS=$D\winbtn.obj $D\windlgs.obj -!else +!ifndef _NTWIN WINEXTRAS=$D\penctrl.obj $D\winbtn.obj $D\windlgs.obj +!else +WINEXTRAS=$D\winbtn.obj $D\windlgs.obj !endif !if "$(DLL)" == "0" @@ -251,8 +240,6 @@ OBJS=$(OBJS) $(WINDOWS) $(WINEXTRAS) $(O !endif - - ############################################################################# # Set CPPFLAGS for use with .cpp.obj and .c.obj rules # Define rule for use with OBJ directory @@ -272,22 +259,14 @@ CFLAGS=$(CFLAGS) $(CL_STANDARD) $(CL_MOD .SUFFIXES : .cpp .cpp{$D}.obj: -!ifdef MKNT - $(CPP) $(CPPFLAGS) /c /Fo$@ $< -!else $(CPP) @<< $(CPPFLAGS) /c /Fo$@ $< << -!endif .c{$D}.obj: -!ifdef MKNT - $(CC) $(CFLAGS) /c /Fo$@ $< -!else $(CC) @<< $(CFLAGS) /c /Fo$@ $< << -!endif ############################################################################# # Goal to build @@ -338,16 +317,13 @@ $D\winapp.obj : winapp.cpp !endif !endif + ############################################################################# # Windows 3.0 loader export/version number $D\version.obj : version.cpp -!ifdef MKNT - $(CPP) $(CPPFLAGS) $(EXPFLAG) /c /Fo$D\version.obj version.cpp -!else $(CPP) @<< $(CPPFLAGS) $(EXPFLAG) /c /Fo$D\version.obj version.cpp << -!endif ############################################################################# @@ -355,9 +331,7 @@ $(CPPFLAGS) $(EXPFLAG) /c /Fo$D\version. ..\lib\$(GOAL).lib: $D $(OBJS) -erase $@ -!ifdef MKNT - coff -lib -out:..\lib\$(GOAL).lib $(OBJS) -!else +!ifndef _NTWIN lib /PAGESIZE:128 @<< ..\lib\$(GOAL).lib y @@ -365,6 +339,10 @@ $(OBJS) nul ; << +!else + lib32 @<< +-out:..\lib\$(GOAL).lib $(OBJS) +<< !endif #############################################################################