• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2MY_ARCH_2 = $(MY_ARCH)
3
4MY_ASM = jwasm
5MY_ASM = asmc
6
7PROGPATH = $(O)/$(PROG)
8PROGPATH_STATIC = $(O)/$(PROG)s
9
10
11# for object file
12CFLAGS_BASE_LIST = -c
13# for ASM file
14# CFLAGS_BASE_LIST = -S
15CFLAGS_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
19LDFLAGS_STATIC = -DNDEBUG
20# -static
21
22ifdef SystemDrive
23IS_MINGW = 1
24endif
25
26ifdef DEF_FILE
27
28
29ifdef IS_MINGW
30SHARED_EXT=.dll
31LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC)
32else
33SHARED_EXT=.so
34LDFLAGS = -shared -fPIC  $(LDFLAGS_STATIC)
35CC_SHARED=-fPIC
36endif
37
38
39else
40
41LDFLAGS = $(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
47ifdef IS_MINGW
48SHARED_EXT=.exe
49else
50SHARED_EXT=
51endif
52
53endif
54
55
56PROGPATH = $(O)/$(PROG)$(SHARED_EXT)
57PROGPATH_STATIC = $(O)/$(PROG)s$(SHARED_EXT)
58
59ifndef O
60O=_o
61endif
62
63ifdef IS_MINGW
64
65RM = del
66MY_MKDIR=mkdir
67LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32
68
69
70CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE
71# -Wno-delete-non-virtual-dtor
72
73DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll
74
75else
76
77RM = rm -f
78MY_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
84LIB2 = -lpthread -ldl
85
86DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS)
87
88endif
89
90
91
92CFLAGS = $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(CC_SHARED) -o $@
93
94
95ifdef IS_X64
96AFLAGS_ABI = -elf64 -DABI_LINUX
97else
98AFLAGS_ABI = -elf -DABI_LINUX -DABI_CDECL
99# -DABI_CDECL
100# -DABI_LINUX
101# -DABI_CDECL
102endif
103AFLAGS = $(AFLAGS_ABI) -Fo$(O)/
104
105
106CXX_WARN_FLAGS =
107#-Wno-invalid-offsetof
108#-Wno-reorder
109
110CXXFLAGS = $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(CXXFLAGS_EXTRA) $(CC_SHARED) -o $@ $(CXX_WARN_FLAGS)
111
112STATIC_TARGET=
113ifdef COMPL_STATIC
114STATIC_TARGET=$(PROGPATH_STATIC)
115endif
116
117
118all: $(O) $(PROGPATH) $(STATIC_TARGET)
119
120$(O):
121	$(MY_MKDIR) $(O)
122
123LFLAGS_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
131ifndef NO_DEFAULT_RES
132$O/resource.o: resource.rc
133	windres.exe $(RFLAGS) resource.rc $O/resource.o
134endif
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
238ifdef USE_ASM
239ifdef IS_X64
240USE_X86_ASM=1
241else
242ifdef IS_X86
243USE_X86_ASM=1
244endif
245endif
246endif
247
248ifdef 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) $<
259else
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) $<
270endif
271
272
273ifdef USE_LZMA_DEC_ASM
274
275ifdef IS_X64
276$O/LzmaDecOpt.o: ../../../Asm/x86/LzmaDecOpt.asm
277	$(MY_ASM) $(AFLAGS) $<
278endif
279
280ifdef IS_ARM64
281$O/LzmaDecOpt.o: ../../../Asm/arm64/LzmaDecOpt.S ../../../Asm/arm64/7zAsm.S
282	$(CC) $(CFLAGS) $<
283endif
284
285$O/LzmaDec.o: ../../LzmaDec.c
286	$(CC) $(CFLAGS) -D_LZMA_DEC_OPT $<
287
288else
289
290$O/LzmaDec.o: ../../LzmaDec.c
291	$(CC) $(CFLAGS) $<
292
293endif
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
312clean:
313	-$(DEL_OBJ_EXE)
314