diff options
author | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2021-12-27 00:00:00 +0000 |
---|---|---|
committer | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2022-03-18 15:35:13 +0500 |
commit | f19f813537c7aea1c20749c914e756b54a9c3cf5 (patch) | |
tree | 816ba62ca7c0fa19f2eb46d9e9d6f7dd7c3a744d /C/7zip_gcc_c.mak | |
parent | 98e06a519b63b81986abe76d28887f6984a7732b (diff) | |
download | 7zip-21.07.tar.gz 7zip-21.07.tar.bz2 7zip-21.07.zip |
'21.07'21.07
Diffstat (limited to 'C/7zip_gcc_c.mak')
-rw-r--r-- | C/7zip_gcc_c.mak | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/C/7zip_gcc_c.mak b/C/7zip_gcc_c.mak new file mode 100644 index 0000000..e884440 --- /dev/null +++ b/C/7zip_gcc_c.mak | |||
@@ -0,0 +1,313 @@ | |||
1 | |||
2 | MY_ARCH_2 = $(MY_ARCH) | ||
3 | |||
4 | MY_ASM = jwasm | ||
5 | MY_ASM = asmc | ||
6 | |||
7 | PROGPATH = $(O)/$(PROG) | ||
8 | PROGPATH_STATIC = $(O)/$(PROG)s | ||
9 | |||
10 | |||
11 | # for object file | ||
12 | CFLAGS_BASE_LIST = -c | ||
13 | # for ASM file | ||
14 | # CFLAGS_BASE_LIST = -S | ||
15 | CFLAGS_BASE = $(MY_ARCH_2) -O2 $(CFLAGS_BASE_LIST) -Wall -Werror -Wextra $(CFLAGS_WARN) \ | ||
16 | -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE | ||
17 | |||
18 | |||
19 | LDFLAGS_STATIC = -DNDEBUG | ||
20 | # -static | ||
21 | |||
22 | ifdef SystemDrive | ||
23 | IS_MINGW = 1 | ||
24 | endif | ||
25 | |||
26 | ifdef DEF_FILE | ||
27 | |||
28 | |||
29 | ifdef IS_MINGW | ||
30 | SHARED_EXT=.dll | ||
31 | LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC) | ||
32 | else | ||
33 | SHARED_EXT=.so | ||
34 | LDFLAGS = -shared -fPIC $(LDFLAGS_STATIC) | ||
35 | CC_SHARED=-fPIC | ||
36 | endif | ||
37 | |||
38 | |||
39 | else | ||
40 | |||
41 | LDFLAGS = $(LDFLAGS_STATIC) | ||
42 | # -s is not required for clang, do we need it for GGC ??? | ||
43 | # -s | ||
44 | |||
45 | #-static -static-libgcc -static-libstdc++ | ||
46 | |||
47 | ifdef IS_MINGW | ||
48 | SHARED_EXT=.exe | ||
49 | else | ||
50 | SHARED_EXT= | ||
51 | endif | ||
52 | |||
53 | endif | ||
54 | |||
55 | |||
56 | PROGPATH = $(O)/$(PROG)$(SHARED_EXT) | ||
57 | PROGPATH_STATIC = $(O)/$(PROG)s$(SHARED_EXT) | ||
58 | |||
59 | ifndef O | ||
60 | O=_o | ||
61 | endif | ||
62 | |||
63 | ifdef IS_MINGW | ||
64 | |||
65 | RM = del | ||
66 | MY_MKDIR=mkdir | ||
67 | LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 | ||
68 | |||
69 | |||
70 | CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE | ||
71 | # -Wno-delete-non-virtual-dtor | ||
72 | |||
73 | DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll | ||
74 | |||
75 | else | ||
76 | |||
77 | RM = rm -f | ||
78 | MY_MKDIR=mkdir -p | ||
79 | # CFLAGS_BASE := $(CFLAGS_BASE) -D_7ZIP_ST | ||
80 | # CXXFLAGS_EXTRA = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE | ||
81 | |||
82 | # LOCAL_LIBS=-lpthread | ||
83 | # LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl | ||
84 | LIB2 = -lpthread -ldl | ||
85 | |||
86 | DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS) | ||
87 | |||
88 | endif | ||
89 | |||
90 | |||
91 | |||
92 | CFLAGS = $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(CC_SHARED) -o $@ | ||
93 | |||
94 | |||
95 | ifdef IS_X64 | ||
96 | AFLAGS_ABI = -elf64 -DABI_LINUX | ||
97 | else | ||
98 | AFLAGS_ABI = -elf -DABI_LINUX -DABI_CDECL | ||
99 | # -DABI_CDECL | ||
100 | # -DABI_LINUX | ||
101 | # -DABI_CDECL | ||
102 | endif | ||
103 | AFLAGS = $(AFLAGS_ABI) -Fo$(O)/ | ||
104 | |||
105 | |||
106 | CXX_WARN_FLAGS = | ||
107 | #-Wno-invalid-offsetof | ||
108 | #-Wno-reorder | ||
109 | |||
110 | CXXFLAGS = $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(CXXFLAGS_EXTRA) $(CC_SHARED) -o $@ $(CXX_WARN_FLAGS) | ||
111 | |||
112 | STATIC_TARGET= | ||
113 | ifdef COMPL_STATIC | ||
114 | STATIC_TARGET=$(PROGPATH_STATIC) | ||
115 | endif | ||
116 | |||
117 | |||
118 | all: $(O) $(PROGPATH) $(STATIC_TARGET) | ||
119 | |||
120 | $(O): | ||
121 | $(MY_MKDIR) $(O) | ||
122 | |||
123 | LFLAGS_ALL = -s $(MY_ARCH_2) $(LDFLAGS) $(LD_arch) $(OBJS) $(MY_LIBS) $(LIB2) | ||
124 | $(PROGPATH): $(OBJS) | ||
125 | $(CXX) -o $(PROGPATH) $(LFLAGS_ALL) | ||
126 | |||
127 | $(PROGPATH_STATIC): $(OBJS) | ||
128 | $(CXX) -static -o $(PROGPATH_STATIC) $(LFLAGS_ALL) | ||
129 | |||
130 | |||
131 | ifndef NO_DEFAULT_RES | ||
132 | $O/resource.o: resource.rc | ||
133 | windres.exe $(RFLAGS) resource.rc $O/resource.o | ||
134 | endif | ||
135 | |||
136 | |||
137 | |||
138 | $O/7zAlloc.o: ../../../C/7zAlloc.c | ||
139 | $(CC) $(CFLAGS) $< | ||
140 | $O/7zArcIn.o: ../../../C/7zArcIn.c | ||
141 | $(CC) $(CFLAGS) $< | ||
142 | $O/7zBuf.o: ../../../C/7zBuf.c | ||
143 | $(CC) $(CFLAGS) $< | ||
144 | $O/7zBuf2.o: ../../../C/7zBuf2.c | ||
145 | $(CC) $(CFLAGS) $< | ||
146 | $O/7zCrc.o: ../../../C/7zCrc.c | ||
147 | $(CC) $(CFLAGS) $< | ||
148 | $O/7zDec.o: ../../../C/7zDec.c | ||
149 | $(CC) $(CFLAGS) $< | ||
150 | $O/7zFile.o: ../../../C/7zFile.c | ||
151 | $(CC) $(CFLAGS) $< | ||
152 | $O/7zStream.o: ../../../C/7zStream.c | ||
153 | $(CC) $(CFLAGS) $< | ||
154 | $O/Aes.o: ../../../C/Aes.c | ||
155 | $(CC) $(CFLAGS) $< | ||
156 | $O/Alloc.o: ../../../C/Alloc.c | ||
157 | $(CC) $(CFLAGS) $< | ||
158 | $O/Bcj2.o: ../../../C/Bcj2.c | ||
159 | $(CC) $(CFLAGS) $< | ||
160 | $O/Bcj2Enc.o: ../../../C/Bcj2Enc.c | ||
161 | $(CC) $(CFLAGS) $< | ||
162 | $O/Blake2s.o: ../../../C/Blake2s.c | ||
163 | $(CC) $(CFLAGS) $< | ||
164 | $O/Bra.o: ../../../C/Bra.c | ||
165 | $(CC) $(CFLAGS) $< | ||
166 | $O/Bra86.o: ../../../C/Bra86.c | ||
167 | $(CC) $(CFLAGS) $< | ||
168 | $O/BraIA64.o: ../../../C/BraIA64.c | ||
169 | $(CC) $(CFLAGS) $< | ||
170 | $O/BwtSort.o: ../../../C/BwtSort.c | ||
171 | $(CC) $(CFLAGS) $< | ||
172 | |||
173 | $O/CpuArch.o: ../../../C/CpuArch.c | ||
174 | $(CC) $(CFLAGS) $< | ||
175 | $O/Delta.o: ../../../C/Delta.c | ||
176 | $(CC) $(CFLAGS) $< | ||
177 | $O/DllSecur.o: ../../../C/DllSecur.c | ||
178 | $(CC) $(CFLAGS) $< | ||
179 | $O/HuffEnc.o: ../../../C/HuffEnc.c | ||
180 | $(CC) $(CFLAGS) $< | ||
181 | $O/LzFind.o: ../../../C/LzFind.c | ||
182 | $(CC) $(CFLAGS) $< | ||
183 | |||
184 | # ifdef MT_FILES | ||
185 | $O/LzFindMt.o: ../../../C/LzFindMt.c | ||
186 | $(CC) $(CFLAGS) $< | ||
187 | $O/LzFindOpt.o: ../../../C/LzFindOpt.c | ||
188 | $(CC) $(CFLAGS) $< | ||
189 | |||
190 | $O/Threads.o: ../../../C/Threads.c | ||
191 | $(CC) $(CFLAGS) $< | ||
192 | # endif | ||
193 | |||
194 | $O/LzmaEnc.o: ../../../C/LzmaEnc.c | ||
195 | $(CC) $(CFLAGS) $< | ||
196 | $O/Lzma86Dec.o: ../../../C/Lzma86Dec.c | ||
197 | $(CC) $(CFLAGS) $< | ||
198 | $O/Lzma86Enc.o: ../../../C/Lzma86Enc.c | ||
199 | $(CC) $(CFLAGS) $< | ||
200 | $O/Lzma2Dec.o: ../../../C/Lzma2Dec.c | ||
201 | $(CC) $(CFLAGS) $< | ||
202 | $O/Lzma2DecMt.o: ../../../C/Lzma2DecMt.c | ||
203 | $(CC) $(CFLAGS) $< | ||
204 | $O/Lzma2Enc.o: ../../../C/Lzma2Enc.c | ||
205 | $(CC) $(CFLAGS) $< | ||
206 | $O/LzmaLib.o: ../../../C/LzmaLib.c | ||
207 | $(CC) $(CFLAGS) $< | ||
208 | $O/MtCoder.o: ../../../C/MtCoder.c | ||
209 | $(CC) $(CFLAGS) $< | ||
210 | $O/MtDec.o: ../../../C/MtDec.c | ||
211 | $(CC) $(CFLAGS) $< | ||
212 | $O/Ppmd7.o: ../../../C/Ppmd7.c | ||
213 | $(CC) $(CFLAGS) $< | ||
214 | $O/Ppmd7aDec.o: ../../../C/Ppmd7aDec.c | ||
215 | $(CC) $(CFLAGS) $< | ||
216 | $O/Ppmd7Dec.o: ../../../C/Ppmd7Dec.c | ||
217 | $(CC) $(CFLAGS) $< | ||
218 | $O/Ppmd7Enc.o: ../../../C/Ppmd7Enc.c | ||
219 | $(CC) $(CFLAGS) $< | ||
220 | $O/Ppmd8.o: ../../../C/Ppmd8.c | ||
221 | $(CC) $(CFLAGS) $< | ||
222 | $O/Ppmd8Dec.o: ../../../C/Ppmd8Dec.c | ||
223 | $(CC) $(CFLAGS) $< | ||
224 | $O/Ppmd8Enc.o: ../../../C/Ppmd8Enc.c | ||
225 | $(CC) $(CFLAGS) $< | ||
226 | $O/Sha1.o: ../../../C/Sha1.c | ||
227 | $(CC) $(CFLAGS) $< | ||
228 | $O/Sha256.o: ../../../C/Sha256.c | ||
229 | $(CC) $(CFLAGS) $< | ||
230 | $O/Sort.o: ../../../C/Sort.c | ||
231 | $(CC) $(CFLAGS) $< | ||
232 | $O/Xz.o: ../../../C/Xz.c | ||
233 | $(CC) $(CFLAGS) $< | ||
234 | $O/XzCrc64.o: ../../../C/XzCrc64.c | ||
235 | $(CC) $(CFLAGS) $< | ||
236 | |||
237 | |||
238 | ifdef USE_ASM | ||
239 | ifdef IS_X64 | ||
240 | USE_X86_ASM=1 | ||
241 | else | ||
242 | ifdef IS_X86 | ||
243 | USE_X86_ASM=1 | ||
244 | endif | ||
245 | endif | ||
246 | endif | ||
247 | |||
248 | ifdef USE_X86_ASM | ||
249 | $O/7zCrcOpt.o: ../../../Asm/x86/7zCrcOpt.asm | ||
250 | $(MY_ASM) $(AFLAGS) $< | ||
251 | $O/XzCrc64Opt.o: ../../../Asm/x86/XzCrc64Opt.asm | ||
252 | $(MY_ASM) $(AFLAGS) $< | ||
253 | $O/AesOpt.o: ../../../Asm/x86/AesOpt.asm | ||
254 | $(MY_ASM) $(AFLAGS) $< | ||
255 | $O/Sha1Opt.o: ../../../Asm/x86/Sha1Opt.asm | ||
256 | $(MY_ASM) $(AFLAGS) $< | ||
257 | $O/Sha256Opt.o: ../../../Asm/x86/Sha256Opt.asm | ||
258 | $(MY_ASM) $(AFLAGS) $< | ||
259 | else | ||
260 | $O/7zCrcOpt.o: ../../7zCrcOpt.c | ||
261 | $(CC) $(CFLAGS) $< | ||
262 | $O/XzCrc64Opt.o: ../../XzCrc64Opt.c | ||
263 | $(CC) $(CFLAGS) $< | ||
264 | $O/Sha1Opt.o: ../../Sha1Opt.c | ||
265 | $(CC) $(CFLAGS) $< | ||
266 | $O/Sha256Opt.o: ../../Sha256Opt.c | ||
267 | $(CC) $(CFLAGS) $< | ||
268 | $O/AesOpt.o: ../../AesOpt.c | ||
269 | $(CC) $(CFLAGS) $< | ||
270 | endif | ||
271 | |||
272 | |||
273 | ifdef USE_LZMA_DEC_ASM | ||
274 | |||
275 | ifdef IS_X64 | ||
276 | $O/LzmaDecOpt.o: ../../../Asm/x86/LzmaDecOpt.asm | ||
277 | $(MY_ASM) $(AFLAGS) $< | ||
278 | endif | ||
279 | |||
280 | ifdef IS_ARM64 | ||
281 | $O/LzmaDecOpt.o: ../../../Asm/arm64/LzmaDecOpt.S ../../../Asm/arm64/7zAsm.S | ||
282 | $(CC) $(CFLAGS) $< | ||
283 | endif | ||
284 | |||
285 | $O/LzmaDec.o: ../../LzmaDec.c | ||
286 | $(CC) $(CFLAGS) -D_LZMA_DEC_OPT $< | ||
287 | |||
288 | else | ||
289 | |||
290 | $O/LzmaDec.o: ../../LzmaDec.c | ||
291 | $(CC) $(CFLAGS) $< | ||
292 | |||
293 | endif | ||
294 | |||
295 | |||
296 | |||
297 | $O/XzDec.o: ../../../C/XzDec.c | ||
298 | $(CC) $(CFLAGS) $< | ||
299 | $O/XzEnc.o: ../../../C/XzEnc.c | ||
300 | $(CC) $(CFLAGS) $< | ||
301 | $O/XzIn.o: ../../../C/XzIn.c | ||
302 | $(CC) $(CFLAGS) $< | ||
303 | |||
304 | |||
305 | $O/7zMain.o: ../../../C/Util/7z/7zMain.c | ||
306 | $(CC) $(CFLAGS) $< | ||
307 | $O/LzmaUtil.o: ../../../C/Util/Lzma/LzmaUtil.c | ||
308 | $(CC) $(CFLAGS) $< | ||
309 | |||
310 | |||
311 | |||
312 | clean: | ||
313 | -$(DEL_OBJ_EXE) | ||