1*f6dc9357SAndroid Build Coastguard WorkerLIBS = $(LIBS) oleaut32.lib ole32.lib 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker# CFLAGS = $(CFLAGS) -DZ7_NO_UNICODE 4*f6dc9357SAndroid Build Coastguard Worker!IFNDEF MY_NO_UNICODE 5*f6dc9357SAndroid Build Coastguard Worker# CFLAGS = $(CFLAGS) -DUNICODE -D_UNICODE 6*f6dc9357SAndroid Build Coastguard Worker!ENDIF 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" != "clang-cl" 9*f6dc9357SAndroid Build Coastguard Worker# for link time code generation: 10*f6dc9357SAndroid Build Coastguard Worker# CFLAGS = $(CFLAGS) -GL 11*f6dc9357SAndroid Build Coastguard Worker!ENDIF 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker!IFNDEF O 14*f6dc9357SAndroid Build Coastguard Worker!IFDEF PLATFORM 15*f6dc9357SAndroid Build Coastguard WorkerO=$(PLATFORM) 16*f6dc9357SAndroid Build Coastguard Worker!ELSE 17*f6dc9357SAndroid Build Coastguard WorkerO=o 18*f6dc9357SAndroid Build Coastguard Worker!ENDIF 19*f6dc9357SAndroid Build Coastguard Worker!ENDIF 20*f6dc9357SAndroid Build Coastguard Worker 21*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" != "clang-cl" 22*f6dc9357SAndroid Build Coastguard Worker# CFLAGS = $(CFLAGS) -FAsc -Fa$O/asm/ 23*f6dc9357SAndroid Build Coastguard Worker!ENDIF 24*f6dc9357SAndroid Build Coastguard Worker 25*f6dc9357SAndroid Build Coastguard Worker# LFLAGS = $(LFLAGS) /guard:cf 26*f6dc9357SAndroid Build Coastguard Worker 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "x64" 29*f6dc9357SAndroid Build Coastguard WorkerMY_ML = ml64 -WX 30*f6dc9357SAndroid Build Coastguard Worker#-Dx64 31*f6dc9357SAndroid Build Coastguard Worker!ELSEIF "$(PLATFORM)" == "arm64" 32*f6dc9357SAndroid Build Coastguard WorkerMY_ML = armasm64 33*f6dc9357SAndroid Build Coastguard Worker!ELSEIF "$(PLATFORM)" == "arm" 34*f6dc9357SAndroid Build Coastguard WorkerMY_ML = armasm -WX 35*f6dc9357SAndroid Build Coastguard Worker!ELSE 36*f6dc9357SAndroid Build Coastguard WorkerMY_ML = ml -WX 37*f6dc9357SAndroid Build Coastguard Worker# -DABI_CDECL 38*f6dc9357SAndroid Build Coastguard Worker!ENDIF 39*f6dc9357SAndroid Build Coastguard Worker 40*f6dc9357SAndroid Build Coastguard Worker# MY_ML = "$(MY_ML) -Fl$O\asm\ 41*f6dc9357SAndroid Build Coastguard Worker 42*f6dc9357SAndroid Build Coastguard Worker 43*f6dc9357SAndroid Build Coastguard Worker!IFDEF UNDER_CE 44*f6dc9357SAndroid Build Coastguard WorkerRFLAGS = $(RFLAGS) -dUNDER_CE 45*f6dc9357SAndroid Build Coastguard Worker!IFDEF MY_CONSOLE 46*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /ENTRY:mainACRTStartup 47*f6dc9357SAndroid Build Coastguard Worker!ENDIF 48*f6dc9357SAndroid Build Coastguard Worker!ELSE 49*f6dc9357SAndroid Build Coastguard Worker!IFDEF OLD_COMPILER 50*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) -OPT:NOWIN98 51*f6dc9357SAndroid Build Coastguard Worker!ENDIF 52*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" 53*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -Gr 54*f6dc9357SAndroid Build Coastguard Worker!ENDIF 55*f6dc9357SAndroid Build Coastguard WorkerLIBS = $(LIBS) user32.lib advapi32.lib shell32.lib 56*f6dc9357SAndroid Build Coastguard Worker!ENDIF 57*f6dc9357SAndroid Build Coastguard Worker 58*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "arm" 59*f6dc9357SAndroid Build Coastguard WorkerCOMPL_ASM = $(MY_ML) $** $O/$(*B).obj 60*f6dc9357SAndroid Build Coastguard Worker!ELSEIF "$(PLATFORM)" == "arm64" 61*f6dc9357SAndroid Build Coastguard WorkerCOMPL_ASM = $(MY_ML) $** $O/$(*B).obj 62*f6dc9357SAndroid Build Coastguard Worker!ELSE 63*f6dc9357SAndroid Build Coastguard WorkerCOMPL_ASM = $(MY_ML) -c -Fo$O/ $** 64*f6dc9357SAndroid Build Coastguard Worker!ENDIF 65*f6dc9357SAndroid Build Coastguard Worker 66*f6dc9357SAndroid Build Coastguard Worker!IFDEF OLD_COMPILER 67*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_WARN_LEVEL = -W4 68*f6dc9357SAndroid Build Coastguard Worker!ELSE 69*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_WARN_LEVEL = -Wall 70*f6dc9357SAndroid Build Coastguard Worker!ENDIF 71*f6dc9357SAndroid Build Coastguard Worker 72*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -nologo -c -Fo$O/ $(CFLAGS_WARN_LEVEL) -WX -EHsc -Gy -GR- -GF 73*f6dc9357SAndroid Build Coastguard Worker 74*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" == "clang-cl" 75*f6dc9357SAndroid Build Coastguard Worker 76*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) \ 77*f6dc9357SAndroid Build Coastguard Worker -Werror \ 78*f6dc9357SAndroid Build Coastguard Worker -Wall \ 79*f6dc9357SAndroid Build Coastguard Worker -Wextra \ 80*f6dc9357SAndroid Build Coastguard Worker -Weverything \ 81*f6dc9357SAndroid Build Coastguard Worker -Wfatal-errors \ 82*f6dc9357SAndroid Build Coastguard Worker 83*f6dc9357SAndroid Build Coastguard Worker!ENDIF 84*f6dc9357SAndroid Build Coastguard Worker 85*f6dc9357SAndroid Build Coastguard Worker# !IFDEF MY_DYNAMIC_LINK 86*f6dc9357SAndroid Build Coastguard Worker!IF "$(MY_DYNAMIC_LINK)" != "" 87*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -MD 88*f6dc9357SAndroid Build Coastguard Worker!ELSE 89*f6dc9357SAndroid Build Coastguard Worker!IFNDEF MY_SINGLE_THREAD 90*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -MT 91*f6dc9357SAndroid Build Coastguard Worker!ENDIF 92*f6dc9357SAndroid Build Coastguard Worker!ENDIF 93*f6dc9357SAndroid Build Coastguard Worker 94*f6dc9357SAndroid Build Coastguard Worker 95*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS_COMMON) $(CFLAGS) 96*f6dc9357SAndroid Build Coastguard Worker 97*f6dc9357SAndroid Build Coastguard Worker 98*f6dc9357SAndroid Build Coastguard Worker!IFNDEF OLD_COMPILER 99*f6dc9357SAndroid Build Coastguard Worker 100*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -GS- -Zc:wchar_t 101*f6dc9357SAndroid Build Coastguard Worker!IFDEF VCTOOLSVERSION 102*f6dc9357SAndroid Build Coastguard Worker!IF "$(VCTOOLSVERSION)" >= "14.00" 103*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" != "clang-cl" 104*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -Zc:throwingNew 105*f6dc9357SAndroid Build Coastguard Worker!ENDIF 106*f6dc9357SAndroid Build Coastguard Worker!ENDIF 107*f6dc9357SAndroid Build Coastguard Worker!ELSE 108*f6dc9357SAndroid Build Coastguard Worker# -Zc:forScope is default in VS2010. so we need it only for older versions 109*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -Zc:forScope 110*f6dc9357SAndroid Build Coastguard Worker!ENDIF 111*f6dc9357SAndroid Build Coastguard Worker 112*f6dc9357SAndroid Build Coastguard Worker!IFNDEF UNDER_CE 113*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" != "clang-cl" 114*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -MP4 115*f6dc9357SAndroid Build Coastguard Worker!ENDIF 116*f6dc9357SAndroid Build Coastguard Worker!IFNDEF PLATFORM 117*f6dc9357SAndroid Build Coastguard Worker# CFLAGS = $(CFLAGS) -arch:IA32 118*f6dc9357SAndroid Build Coastguard Worker!ENDIF 119*f6dc9357SAndroid Build Coastguard Worker!ENDIF 120*f6dc9357SAndroid Build Coastguard Worker 121*f6dc9357SAndroid Build Coastguard Worker!ENDIF 122*f6dc9357SAndroid Build Coastguard Worker 123*f6dc9357SAndroid Build Coastguard Worker 124*f6dc9357SAndroid Build Coastguard Worker!IFDEF MY_CONSOLE 125*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -D_CONSOLE 126*f6dc9357SAndroid Build Coastguard Worker!ENDIF 127*f6dc9357SAndroid Build Coastguard Worker 128*f6dc9357SAndroid Build Coastguard Worker!IFNDEF UNDER_CE 129*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "arm" 130*f6dc9357SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS) -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 131*f6dc9357SAndroid Build Coastguard Worker!ENDIF 132*f6dc9357SAndroid Build Coastguard Worker!ENDIF 133*f6dc9357SAndroid Build Coastguard Worker 134*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "x64" 135*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_O1 = $(CFLAGS) -O1 136*f6dc9357SAndroid Build Coastguard Worker!ELSE 137*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_O1 = $(CFLAGS) -O1 138*f6dc9357SAndroid Build Coastguard Worker!ENDIF 139*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_O2 = $(CFLAGS) -O2 140*f6dc9357SAndroid Build Coastguard Worker 141*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF -INCREMENTAL:NO 142*f6dc9357SAndroid Build Coastguard Worker 143*f6dc9357SAndroid Build Coastguard Worker!IFNDEF UNDER_CE 144*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /LARGEADDRESSAWARE 145*f6dc9357SAndroid Build Coastguard Worker!ENDIF 146*f6dc9357SAndroid Build Coastguard Worker 147*f6dc9357SAndroid Build Coastguard Worker!IFDEF DEF_FILE 148*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) -DLL -DEF:$(DEF_FILE) 149*f6dc9357SAndroid Build Coastguard Worker!ELSE 150*f6dc9357SAndroid Build Coastguard Worker!IF defined(MY_FIXED) && "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" 151*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /FIXED 152*f6dc9357SAndroid Build Coastguard Worker!ELSE 153*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /FIXED:NO 154*f6dc9357SAndroid Build Coastguard Worker!ENDIF 155*f6dc9357SAndroid Build Coastguard Worker# /BASE:0x400000 156*f6dc9357SAndroid Build Coastguard Worker!ENDIF 157*f6dc9357SAndroid Build Coastguard Worker 158*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "arm64" 159*f6dc9357SAndroid Build Coastguard Worker# we can get better compression ratio with ARM64 filter if we change alignment to 4096 160*f6dc9357SAndroid Build Coastguard Worker# LFLAGS = $(LFLAGS) /FILEALIGN:4096 161*f6dc9357SAndroid Build Coastguard Worker!ENDIF 162*f6dc9357SAndroid Build Coastguard Worker 163*f6dc9357SAndroid Build Coastguard Worker 164*f6dc9357SAndroid Build Coastguard Worker 165*f6dc9357SAndroid Build Coastguard Worker# !IF "$(PLATFORM)" == "x64" 166*f6dc9357SAndroid Build Coastguard Worker 167*f6dc9357SAndroid Build Coastguard Worker!IFDEF SUB_SYS_VER 168*f6dc9357SAndroid Build Coastguard Worker 169*f6dc9357SAndroid Build Coastguard WorkerMY_SUB_SYS_VER=5.02 170*f6dc9357SAndroid Build Coastguard Worker 171*f6dc9357SAndroid Build Coastguard Worker!IFDEF MY_CONSOLE 172*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /SUBSYSTEM:console,$(MY_SUB_SYS_VER) 173*f6dc9357SAndroid Build Coastguard Worker!ELSE 174*f6dc9357SAndroid Build Coastguard WorkerLFLAGS = $(LFLAGS) /SUBSYSTEM:windows,$(MY_SUB_SYS_VER) 175*f6dc9357SAndroid Build Coastguard Worker!ENDIF 176*f6dc9357SAndroid Build Coastguard Worker 177*f6dc9357SAndroid Build Coastguard Worker!ENDIF 178*f6dc9357SAndroid Build Coastguard Worker 179*f6dc9357SAndroid Build Coastguard Worker 180*f6dc9357SAndroid Build Coastguard Worker!IF "$(PLATFORM)" == "arm64" 181*f6dc9357SAndroid Build Coastguard WorkerCLANG_FLAGS_TARGET = --target=arm64-pc-windows-msvc 182*f6dc9357SAndroid Build Coastguard Worker!ENDIF 183*f6dc9357SAndroid Build Coastguard Worker 184*f6dc9357SAndroid Build Coastguard WorkerCOMPL_CLANG_SPEC=clang-cl $(CLANG_FLAGS_TARGET) 185*f6dc9357SAndroid Build Coastguard WorkerCOMPL_ASM_CLANG = $(COMPL_CLANG_SPEC) -nologo -c -Fo$O/ $(CFLAGS_WARN_LEVEL) -WX $** 186*f6dc9357SAndroid Build Coastguard Worker# COMPL_C_CLANG = $(COMPL_CLANG_SPEC) $(CFLAGS_O2) 187*f6dc9357SAndroid Build Coastguard Worker 188*f6dc9357SAndroid Build Coastguard Worker 189*f6dc9357SAndroid Build Coastguard WorkerPROGPATH = $O\$(PROG) 190*f6dc9357SAndroid Build Coastguard Worker 191*f6dc9357SAndroid Build Coastguard WorkerCOMPL_O1 = $(CC) $(CFLAGS_O1) $** 192*f6dc9357SAndroid Build Coastguard WorkerCOMPL_O2 = $(CC) $(CFLAGS_O2) $** 193*f6dc9357SAndroid Build Coastguard WorkerCOMPL_PCH = $(CC) $(CFLAGS_O1) -Yc"StdAfx.h" -Fp$O/a.pch $** 194*f6dc9357SAndroid Build Coastguard WorkerCOMPL = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $** 195*f6dc9357SAndroid Build Coastguard WorkerCOMPLB = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $< 196*f6dc9357SAndroid Build Coastguard WorkerCOMPLB_O2 = $(CC) $(CFLAGS_O2) $< 197*f6dc9357SAndroid Build Coastguard Worker# COMPLB_O2 = $(CC) $(CFLAGS_O2) -Yu"StdAfx.h" -Fp$O/a.pch $< 198*f6dc9357SAndroid Build Coastguard Worker 199*f6dc9357SAndroid Build Coastguard WorkerCFLAGS_C_ALL = $(CFLAGS_O2) $(CFLAGS_C_SPEC) 200*f6dc9357SAndroid Build Coastguard Worker 201*f6dc9357SAndroid Build Coastguard WorkerCCOMPL_PCH = $(CC) $(CFLAGS_C_ALL) -Yc"Precomp.h" -Fp$O/a.pch $** 202*f6dc9357SAndroid Build Coastguard WorkerCCOMPL_USE = $(CC) $(CFLAGS_C_ALL) -Yu"Precomp.h" -Fp$O/a.pch $** 203*f6dc9357SAndroid Build Coastguard WorkerCCOMPLB_USE = $(CC) $(CFLAGS_C_ALL) -Yu"Precomp.h" -Fp$O/a.pch $< 204*f6dc9357SAndroid Build Coastguard WorkerCCOMPL = $(CC) $(CFLAGS_C_ALL) $** 205*f6dc9357SAndroid Build Coastguard WorkerCCOMPLB = $(CC) $(CFLAGS_C_ALL) $< 206*f6dc9357SAndroid Build Coastguard Worker 207*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" == "clang-cl" 208*f6dc9357SAndroid Build Coastguard WorkerCOMPL = $(COMPL) -FI StdAfx.h 209*f6dc9357SAndroid Build Coastguard WorkerCOMPLB = $(COMPLB) -FI StdAfx.h 210*f6dc9357SAndroid Build Coastguard WorkerCCOMPL_USE = $(CCOMPL_USE) -FI Precomp.h 211*f6dc9357SAndroid Build Coastguard WorkerCCOMPLB_USE = $(CCOMPLB_USE) -FI Precomp.h 212*f6dc9357SAndroid Build Coastguard Worker!ENDIF 213*f6dc9357SAndroid Build Coastguard Worker 214*f6dc9357SAndroid Build Coastguard Workerall: $(PROGPATH) 215*f6dc9357SAndroid Build Coastguard Worker 216*f6dc9357SAndroid Build Coastguard Workerclean: 217*f6dc9357SAndroid Build Coastguard Worker -del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch $O\*.asm 218*f6dc9357SAndroid Build Coastguard Worker 219*f6dc9357SAndroid Build Coastguard Worker$O: 220*f6dc9357SAndroid Build Coastguard Worker if not exist "$O" mkdir "$O" 221*f6dc9357SAndroid Build Coastguard Worker$O/asm: 222*f6dc9357SAndroid Build Coastguard Worker if not exist "$O/asm" mkdir "$O/asm" 223*f6dc9357SAndroid Build Coastguard Worker 224*f6dc9357SAndroid Build Coastguard Worker!IF "$(CC)" != "clang-cl" 225*f6dc9357SAndroid Build Coastguard Worker# for link time code generation: 226*f6dc9357SAndroid Build Coastguard Worker# LFLAGS = $(LFLAGS) -LTCG 227*f6dc9357SAndroid Build Coastguard Worker!ENDIF 228*f6dc9357SAndroid Build Coastguard Worker 229*f6dc9357SAndroid Build Coastguard Worker$(PROGPATH): $O $O/asm $(OBJS) $(DEF_FILE) 230*f6dc9357SAndroid Build Coastguard Worker link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS) 231*f6dc9357SAndroid Build Coastguard Worker 232*f6dc9357SAndroid Build Coastguard Worker!IFNDEF NO_DEFAULT_RES 233*f6dc9357SAndroid Build Coastguard Worker$O\resource.res: $(*B).rc 234*f6dc9357SAndroid Build Coastguard Worker rc $(RFLAGS) -fo$@ $** 235*f6dc9357SAndroid Build Coastguard Worker!ENDIF 236*f6dc9357SAndroid Build Coastguard Worker$O\StdAfx.obj: $(*B).cpp 237*f6dc9357SAndroid Build Coastguard Worker $(COMPL_PCH) 238*f6dc9357SAndroid Build Coastguard Worker 239*f6dc9357SAndroid Build Coastguard Workerpredef: empty.c 240*f6dc9357SAndroid Build Coastguard Worker $(CCOMPL) /EP /Zc:preprocessor /PD 241*f6dc9357SAndroid Build Coastguard Workerpredef2: A.cpp 242*f6dc9357SAndroid Build Coastguard Worker $(COMPL) -EP -Zc:preprocessor -PD 243*f6dc9357SAndroid Build Coastguard Workerpredef3: A.cpp 244*f6dc9357SAndroid Build Coastguard Worker $(COMPL) -E -dM 245*f6dc9357SAndroid Build Coastguard Workerpredef4: A.cpp 246*f6dc9357SAndroid Build Coastguard Worker $(COMPL_O2) -E 247