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 /CPP/Build.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 'CPP/Build.mak')
-rw-r--r-- | CPP/Build.mak | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/CPP/Build.mak b/CPP/Build.mak new file mode 100644 index 0000000..1ef676e --- /dev/null +++ b/CPP/Build.mak | |||
@@ -0,0 +1,200 @@ | |||
1 | LIBS = $(LIBS) oleaut32.lib ole32.lib | ||
2 | |||
3 | !IFNDEF MY_NO_UNICODE | ||
4 | CFLAGS = $(CFLAGS) -DUNICODE -D_UNICODE | ||
5 | !ENDIF | ||
6 | |||
7 | !IFNDEF O | ||
8 | !IFDEF PLATFORM | ||
9 | O=$(PLATFORM) | ||
10 | !ELSE | ||
11 | O=o | ||
12 | !ENDIF | ||
13 | !ENDIF | ||
14 | |||
15 | !IF "$(CC)" != "clang-cl" | ||
16 | # CFLAGS = $(CFLAGS) -FAsc -Fa$O/asm/ | ||
17 | !ENDIF | ||
18 | |||
19 | |||
20 | !IF "$(PLATFORM)" == "x64" | ||
21 | MY_ML = ml64 -WX | ||
22 | #-Dx64 | ||
23 | !ELSEIF "$(PLATFORM)" == "arm" | ||
24 | MY_ML = armasm -WX | ||
25 | !ELSE | ||
26 | MY_ML = ml -WX | ||
27 | # -DABI_CDECL | ||
28 | !ENDIF | ||
29 | |||
30 | # MY_ML = "$(MY_ML) -Fl$O\asm\ | ||
31 | |||
32 | |||
33 | !IFDEF UNDER_CE | ||
34 | RFLAGS = $(RFLAGS) -dUNDER_CE | ||
35 | !IFDEF MY_CONSOLE | ||
36 | LFLAGS = $(LFLAGS) /ENTRY:mainACRTStartup | ||
37 | !ENDIF | ||
38 | !ELSE | ||
39 | !IFDEF OLD_COMPILER | ||
40 | LFLAGS = $(LFLAGS) -OPT:NOWIN98 | ||
41 | !ENDIF | ||
42 | !IF "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" | ||
43 | CFLAGS = $(CFLAGS) -Gr | ||
44 | !ENDIF | ||
45 | LIBS = $(LIBS) user32.lib advapi32.lib shell32.lib | ||
46 | !ENDIF | ||
47 | |||
48 | !IF "$(PLATFORM)" == "arm" | ||
49 | COMPL_ASM = $(MY_ML) $** $O/$(*B).obj | ||
50 | !ELSE | ||
51 | COMPL_ASM = $(MY_ML) -c -Fo$O/ $** | ||
52 | !ENDIF | ||
53 | |||
54 | CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF | ||
55 | |||
56 | !IF "$(CC)" == "clang-cl" | ||
57 | |||
58 | CFLAGS = $(CFLAGS) \ | ||
59 | -Werror \ | ||
60 | -Wextra \ | ||
61 | -Wall \ | ||
62 | -Weverything \ | ||
63 | -Wno-extra-semi-stmt \ | ||
64 | -Wno-extra-semi \ | ||
65 | -Wno-zero-as-null-pointer-constant \ | ||
66 | -Wno-sign-conversion \ | ||
67 | -Wno-old-style-cast \ | ||
68 | -Wno-reserved-id-macro \ | ||
69 | -Wno-deprecated-dynamic-exception-spec \ | ||
70 | -Wno-language-extension-token \ | ||
71 | -Wno-global-constructors \ | ||
72 | -Wno-non-virtual-dtor \ | ||
73 | -Wno-deprecated-copy-dtor \ | ||
74 | -Wno-exit-time-destructors \ | ||
75 | -Wno-switch-enum \ | ||
76 | -Wno-covered-switch-default \ | ||
77 | -Wno-nonportable-system-include-path \ | ||
78 | -Wno-c++98-compat-pedantic \ | ||
79 | -Wno-cast-qual \ | ||
80 | -Wc++11-extensions \ | ||
81 | |||
82 | !ENDIF | ||
83 | |||
84 | !IFDEF MY_DYNAMIC_LINK | ||
85 | CFLAGS = $(CFLAGS) -MD | ||
86 | !ELSE | ||
87 | !IFNDEF MY_SINGLE_THREAD | ||
88 | CFLAGS = $(CFLAGS) -MT | ||
89 | !ENDIF | ||
90 | !ENDIF | ||
91 | |||
92 | |||
93 | CFLAGS = $(CFLAGS_COMMON) $(CFLAGS) | ||
94 | |||
95 | !IFNDEF OLD_COMPILER | ||
96 | CFLAGS = $(CFLAGS) -GS- -Zc:forScope -Zc:wchar_t | ||
97 | !IFNDEF UNDER_CE | ||
98 | !IF "$(CC)" != "clang-cl" | ||
99 | CFLAGS = $(CFLAGS) -MP4 | ||
100 | !ENDIF | ||
101 | !IFNDEF PLATFORM | ||
102 | # CFLAGS = $(CFLAGS) -arch:IA32 | ||
103 | !ENDIF | ||
104 | !ENDIF | ||
105 | !ELSE | ||
106 | CFLAGS = $(CFLAGS) | ||
107 | !ENDIF | ||
108 | |||
109 | !IFDEF MY_CONSOLE | ||
110 | CFLAGS = $(CFLAGS) -D_CONSOLE | ||
111 | !ENDIF | ||
112 | |||
113 | !IFNDEF UNDER_CE | ||
114 | !IF "$(PLATFORM)" == "arm" | ||
115 | CFLAGS = $(CFLAGS) -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE | ||
116 | !ENDIF | ||
117 | !ENDIF | ||
118 | |||
119 | !IF "$(PLATFORM)" == "x64" | ||
120 | CFLAGS_O1 = $(CFLAGS) -O1 | ||
121 | !ELSE | ||
122 | CFLAGS_O1 = $(CFLAGS) -O1 | ||
123 | !ENDIF | ||
124 | CFLAGS_O2 = $(CFLAGS) -O2 | ||
125 | |||
126 | LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF | ||
127 | |||
128 | !IFNDEF UNDER_CE | ||
129 | LFLAGS = $(LFLAGS) /LARGEADDRESSAWARE | ||
130 | !ENDIF | ||
131 | |||
132 | !IFDEF DEF_FILE | ||
133 | LFLAGS = $(LFLAGS) -DLL -DEF:$(DEF_FILE) | ||
134 | !ELSE | ||
135 | !IF defined(MY_FIXED) && "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" | ||
136 | LFLAGS = $(LFLAGS) /FIXED | ||
137 | !ELSE | ||
138 | LFLAGS = $(LFLAGS) /FIXED:NO | ||
139 | !ENDIF | ||
140 | # /BASE:0x400000 | ||
141 | !ENDIF | ||
142 | |||
143 | |||
144 | # !IF "$(PLATFORM)" == "x64" | ||
145 | |||
146 | !IFDEF SUB_SYS_VER | ||
147 | |||
148 | MY_SUB_SYS_VER=5.02 | ||
149 | |||
150 | !IFDEF MY_CONSOLE | ||
151 | LFLAGS = $(LFLAGS) /SUBSYSTEM:console,$(MY_SUB_SYS_VER) | ||
152 | !ELSE | ||
153 | LFLAGS = $(LFLAGS) /SUBSYSTEM:windows,$(MY_SUB_SYS_VER) | ||
154 | !ENDIF | ||
155 | |||
156 | !ENDIF | ||
157 | |||
158 | |||
159 | PROGPATH = $O\$(PROG) | ||
160 | |||
161 | COMPL_O1 = $(CC) $(CFLAGS_O1) $** | ||
162 | COMPL_O2 = $(CC) $(CFLAGS_O2) $** | ||
163 | COMPL_PCH = $(CC) $(CFLAGS_O1) -Yc"StdAfx.h" -Fp$O/a.pch $** | ||
164 | COMPL = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $** | ||
165 | |||
166 | COMPLB = $(CC) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $< | ||
167 | # COMPLB_O2 = $(CC) $(CFLAGS_O2) -Yu"StdAfx.h" -Fp$O/a.pch $< | ||
168 | COMPLB_O2 = $(CC) $(CFLAGS_O2) $< | ||
169 | |||
170 | CFLAGS_C_ALL = $(CFLAGS_O2) $(CFLAGS_C_SPEC) | ||
171 | CCOMPL_PCH = $(CC) $(CFLAGS_C_ALL) -Yc"Precomp.h" -Fp$O/a.pch $** | ||
172 | CCOMPL_USE = $(CC) $(CFLAGS_C_ALL) -Yu"Precomp.h" -Fp$O/a.pch $** | ||
173 | CCOMPL = $(CC) $(CFLAGS_C_ALL) $** | ||
174 | CCOMPLB = $(CC) $(CFLAGS_C_ALL) $< | ||
175 | |||
176 | !IF "$(CC)" == "clang-cl" | ||
177 | COMPL = $(COMPL) -FI StdAfx.h | ||
178 | COMPLB = $(COMPLB) -FI StdAfx.h | ||
179 | CCOMPL_USE = $(CCOMPL_USE) -FI Precomp.h | ||
180 | !ENDIF | ||
181 | |||
182 | all: $(PROGPATH) | ||
183 | |||
184 | clean: | ||
185 | -del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch $O\*.asm | ||
186 | |||
187 | $O: | ||
188 | if not exist "$O" mkdir "$O" | ||
189 | $O/asm: | ||
190 | if not exist "$O/asm" mkdir "$O/asm" | ||
191 | |||
192 | $(PROGPATH): $O $O/asm $(OBJS) $(DEF_FILE) | ||
193 | link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS) | ||
194 | |||
195 | !IFNDEF NO_DEFAULT_RES | ||
196 | $O\resource.res: $(*B).rc | ||
197 | rc $(RFLAGS) -fo$@ $** | ||
198 | !ENDIF | ||
199 | $O\StdAfx.obj: $(*B).cpp | ||
200 | $(COMPL_PCH) | ||