xref: /aosp_15_r20/external/lzma/C/7zip_gcc_c.mak (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1
2MY_ARCH_2 = $(MY_ARCH)
3
4MY_ASM = jwasm
5MY_ASM = asmc
6
7ifndef RC
8#RC=windres.exe --target=pe-x86-64
9#RC=windres.exe -F pe-i386
10RC=windres.exe
11endif
12
13PROGPATH = $(O)/$(PROG)
14PROGPATH_STATIC = $(O)/$(PROG)s
15
16ifneq ($(CC), xlc)
17CFLAGS_WARN_WALL = -Wall -Werror -Wextra
18endif
19
20# for object file
21CFLAGS_BASE_LIST = -c
22# for ASM file
23# CFLAGS_BASE_LIST = -S
24
25FLAGS_FLTO = -flto
26FLAGS_FLTO =
27
28CFLAGS_BASE = $(MY_ARCH_2) -O2 $(CFLAGS_BASE_LIST) $(CFLAGS_WARN_WALL) $(CFLAGS_WARN) \
29 -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
30
31
32ifdef SystemDrive
33IS_MINGW = 1
34else
35ifdef SYSTEMDRIVE
36# ifdef OS
37IS_MINGW = 1
38endif
39endif
40
41ifdef IS_MINGW
42LDFLAGS_STATIC_2 = -static
43else
44ifndef DEF_FILE
45ifndef IS_NOT_STANDALONE
46ifndef MY_DYNAMIC_LINK
47ifneq ($(CC), clang)
48LDFLAGS_STATIC_2 =
49# -static
50# -static-libstdc++ -static-libgcc
51endif
52endif
53endif
54endif
55endif
56
57LDFLAGS_STATIC = -DNDEBUG $(LDFLAGS_STATIC_2)
58
59ifdef DEF_FILE
60
61
62ifdef IS_MINGW
63SHARED_EXT=.dll
64LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC)
65else
66SHARED_EXT=.so
67LDFLAGS = -shared -fPIC  $(LDFLAGS_STATIC)
68CC_SHARED=-fPIC
69endif
70
71
72else
73
74LDFLAGS = $(LDFLAGS_STATIC)
75# -s is not required for clang, do we need it for GGC ???
76# -s
77
78#-static -static-libgcc -static-libstdc++
79
80ifdef IS_MINGW
81SHARED_EXT=.exe
82else
83SHARED_EXT=
84endif
85
86endif
87
88
89PROGPATH = $(O)/$(PROG)$(SHARED_EXT)
90PROGPATH_STATIC = $(O)/$(PROG)s$(SHARED_EXT)
91
92ifndef O
93O=_o
94endif
95
96ifdef IS_MINGW
97
98ifdef MSYSTEM
99RM = rm -f
100MY_MKDIR=mkdir -p
101DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS)
102else
103RM = del
104MY_MKDIR=mkdir
105DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll
106endif
107
108
109LIB2 = -lOle32 -loleaut32 -luuid -ladvapi32 -lUser32 -lShell32
110
111CFLAGS_EXTRA = -DUNICODE -D_UNICODE
112# -Wno-delete-non-virtual-dtor
113
114
115else
116
117RM = rm -f
118MY_MKDIR=mkdir -p
119# CFLAGS_BASE := $(CFLAGS_BASE) -DZ7_ST
120# CFLAGS_EXTRA = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
121
122# LOCAL_LIBS=-lpthread
123# LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl
124LIB2 = -lpthread -ldl
125
126DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS)
127
128endif
129
130
131ifdef IS_X64
132AFLAGS_ABI = -elf64 -DABI_LINUX
133else
134AFLAGS_ABI = -elf -DABI_LINUX -DABI_CDECL
135# -DABI_CDECL
136# -DABI_LINUX
137# -DABI_CDECL
138endif
139AFLAGS = $(AFLAGS_ABI) -Fo$(O)/
140
141C_WARN_FLAGS =
142
143CFLAGS = $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(CFLAGS_EXTRA) $(C_WARN_FLAGS) $(FLAGS_FLTO) $(CC_SHARED) -o $@
144
145STATIC_TARGET=
146ifdef COMPL_STATIC
147STATIC_TARGET=$(PROGPATH_STATIC)
148endif
149
150
151all: $(O) $(PROGPATH) $(STATIC_TARGET)
152
153$(O):
154	$(MY_MKDIR) $(O)
155
156ifneq ($(CC), $(CROSS_COMPILE)clang)
157LFLAGS_STRIP = -s
158endif
159
160LFLAGS_ALL = $(LFLAGS_STRIP) $(MY_ARCH_2) $(LDFLAGS) $(FLAGS_FLTO) $(LD_arch) $(OBJS) $(MY_LIBS) $(LIB2)
161$(PROGPATH): $(OBJS)
162	$(CC) -o $(PROGPATH) $(LFLAGS_ALL)
163
164$(PROGPATH_STATIC): $(OBJS)
165	$(CC) -static -o $(PROGPATH_STATIC) $(LFLAGS_ALL)
166
167
168ifndef NO_DEFAULT_RES
169# old mingw without -FO
170# windres.exe $(RFLAGS) resource.rc $O/resource.o
171$O/resource.o: resource.rc
172	$(RC) $(RFLAGS) resource.rc $(O)/resource.o
173endif
174# windres.exe $(RFLAGS) resource.rc $(O)\resource.o
175# windres.exe $(RFLAGS) resource.rc -FO $(O)/resource.o
176# $(RC) $(RFLAGS) resource.rc -FO $(O)/resource.o
177
178
179
180$O/7zAlloc.o: ../../../C/7zAlloc.c
181	$(CC) $(CFLAGS) $<
182$O/7zArcIn.o: ../../../C/7zArcIn.c
183	$(CC) $(CFLAGS) $<
184$O/7zBuf.o: ../../../C/7zBuf.c
185	$(CC) $(CFLAGS) $<
186$O/7zBuf2.o: ../../../C/7zBuf2.c
187	$(CC) $(CFLAGS) $<
188$O/7zCrc.o: ../../../C/7zCrc.c
189	$(CC) $(CFLAGS) $<
190$O/7zDec.o: ../../../C/7zDec.c
191	$(CC) $(CFLAGS) $<
192$O/7zFile.o: ../../../C/7zFile.c
193	$(CC) $(CFLAGS) $<
194$O/7zStream.o: ../../../C/7zStream.c
195	$(CC) $(CFLAGS) $<
196$O/Aes.o: ../../../C/Aes.c
197	$(CC) $(CFLAGS) $<
198$O/Alloc.o: ../../../C/Alloc.c
199	$(CC) $(CFLAGS) $<
200$O/Bcj2.o: ../../../C/Bcj2.c
201	$(CC) $(CFLAGS) $<
202$O/Bcj2Enc.o: ../../../C/Bcj2Enc.c
203	$(CC) $(CFLAGS) $<
204$O/Blake2s.o: ../../../C/Blake2s.c
205	$(CC) $(CFLAGS) $<
206$O/Bra.o: ../../../C/Bra.c
207	$(CC) $(CFLAGS) $<
208$O/Bra86.o: ../../../C/Bra86.c
209	$(CC) $(CFLAGS) $<
210$O/BraIA64.o: ../../../C/BraIA64.c
211	$(CC) $(CFLAGS) $<
212$O/BwtSort.o: ../../../C/BwtSort.c
213	$(CC) $(CFLAGS) $<
214
215$O/CpuArch.o: ../../../C/CpuArch.c
216	$(CC) $(CFLAGS) $<
217$O/Delta.o: ../../../C/Delta.c
218	$(CC) $(CFLAGS) $<
219$O/DllSecur.o: ../../../C/DllSecur.c
220	$(CC) $(CFLAGS) $<
221$O/HuffEnc.o: ../../../C/HuffEnc.c
222	$(CC) $(CFLAGS) $<
223$O/LzFind.o: ../../../C/LzFind.c
224	$(CC) $(CFLAGS) $<
225
226# ifdef MT_FILES
227$O/LzFindMt.o: ../../../C/LzFindMt.c
228	$(CC) $(CFLAGS) $<
229$O/LzFindOpt.o: ../../../C/LzFindOpt.c
230	$(CC) $(CFLAGS) $<
231
232$O/Threads.o: ../../../C/Threads.c
233	$(CC) $(CFLAGS) $<
234# endif
235
236$O/LzmaEnc.o: ../../../C/LzmaEnc.c
237	$(CC) $(CFLAGS) $<
238$O/Lzma86Dec.o: ../../../C/Lzma86Dec.c
239	$(CC) $(CFLAGS) $<
240$O/Lzma86Enc.o: ../../../C/Lzma86Enc.c
241	$(CC) $(CFLAGS) $<
242$O/Lzma2Dec.o: ../../../C/Lzma2Dec.c
243	$(CC) $(CFLAGS) $<
244$O/Lzma2DecMt.o: ../../../C/Lzma2DecMt.c
245	$(CC) $(CFLAGS) $<
246$O/Lzma2Enc.o: ../../../C/Lzma2Enc.c
247	$(CC) $(CFLAGS) $<
248$O/LzmaLib.o: ../../../C/LzmaLib.c
249	$(CC) $(CFLAGS) $<
250$O/MtCoder.o: ../../../C/MtCoder.c
251	$(CC) $(CFLAGS) $<
252$O/MtDec.o: ../../../C/MtDec.c
253	$(CC) $(CFLAGS) $<
254$O/Ppmd7.o: ../../../C/Ppmd7.c
255	$(CC) $(CFLAGS) $<
256$O/Ppmd7aDec.o: ../../../C/Ppmd7aDec.c
257	$(CC) $(CFLAGS) $<
258$O/Ppmd7Dec.o: ../../../C/Ppmd7Dec.c
259	$(CC) $(CFLAGS) $<
260$O/Ppmd7Enc.o: ../../../C/Ppmd7Enc.c
261	$(CC) $(CFLAGS) $<
262$O/Ppmd8.o: ../../../C/Ppmd8.c
263	$(CC) $(CFLAGS) $<
264$O/Ppmd8Dec.o: ../../../C/Ppmd8Dec.c
265	$(CC) $(CFLAGS) $<
266$O/Ppmd8Enc.o: ../../../C/Ppmd8Enc.c
267	$(CC) $(CFLAGS) $<
268$O/Sha1.o: ../../../C/Sha1.c
269	$(CC) $(CFLAGS) $<
270$O/Sha256.o: ../../../C/Sha256.c
271	$(CC) $(CFLAGS) $<
272$O/Sort.o: ../../../C/Sort.c
273	$(CC) $(CFLAGS) $<
274$O/SwapBytes.o: ../../../C/SwapBytes.c
275	$(CC) $(CFLAGS) $<
276$O/Xz.o: ../../../C/Xz.c
277	$(CC) $(CFLAGS) $<
278$O/XzCrc64.o: ../../../C/XzCrc64.c
279	$(CC) $(CFLAGS) $<
280$O/XzDec.o: ../../../C/XzDec.c
281	$(CC) $(CFLAGS) $<
282$O/XzEnc.o: ../../../C/XzEnc.c
283	$(CC) $(CFLAGS) $<
284$O/XzIn.o: ../../../C/XzIn.c
285	$(CC) $(CFLAGS) $<
286
287
288ifdef USE_ASM
289ifdef IS_X64
290USE_X86_ASM=1
291else
292ifdef IS_X86
293USE_X86_ASM=1
294endif
295endif
296endif
297
298ifdef USE_X86_ASM
299$O/7zCrcOpt.o: ../../../Asm/x86/7zCrcOpt.asm
300	$(MY_ASM) $(AFLAGS) $<
301$O/XzCrc64Opt.o: ../../../Asm/x86/XzCrc64Opt.asm
302	$(MY_ASM) $(AFLAGS) $<
303$O/AesOpt.o: ../../../Asm/x86/AesOpt.asm
304	$(MY_ASM) $(AFLAGS) $<
305$O/Sha1Opt.o: ../../../Asm/x86/Sha1Opt.asm
306	$(MY_ASM) $(AFLAGS) $<
307$O/Sha256Opt.o: ../../../Asm/x86/Sha256Opt.asm
308	$(MY_ASM) $(AFLAGS) $<
309else
310$O/7zCrcOpt.o: ../../7zCrcOpt.c
311	$(CC) $(CFLAGS) $<
312$O/XzCrc64Opt.o: ../../XzCrc64Opt.c
313	$(CC) $(CFLAGS) $<
314$O/Sha1Opt.o: ../../Sha1Opt.c
315	$(CC) $(CFLAGS) $<
316$O/Sha256Opt.o: ../../Sha256Opt.c
317	$(CC) $(CFLAGS) $<
318$O/AesOpt.o: ../../AesOpt.c
319	$(CC) $(CFLAGS) $<
320endif
321
322
323ifdef USE_LZMA_DEC_ASM
324
325ifdef IS_X64
326$O/LzmaDecOpt.o: ../../../Asm/x86/LzmaDecOpt.asm
327	$(MY_ASM) $(AFLAGS) $<
328endif
329
330ifdef IS_ARM64
331$O/LzmaDecOpt.o: ../../../Asm/arm64/LzmaDecOpt.S ../../../Asm/arm64/7zAsm.S
332	$(CC) $(CFLAGS) $(ASM_FLAGS) $<
333endif
334
335$O/LzmaDec.o: ../../LzmaDec.c
336	$(CC) $(CFLAGS) -DZ7_LZMA_DEC_OPT $<
337
338else
339
340$O/LzmaDec.o: ../../LzmaDec.c
341	$(CC) $(CFLAGS) $<
342
343endif
344
345
346
347$O/7zMain.o: ../../../C/Util/7z/7zMain.c
348	$(CC) $(CFLAGS) $<
349$O/7zipInstall.o: ../../../C/Util/7zipInstall/7zipInstall.c
350	$(CC) $(CFLAGS) $<
351$O/7zipUninstall.o: ../../../C/Util/7zipUninstall/7zipUninstall.c
352	$(CC) $(CFLAGS) $<
353$O/LzmaUtil.o: ../../../C/Util/Lzma/LzmaUtil.c
354	$(CC) $(CFLAGS) $<
355$O/XzUtil.o: ../../../C/Util/Xz/XzUtil.c
356	$(CC) $(CFLAGS) $<
357
358
359clean:
360	-$(DEL_OBJ_EXE)
361