1LIBS = $(LIBS) oleaut32.lib ole32.lib 2 3!IFNDEF MY_NO_UNICODE 4CFLAGS = $(CFLAGS) -DUNICODE -D_UNICODE 5!ENDIF 6 7!IFNDEF O 8!IFDEF PLATFORM 9O=$(PLATFORM) 10!ELSE 11O=o 12!ENDIF 13!ENDIF 14 15!IF "$(CC)" != "clang-cl" 16# CFLAGS = $(CFLAGS) -FAsc -Fa$O/asm/ 17!ENDIF 18 19 20!IF "$(PLATFORM)" == "x64" 21MY_ML = ml64 -WX 22#-Dx64 23!ELSEIF "$(PLATFORM)" == "arm" 24MY_ML = armasm -WX 25!ELSE 26MY_ML = ml -WX 27# -DABI_CDECL 28!ENDIF 29 30# MY_ML = "$(MY_ML) -Fl$O\asm\ 31 32 33!IFDEF UNDER_CE 34RFLAGS = $(RFLAGS) -dUNDER_CE 35!IFDEF MY_CONSOLE 36LFLAGS = $(LFLAGS) /ENTRY:mainACRTStartup 37!ENDIF 38!ELSE 39!IFDEF OLD_COMPILER 40LFLAGS = $(LFLAGS) -OPT:NOWIN98 41!ENDIF 42!IF "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" 43CFLAGS = $(CFLAGS) -Gr 44!ENDIF 45LIBS = $(LIBS) user32.lib advapi32.lib shell32.lib 46!ENDIF 47 48!IF "$(PLATFORM)" == "arm" 49COMPL_ASM = $(MY_ML) $** $O/$(*B).obj 50!ELSE 51COMPL_ASM = $(MY_ML) -c -Fo$O/ $** 52!ENDIF 53 54CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF 55 56!IF "$(CC)" == "clang-cl" 57 58CFLAGS = $(CFLAGS) \ 59 -Werror \ 60 -Wextra \ 61 -Wall \ 62 -Weverything \ 63 -Wno-extra-semi-stmt \ 64 -Wno-extra-semi \ 65 -Wno-zero-as-null-pointer-constant \ 66 -Wno-sign-conversion \ 67 -Wno-old-style-cast \ 68 -Wno-reserved-id-macro \ 69 -Wno-deprecated-dynamic-exception-spec \ 70 -Wno-language-extension-token \ 71 -Wno-global-constructors \ 72 -Wno-non-virtual-dtor \ 73 -Wno-deprecated-copy-dtor \ 74 -Wno-exit-time-destructors \ 75 -Wno-switch-enum \ 76 -Wno-covered-switch-default \ 77 -Wno-nonportable-system-include-path \ 78 -Wno-c++98-compat-pedantic \ 79 -Wno-cast-qual \ 80 -Wc++11-extensions \ 81 82!ENDIF 83 84!IFDEF MY_DYNAMIC_LINK 85CFLAGS = $(CFLAGS) -MD 86!ELSE 87!IFNDEF MY_SINGLE_THREAD 88CFLAGS = $(CFLAGS) -MT 89!ENDIF 90!ENDIF 91 92 93CFLAGS = $(CFLAGS_COMMON) $(CFLAGS) 94 95!IFNDEF OLD_COMPILER 96CFLAGS = $(CFLAGS) -GS- -Zc:forScope -Zc:wchar_t 97!IFNDEF UNDER_CE 98!IF "$(CC)" != "clang-cl" 99CFLAGS = $(CFLAGS) -MP4 100!ENDIF 101!IFNDEF PLATFORM 102# CFLAGS = $(CFLAGS) -arch:IA32 103!ENDIF 104!ENDIF 105!ELSE 106CFLAGS = $(CFLAGS) 107!ENDIF 108 109!IFDEF MY_CONSOLE 110CFLAGS = $(CFLAGS) -D_CONSOLE 111!ENDIF 112 113!IFNDEF UNDER_CE 114!IF "$(PLATFORM)" == "arm" 115CFLAGS = $(CFLAGS) -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 116!ENDIF 117!ENDIF 118 119!IF "$(PLATFORM)" == "x64" 120CFLAGS_O1 = $(CFLAGS) -O1 121!ELSE 122CFLAGS_O1 = $(CFLAGS) -O1 123!ENDIF 124CFLAGS_O2 = $(CFLAGS) -O2 125 126LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF 127 128!IFNDEF UNDER_CE 129LFLAGS = $(LFLAGS) /LARGEADDRESSAWARE 130!ENDIF 131 132!IFDEF DEF_FILE 133LFLAGS = $(LFLAGS) -DLL -DEF:$(DEF_FILE) 134!ELSE 135!IF defined(MY_FIXED) && "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" 136LFLAGS = $(LFLAGS) /FIXED 137!ELSE 138LFLAGS = $(LFLAGS) /FIXED:NO 139!ENDIF 140# /BASE:0x400000 141!ENDIF 142 143 144# !IF "$(PLATFORM)" == "x64" 145 146!IFDEF SUB_SYS_VER 147 148MY_SUB_SYS_VER=5.02 149 150!IFDEF MY_CONSOLE 151LFLAGS = $(LFLAGS) /SUBSYSTEM:console,$(MY_SUB_SYS_VER) 152!ELSE 153LFLAGS = $(LFLAGS) /SUBSYSTEM:windows,$(MY_SUB_SYS_VER) 154!ENDIF 155 156!ENDIF 157 158 159PROGPATH = $O\$(PROG) 160 161COMPL_O1 = $(CC) $(CFLAGS_O1) $** 162COMPL_O2 = $(CC) $(CFLAGS_O2) $** 163COMPL_PCH = $(CC) $(CFLAGS_O1) -Yc"StdAfx.h" -Fp$O/a.pch $** 164COMPL = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $** 165 166COMPLB = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $< 167# COMPLB_O2 = $(CC) $(CFLAGS_O2) -Yu"StdAfx.h" -Fp$O/a.pch $< 168COMPLB_O2 = $(CC) $(CFLAGS_O2) $< 169 170CFLAGS_C_ALL = $(CFLAGS_O2) $(CFLAGS_C_SPEC) 171CCOMPL_PCH = $(CC) $(CFLAGS_C_ALL) -Yc"Precomp.h" -Fp$O/a.pch $** 172CCOMPL_USE = $(CC) $(CFLAGS_C_ALL) -Yu"Precomp.h" -Fp$O/a.pch $** 173CCOMPL = $(CC) $(CFLAGS_C_ALL) $** 174CCOMPLB = $(CC) $(CFLAGS_C_ALL) $< 175 176!IF "$(CC)" == "clang-cl" 177COMPL = $(COMPL) -FI StdAfx.h 178COMPLB = $(COMPLB) -FI StdAfx.h 179CCOMPL_USE = $(CCOMPL_USE) -FI Precomp.h 180!ENDIF 181 182all: $(PROGPATH) 183 184clean: 185 -del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch $O\*.asm 186 187$O: 188 if not exist "$O" mkdir "$O" 189$O/asm: 190 if not exist "$O/asm" mkdir "$O/asm" 191 192$(PROGPATH): $O $O/asm $(OBJS) $(DEF_FILE) 193 link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS) 194 195!IFNDEF NO_DEFAULT_RES 196$O\resource.res: $(*B).rc 197 rc $(RFLAGS) -fo$@ $** 198!ENDIF 199$O\StdAfx.obj: $(*B).cpp 200 $(COMPL_PCH) 201