xref: /aosp_15_r20/external/lzma/CPP/Build.mak (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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