--- mstools/mfc/src/makefile 2018/08/09 18:21:01 1.1 +++ 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,9 +66,11 @@ DEBUG=1 !ifndef DLL DLL=0 !else -# DLL must be large model +!ifndef _NTWIN +# DLL must be large model, except under Windows/NT. MODEL=l !endif +!endif !ifndef TARGET TARGET=W @@ -82,38 +87,24 @@ CODEVIEW=2 !if "$(DEBUG)" != "0" DEBUGSUF=D DEBDEFS=/D_DEBUG -!ifdef MKNT -DEBOPTS=/Od /Zd -CVTOPTS=-g -!else +!ifndef _NTWIN DEBOPTS=/Odr /f -CVTOPTS= +!else +DEBOPTS=/Od !endif !else DEBUGSUF= DEBDEFS= -!ifdef MKNT -DEBOPTS=/Os /Zd -!else DEBOPTS=/Oxt !endif -!endif !if "$(CODEVIEW)" == "1" -!ifdef MKNT -DEBOPTS=$(DEBOPTS) /Zd -!else -DEBOPTS=$(DEBOPTS) /Zi -!endif +DEBOPTS=$(DEBOPTS) $(CV) !endif # CVEXTRA used for select CodeView information (main files only) !if "$(CODEVIEW)" == "2" -!ifdef MKNT -CVEXTRA=/Zd -!else -CVEXTRA=/Zi -!endif +CVEXTRA=$(CV) !endif !if "$(MODEL)"=="s" || "$(MODEL)"=="S" @@ -130,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 @@ -142,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 @@ -155,13 +149,18 @@ EXPFLAG= !if "$(TARGET)"=="w" || "$(TARGET)"=="W" MKWIN=1 -!ifdef MKNT -TARGDEFS=/D_WINDOWS /DWINVER=0x030a -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 @@ -172,10 +171,12 @@ EXPFLAG=/GEe !endif +# REVIEW_NT: workaround for NMAKE bug !if "$(OBJ)" == "" -D=$$$(MODEL)$(TARGET)$(DEBUGSUF) !if "$(DLL)" != "0" -D=$D.dll +D=$$$(MODEL)$(TARGET)$(DEBUGSUF).dll +!else +D=$$$(MODEL)$(TARGET)$(DEBUGSUF) !endif !else D=$(OBJ) @@ -190,11 +191,16 @@ GOAL=$(MODEL)afxc$(TARGET)$(DEBUGSUF) !else # DLL library (SS!=DS) - only Large model supported (compact model is possible) GOAL=$(MODEL)afxd$(TARGET)$(DEBUGSUF) +!ifndef _NTWIN CL_MODEL=$(CL_MODEL)w TARGOPTS=/GD /G2 +!else +TARGOPTS=/D_WINDLL +!endif # /GD will define _WINDLL !endif + ############################################################################# # Library Components @@ -214,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" @@ -234,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 @@ -255,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 @@ -297,7 +293,10 @@ HDRS=$(INC_DIR)\afx.h $(INC_DIR)\afx.inl $(INC_DIR)\afxole.h $(INC_DIR)\afxoleui.h $D\object.obj $(PCH_FILE): object.cpp $(HDRS) - $(CPP) /c /Yc /Fp$(PCH_FILE) $(CL_STANDARD) $(CL_MODEL) $(CL_OPT) $(DEFS) $(CVEXTRA) /c /Fo$D\object.obj object.cpp + $(CPP) /c /Yc /Fp$(PCH_FILE) $(CL_STANDARD) $(CL_MODEL) $(CL_OPT) $(DEFS) $(CVEXTRA) /Fo$D\object.obj object.cpp +!else +$D\object.obj: object.cpp + $(CPP) $(CPPFLAGS) $(CVEXTRA) /c /Fo$D\object.obj object.cpp !endif ############################################################################ @@ -318,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 ############################################################################# @@ -335,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 @@ -345,6 +339,10 @@ $(OBJS) nul ; << +!else + lib32 @<< +-out:..\lib\$(GOAL).lib $(OBJS) +<< !endif #############################################################################