OLD | NEW |
1 # Makefile for libxml2, specific for Windows, MSVC and NMAKE. | 1 # Makefile for libxml2, specific for Windows, MSVC and NMAKE. |
2 # | 2 # |
3 # Take a look at the beginning and modify the variables to suit your | 3 # Take a look at the beginning and modify the variables to suit your |
4 # environment. Having done that, you can do a | 4 # environment. Having done that, you can do a |
5 # | 5 # |
6 # nmake [all] to build the libxml and the accompanying utilities. | 6 # nmake [all] to build the libxml and the accompanying utilities. |
7 # nmake clean to remove all compiler output files and return to a | 7 # nmake clean to remove all compiler output files and return to a |
8 # clean state. | 8 # clean state. |
9 # nmake rebuild to rebuild everything from scratch. This basically does | 9 # nmake rebuild to rebuild everything from scratch. This basically does |
10 # a 'nmake clean' and then a 'nmake all'. | 10 # a 'nmake clean' and then a 'nmake all'. |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 # Place where we let the compiler put its output. | 30 # Place where we let the compiler put its output. |
31 BINDIR = bin.msvc | 31 BINDIR = bin.msvc |
32 XML_INTDIR = int.msvc | 32 XML_INTDIR = int.msvc |
33 XML_INTDIR_A = int.a.msvc | 33 XML_INTDIR_A = int.a.msvc |
34 XML_INTDIR_A_DLL = int.a.dll.msvc | 34 XML_INTDIR_A_DLL = int.a.dll.msvc |
35 UTILS_INTDIR = int.utils.msvc | 35 UTILS_INTDIR = int.utils.msvc |
36 | 36 |
37 # The preprocessor and its options. | 37 # The preprocessor and its options. |
38 CPP = cl.exe /EP | 38 CPP = cl.exe /EP |
39 CPPFLAGS = /nologo /I$(XML_SRCDIR)\include | 39 CPPFLAGS = /nologo /I$(XML_SRCDIR)\include /D "NOLIBTOOL" |
40 !if "$(WITH_THREADS)" != "no" | 40 !if "$(WITH_THREADS)" != "no" |
41 CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT" | 41 CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT" |
42 !endif | 42 !endif |
43 | 43 |
44 # The compiler and its options. | 44 # The compiler and its options. |
45 CC = cl.exe | 45 CC = cl.exe |
46 CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W1 $(CRUNTIME) | 46 CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W1 $(CRUNTI
ME) |
47 CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX) | 47 CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX) |
48 !if "$(WITH_THREADS)" != "no" | 48 !if "$(WITH_THREADS)" != "no" |
49 CFLAGS = $(CFLAGS) /D "_REENTRANT" | 49 CFLAGS = $(CFLAGS) /D "_REENTRANT" |
50 !endif | 50 !endif |
51 !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" | 51 !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" |
52 CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" /D "HAVE_COMPILER_TLS" | 52 CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" /D "HAVE_COMPILER_TLS" |
53 !else if "$(WITH_THREADS)" == "native" | 53 !else if "$(WITH_THREADS)" == "native" |
54 CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" | 54 CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" |
55 !else if "$(WITH_THREADS)" == "posix" | 55 !else if "$(WITH_THREADS)" == "posix" |
56 CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H" | 56 CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H" |
57 !endif | 57 !endif |
58 !if "$(WITH_ZLIB)" == "1" | 58 !if "$(WITH_ZLIB)" == "1" |
59 CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H" | 59 CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H" |
60 !endif | 60 !endif |
| 61 !if "$(WITH_LZMA)" == "1" |
| 62 CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H" |
| 63 !endif |
61 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE | 64 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE |
62 | 65 |
63 # The linker and its options. | 66 # The linker and its options. |
64 LD = link.exe | 67 LD = link.exe |
65 LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) | 68 LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) |
66 LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) | 69 LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) |
67 LIBS = | 70 LIBS = |
68 !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" | 71 !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" |
69 LIBS = $(LIBS) wsock32.lib ws2_32.lib | 72 LIBS = $(LIBS) wsock32.lib ws2_32.lib |
70 !endif | 73 !endif |
71 !if "$(WITH_ICONV)" == "1" | 74 !if "$(WITH_ICONV)" == "1" |
72 LIBS = $(LIBS) iconv.lib | 75 LIBS = $(LIBS) iconv.lib |
73 !endif | 76 !endif |
74 !if "$(WITH_ICU)" == "1" | 77 !if "$(WITH_ICU)" == "1" |
75 LIBS = $(LIBS) icu.lib | 78 LIBS = $(LIBS) icu.lib |
76 !endif | 79 !endif |
77 !if "$(WITH_ZLIB)" == "1" | 80 !if "$(WITH_ZLIB)" == "1" |
78 LIBS = $(LIBS) zdll.lib | 81 # could be named differently zdll or zlib |
| 82 # LIBS = $(LIBS) zdll.lib |
| 83 LIBS = $(LIBS) zlib.lib |
| 84 !endif |
| 85 !if "$(WITH_LZMA)" == "1" |
| 86 LIBS = $(LIBS) liblzma.lib |
79 !endif | 87 !endif |
80 !if "$(WITH_THREADS)" == "posix" | 88 !if "$(WITH_THREADS)" == "posix" |
81 LIBS = $(LIBS) pthreadVC.lib | 89 LIBS = $(LIBS) pthreadVC.lib |
82 !endif | 90 !endif |
83 !if "$(WITH_MODULES)" == "1" | 91 !if "$(WITH_MODULES)" == "1" |
84 LIBS = $(LIBS) kernel32.lib | 92 LIBS = $(LIBS) kernel32.lib |
85 !endif | 93 !endif |
86 | 94 |
87 # The archiver and its options. | 95 # The archiver and its options. |
88 AR = lib.exe | 96 AR = lib.exe |
89 ARFLAGS = /nologo | 97 ARFLAGS = /nologo |
90 | 98 |
91 # Optimisation and debug symbols. | 99 # Optimisation and debug symbols. |
92 !if "$(DEBUG)" == "1" | 100 !if "$(DEBUG)" == "1" |
93 CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 | 101 CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 |
94 LDFLAGS = $(LDFLAGS) /DEBUG | 102 LDFLAGS = $(LDFLAGS) /DEBUG |
95 !else | 103 !else |
96 CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 | 104 CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 |
97 LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 | 105 # commented out as this break VC10 c.f. 634846 |
| 106 # LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 |
| 107 LDFLAGS = $(LDFLAGS) |
98 !endif | 108 !endif |
99 | 109 |
100 # Libxml object files. | 110 # Libxml object files. |
101 XML_OBJS = $(XML_INTDIR)\c14n.obj\ | 111 XML_OBJS = $(XML_INTDIR)\buf.obj\ |
| 112 » $(XML_INTDIR)\c14n.obj\ |
102 $(XML_INTDIR)\catalog.obj\ | 113 $(XML_INTDIR)\catalog.obj\ |
103 $(XML_INTDIR)\chvalid.obj\ | 114 $(XML_INTDIR)\chvalid.obj\ |
104 $(XML_INTDIR)\debugXML.obj\ | 115 $(XML_INTDIR)\debugXML.obj\ |
105 $(XML_INTDIR)\dict.obj\ | 116 $(XML_INTDIR)\dict.obj\ |
106 $(XML_INTDIR)\DOCBparser.obj\ | 117 $(XML_INTDIR)\DOCBparser.obj\ |
107 $(XML_INTDIR)\encoding.obj\ | 118 $(XML_INTDIR)\encoding.obj\ |
108 $(XML_INTDIR)\entities.obj\ | 119 $(XML_INTDIR)\entities.obj\ |
109 $(XML_INTDIR)\error.obj\ | 120 $(XML_INTDIR)\error.obj\ |
110 $(XML_INTDIR)\globals.obj\ | 121 $(XML_INTDIR)\globals.obj\ |
111 $(XML_INTDIR)\hash.obj\ | 122 $(XML_INTDIR)\hash.obj\ |
(...skipping 24 matching lines...) Expand all Loading... |
136 $(XML_INTDIR)\xmlsave.obj\ | 147 $(XML_INTDIR)\xmlsave.obj\ |
137 $(XML_INTDIR)\xmlschemas.obj\ | 148 $(XML_INTDIR)\xmlschemas.obj\ |
138 $(XML_INTDIR)\xmlschemastypes.obj\ | 149 $(XML_INTDIR)\xmlschemastypes.obj\ |
139 $(XML_INTDIR)\xmlunicode.obj\ | 150 $(XML_INTDIR)\xmlunicode.obj\ |
140 $(XML_INTDIR)\xmlwriter.obj\ | 151 $(XML_INTDIR)\xmlwriter.obj\ |
141 $(XML_INTDIR)\xpath.obj\ | 152 $(XML_INTDIR)\xpath.obj\ |
142 $(XML_INTDIR)\xpointer.obj\ | 153 $(XML_INTDIR)\xpointer.obj\ |
143 $(XML_INTDIR)\xmlstring.obj | 154 $(XML_INTDIR)\xmlstring.obj |
144 | 155 |
145 # Static libxml object files. | 156 # Static libxml object files. |
146 XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\ | 157 XML_OBJS_A = $(XML_INTDIR_A)\buf.obj\ |
| 158 » $(XML_INTDIR_A)\c14n.obj\ |
147 $(XML_INTDIR_A)\catalog.obj\ | 159 $(XML_INTDIR_A)\catalog.obj\ |
148 $(XML_INTDIR_A)\chvalid.obj\ | 160 $(XML_INTDIR_A)\chvalid.obj\ |
149 $(XML_INTDIR_A)\debugXML.obj\ | 161 $(XML_INTDIR_A)\debugXML.obj\ |
150 $(XML_INTDIR_A)\dict.obj\ | 162 $(XML_INTDIR_A)\dict.obj\ |
151 $(XML_INTDIR_A)\DOCBparser.obj\ | 163 $(XML_INTDIR_A)\DOCBparser.obj\ |
152 $(XML_INTDIR_A)\encoding.obj\ | 164 $(XML_INTDIR_A)\encoding.obj\ |
153 $(XML_INTDIR_A)\entities.obj\ | 165 $(XML_INTDIR_A)\entities.obj\ |
154 $(XML_INTDIR_A)\error.obj\ | 166 $(XML_INTDIR_A)\error.obj\ |
155 $(XML_INTDIR_A)\globals.obj\ | 167 $(XML_INTDIR_A)\globals.obj\ |
156 $(XML_INTDIR_A)\hash.obj\ | 168 $(XML_INTDIR_A)\hash.obj\ |
(...skipping 24 matching lines...) Expand all Loading... |
181 $(XML_INTDIR_A)\xmlsave.obj\ | 193 $(XML_INTDIR_A)\xmlsave.obj\ |
182 $(XML_INTDIR_A)\xmlschemas.obj\ | 194 $(XML_INTDIR_A)\xmlschemas.obj\ |
183 $(XML_INTDIR_A)\xmlschemastypes.obj\ | 195 $(XML_INTDIR_A)\xmlschemastypes.obj\ |
184 $(XML_INTDIR_A)\xmlunicode.obj\ | 196 $(XML_INTDIR_A)\xmlunicode.obj\ |
185 $(XML_INTDIR_A)\xmlwriter.obj\ | 197 $(XML_INTDIR_A)\xmlwriter.obj\ |
186 $(XML_INTDIR_A)\xpath.obj\ | 198 $(XML_INTDIR_A)\xpath.obj\ |
187 $(XML_INTDIR_A)\xpointer.obj\ | 199 $(XML_INTDIR_A)\xpointer.obj\ |
188 $(XML_INTDIR_A)\xmlstring.obj | 200 $(XML_INTDIR_A)\xmlstring.obj |
189 | 201 |
190 # Static libxml object files. | 202 # Static libxml object files. |
191 XML_OBJS_A_DLL = $(XML_INTDIR_A_DLL)\c14n.obj\ | 203 XML_OBJS_A_DLL = $(XML_INTDIR_A_DLL)\buf.obj\ |
| 204 » $(XML_INTDIR_A_DLL)\c14n.obj\ |
192 $(XML_INTDIR_A_DLL)\catalog.obj\ | 205 $(XML_INTDIR_A_DLL)\catalog.obj\ |
193 $(XML_INTDIR_A_DLL)\chvalid.obj\ | 206 $(XML_INTDIR_A_DLL)\chvalid.obj\ |
194 $(XML_INTDIR_A_DLL)\debugXML.obj\ | 207 $(XML_INTDIR_A_DLL)\debugXML.obj\ |
195 $(XML_INTDIR_A_DLL)\dict.obj\ | 208 $(XML_INTDIR_A_DLL)\dict.obj\ |
196 $(XML_INTDIR_A_DLL)\DOCBparser.obj\ | 209 $(XML_INTDIR_A_DLL)\DOCBparser.obj\ |
197 $(XML_INTDIR_A_DLL)\encoding.obj\ | 210 $(XML_INTDIR_A_DLL)\encoding.obj\ |
198 $(XML_INTDIR_A_DLL)\entities.obj\ | 211 $(XML_INTDIR_A_DLL)\entities.obj\ |
199 $(XML_INTDIR_A_DLL)\error.obj\ | 212 $(XML_INTDIR_A_DLL)\error.obj\ |
200 $(XML_INTDIR_A_DLL)\globals.obj\ | 213 $(XML_INTDIR_A_DLL)\globals.obj\ |
201 $(XML_INTDIR_A_DLL)\hash.obj\ | 214 $(XML_INTDIR_A_DLL)\hash.obj\ |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 $(BINDIR)\testReader.exe\ | 255 $(BINDIR)\testReader.exe\ |
243 $(BINDIR)\testRelax.exe\ | 256 $(BINDIR)\testRelax.exe\ |
244 $(BINDIR)\testRegexp.exe\ | 257 $(BINDIR)\testRegexp.exe\ |
245 $(BINDIR)\testModule.exe\ | 258 $(BINDIR)\testModule.exe\ |
246 $(BINDIR)\testSAX.exe\ | 259 $(BINDIR)\testSAX.exe\ |
247 $(BINDIR)\testSchemas.exe\ | 260 $(BINDIR)\testSchemas.exe\ |
248 $(BINDIR)\testURI.exe\ | 261 $(BINDIR)\testURI.exe\ |
249 $(BINDIR)\testXPath.exe\ | 262 $(BINDIR)\testXPath.exe\ |
250 $(BINDIR)\runtest.exe\ | 263 $(BINDIR)\runtest.exe\ |
251 $(BINDIR)\runsuite.exe\ | 264 $(BINDIR)\runsuite.exe\ |
252 » $(BINDIR)\testapi.exe | 265 » $(BINDIR)\testapi.exe\ |
| 266 » $(BINDIR)\testlimits.exe\ |
| 267 » $(BINDIR)\testrecurse.exe |
253 | 268 |
254 !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS
)" == "native" | 269 !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS
)" == "native" |
255 UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe | 270 UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe |
256 !else if "$(WITH_THREADS)" == "posix" | 271 !else if "$(WITH_THREADS)" == "posix" |
257 UTILS = $(UTILS) $(BINDIR)\testThreads.exe | 272 UTILS = $(UTILS) $(BINDIR)\testThreads.exe |
258 !endif | 273 !endif |
259 | 274 |
260 !if "$(VCMANIFEST)" == "1" | 275 !if "$(VCMANIFEST)" == "1" |
261 _VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifes
t -outputresource:$@;1 | 276 _VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifes
t -outputresource:$@;1 |
262 _VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifes
t -outputresource:$@;2 | 277 _VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifes
t -outputresource:$@;2 |
(...skipping 19 matching lines...) Expand all Loading... |
282 if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) | 297 if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) |
283 if exist $(BINDIR) rmdir /S /Q $(BINDIR) | 298 if exist $(BINDIR) rmdir /S /Q $(BINDIR) |
284 | 299 |
285 distclean : clean | 300 distclean : clean |
286 if exist config.* del config.* | 301 if exist config.* del config.* |
287 if exist Makefile del Makefile | 302 if exist Makefile del Makefile |
288 | 303 |
289 rebuild : clean all | 304 rebuild : clean all |
290 | 305 |
291 install-libs : all | 306 install-libs : all |
292 » if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml | 307 » if not exist $(INCPREFIX)\libxml2 mkdir $(INCPREFIX)\libxml2 |
| 308 » if not exist $(INCPREFIX)\libxml2\libxml mkdir $(INCPREFIX)\libxml2\libx
ml |
293 if not exist $(BINPREFIX) mkdir $(BINPREFIX) | 309 if not exist $(BINPREFIX) mkdir $(BINPREFIX) |
294 if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) | 310 if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) |
295 if not exist $(SOPREFIX) mkdir $(SOPREFIX) | 311 if not exist $(SOPREFIX) mkdir $(SOPREFIX) |
296 » copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml | 312 » copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml2\libxml |
297 copy $(BINDIR)\$(XML_SO) $(SOPREFIX) | 313 copy $(BINDIR)\$(XML_SO) $(SOPREFIX) |
298 copy $(BINDIR)\$(XML_A) $(LIBPREFIX) | 314 copy $(BINDIR)\$(XML_A) $(LIBPREFIX) |
299 copy $(BINDIR)\$(XML_A_DLL) $(LIBPREFIX) | 315 copy $(BINDIR)\$(XML_A_DLL) $(LIBPREFIX) |
300 copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX) | 316 copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX) |
301 | 317 |
302 install : install-libs | 318 install : install-libs |
303 copy $(BINDIR)\*.exe $(BINPREFIX) | 319 copy $(BINDIR)\*.exe $(BINPREFIX) |
304 -copy $(BINDIR)\*.pdb $(BINPREFIX) | 320 -copy $(BINDIR)\*.pdb $(BINPREFIX) |
305 | 321 |
306 install-dist : install-libs | 322 install-dist : install-libs |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 !endif | 410 !endif |
395 | 411 |
396 # Builds xmllint and friends. Uses the implicit rule for commands. | 412 # Builds xmllint and friends. Uses the implicit rule for commands. |
397 $(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla libxmladll | 413 $(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla libxmladll |
398 | 414 |
399 # Source dependences should be autogenerated somehow here, but how to | 415 # Source dependences should be autogenerated somehow here, but how to |
400 # do it? I have no clue. | 416 # do it? I have no clue. |
401 | 417 |
402 # TESTS | 418 # TESTS |
403 | 419 |
404 tests : XPathtests | 420 tests : checktests XPathtests |
| 421 |
| 422 checktests : $(UTILS) |
| 423 » cd .. && win32\$(BINDIR)\runtest.exe |
| 424 » cd .. && win32\$(BINDIR)\testrecurse.exe |
| 425 » cd .. && win32\$(BINDIR)\testapi.exe |
| 426 » cd .. && win32\$(BINDIR)\testchar.exe |
| 427 » cd .. && win32\$(BINDIR)\testdict.exe |
| 428 » cd .. && win32\$(BINDIR)\runxmlconf.exe |
405 | 429 |
406 XPathtests : $(BINDIR)\testXPath.exe | 430 XPathtests : $(BINDIR)\testXPath.exe |
407 @echo. 2> .memdump | 431 @echo. 2> .memdump |
408 @echo ## XPath regression tests | 432 @echo ## XPath regression tests |
409 @-$(BINDIR)\testXPath.exe | find /C "support not compiled in" 1>nul | 433 @-$(BINDIR)\testXPath.exe | find /C "support not compiled in" 1>nul |
410 @if %ERRORLEVEL% NEQ 0 @( \ | 434 @if %ERRORLEVEL% NEQ 0 @( \ |
411 echo Skipping debug not compiled in\ | 435 echo Skipping debug not compiled in\ |
412 @exit 0 \ | 436 @exit 0 \ |
413 ) | 437 ) |
414 @for %%I in ($(XML_SRCDIR)\test\XPath\expr\*.*) do @( \ | 438 @for %%I in ($(XML_SRCDIR)\test\XPath\expr\*.*) do @( \ |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 fc result.%%~nxI result2.%%~nxI & \ | 480 fc result.%%~nxI result2.%%~nxI & \ |
457 del result.%%~nxI result2.%%~nxI\ | 481 del result.%%~nxI result2.%%~nxI\ |
458 ) \ | 482 ) \ |
459 ) | 483 ) |
460 | 484 |
461 | 485 |
462 | 486 |
463 | 487 |
464 | 488 |
465 | 489 |
OLD | NEW |