diff options
Diffstat (limited to 'DOC/readme.txt')
| -rw-r--r-- | DOC/readme.txt | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/DOC/readme.txt b/DOC/readme.txt index cc89a39..26d0f5a 100644 --- a/DOC/readme.txt +++ b/DOC/readme.txt | |||
| @@ -1,15 +1,15 @@ | |||
| 1 | 7-Zip 25.01 Sources | 1 | 7-Zip 26.00 Sources |
| 2 | ------------------- | 2 | ------------------- |
| 3 | 3 | ||
| 4 | 7-Zip is a file archiver for Windows. | 4 | 7-Zip is a file archiver for Windows. |
| 5 | 5 | ||
| 6 | 7-Zip Copyright (C) 1999-2025 Igor Pavlov. | 6 | 7-Zip Copyright (C) 1999-2026 Igor Pavlov. |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | License Info | 9 | License Info |
| 10 | ------------ | 10 | ------------ |
| 11 | 11 | ||
| 12 | 7-Zip is free software distributed under the GNU LGPL | 12 | 7-Zip is free software distributed under the GNU LGPL |
| 13 | (except for unRar code). Also some code | 13 | (except for unRar code). Also some code |
| 14 | is licensed under the "BSD 3-clause License". | 14 | is licensed under the "BSD 3-clause License". |
| 15 | Read "License.txt" for more infomation about license. | 15 | Read "License.txt" for more infomation about license. |
| @@ -27,7 +27,7 @@ Please check main restriction from unRar license: | |||
| 27 | not be used to develop a RAR (WinRAR) compatible archiver. | 27 | not be used to develop a RAR (WinRAR) compatible archiver. |
| 28 | 28 | ||
| 29 | In brief it means: | 29 | In brief it means: |
| 30 | 1) You can compile and use compiled files under GNU LGPL rules, since | 30 | 1) You can compile and use compiled files under GNU LGPL rules, since |
| 31 | unRAR license almost has no restrictions for compiled files. | 31 | unRAR license almost has no restrictions for compiled files. |
| 32 | You can link these compiled files to LGPL programs. | 32 | You can link these compiled files to LGPL programs. |
| 33 | 2) You can fix bugs in source code and use compiled fixed version. | 33 | 2) You can fix bugs in source code and use compiled fixed version. |
| @@ -60,7 +60,7 @@ Tools / Options / Directories | |||
| 60 | - Library files | 60 | - Library files |
| 61 | 61 | ||
| 62 | Also you need Microsoft Macro Assembler: | 62 | Also you need Microsoft Macro Assembler: |
| 63 | - ml.exe for x86 | 63 | - ml.exe for x86 |
| 64 | - ml64.exe for x64 | 64 | - ml64.exe for x64 |
| 65 | You can use ml.exe from Windows SDK for Windows Vista or some later versions. | 65 | You can use ml.exe from Windows SDK for Windows Vista or some later versions. |
| 66 | 66 | ||
| @@ -85,7 +85,7 @@ OLD_COMPILER | |||
| 85 | for old VC compiler, like MSCV 6.0. | 85 | for old VC compiler, like MSCV 6.0. |
| 86 | 86 | ||
| 87 | MY_DYNAMIC_LINK | 87 | MY_DYNAMIC_LINK |
| 88 | for dynamic linking to the run-time library (msvcrt.dll). | 88 | for dynamic linking to the run-time library (msvcrt.dll). |
| 89 | The default makefile option is static linking to the run-time library. | 89 | The default makefile option is static linking to the run-time library. |
| 90 | 90 | ||
| 91 | To compile all 7-Zip files for x64 with Visual Studio 2022, | 91 | To compile all 7-Zip files for x64 with Visual Studio 2022, |
| @@ -116,23 +116,23 @@ So if you compile the version with Assembeler code, you will get faster 7-Zip bi | |||
| 116 | 116 | ||
| 117 | 7-Zip's assembler code uses the following syntax for different platforms: | 117 | 7-Zip's assembler code uses the following syntax for different platforms: |
| 118 | 118 | ||
| 119 | 1) x86 and x86-64 (AMD64): MASM syntax. | 119 | 1) x86 and x86-64 (AMD64): MASM syntax. |
| 120 | Now there are 3 programs that supports MASM syntax in Linux. | 120 | Now there are 3 programs that supports MASM syntax in Linux. |
| 121 | ' 'Asmc Macro Assembler, JWasm, and UASM. Note that JWasm now doesn't support some | 121 | ' 'Asmc Macro Assembler, JWasm, and UASM. Note that JWasm now doesn't support some |
| 122 | cpu instructions used in 7-Zip. | 122 | cpu instructions used in 7-Zip. |
| 123 | So you must install Asmc Macro Assembler in Linux or UASM, if you want to compile | 123 | So you must install Asmc Macro Assembler in Linux or UASM, if you want to compile |
| 124 | fastest version of 7-Zip x86 and x86-64: | 124 | fastest version of 7-Zip x86 and x86-64: |
| 125 | https://github.com/nidud/asmc | 125 | https://github.com/nidud/asmc |
| 126 | https://github.com/Terraspace/UASM | 126 | https://github.com/Terraspace/UASM |
| 127 | 127 | ||
| 128 | 128 | ||
| 129 | 2) arm64: GNU assembler for ARM64 with preprocessor. | 129 | 2) arm64: GNU assembler for ARM64 with preprocessor. |
| 130 | That systax is supported by GCC and CLANG for ARM64. | 130 | That systax is supported by GCC and CLANG for ARM64. |
| 131 | 131 | ||
| 132 | There are different binaries that can be compiled from 7-Zip source. | 132 | There are different binaries that can be compiled from 7-Zip source. |
| 133 | There are 2 main files in folder for compiling: | 133 | There are 2 main files in folder for compiling: |
| 134 | makefile - that can be used for compiling Windows version of 7-Zip with nmake command | 134 | makefile - that can be used for compiling Windows version of 7-Zip with nmake command |
| 135 | makefile.gcc - that can be used for compiling Linux/macOS versions of 7-Zip or Windows version | 135 | makefile.gcc - that can be used for compiling Linux/macOS versions of 7-Zip or Windows version |
| 136 | with MINGW (GCC) with make command. | 136 | with MINGW (GCC) with make command. |
| 137 | 137 | ||
| 138 | At first you must change the current folder to folder that contains `makefile.gcc`: | 138 | At first you must change the current folder to folder that contains `makefile.gcc`: |
| @@ -143,7 +143,7 @@ Then you can compile `makefile.gcc` with the command: | |||
| 143 | 143 | ||
| 144 | make -j -f makefile.gcc | 144 | make -j -f makefile.gcc |
| 145 | 145 | ||
| 146 | Also there are additional "*.mak" files in folder "CPP/7zip/" that can be used to compile | 146 | Also there are additional "*.mak" files in folder "CPP/7zip/" that can be used to compile |
| 147 | 7-Zip binaries with optimized code and optimzing options. | 147 | 7-Zip binaries with optimized code and optimzing options. |
| 148 | 148 | ||
| 149 | To compile with GCC without assembler: | 149 | To compile with GCC without assembler: |
| @@ -171,10 +171,10 @@ makefile.gcc supports some variables that can change compile options | |||
| 171 | 171 | ||
| 172 | USE_JWASM=1 | 172 | USE_JWASM=1 |
| 173 | use JWasm assembler instead of Asmc. | 173 | use JWasm assembler instead of Asmc. |
| 174 | Note that JWasm doesn't support AES instructions. So AES code from C version AesOpt.c | 174 | Note that JWasm doesn't support AES instructions. So AES code from C version AesOpt.c |
| 175 | will be used instead of assembler code from AesOpt.asm. | 175 | will be used instead of assembler code from AesOpt.asm. |
| 176 | 176 | ||
| 177 | If you want to use UASM for x86-64 compiling, you can change 7zip_gcc.mak, | 177 | If you want to use UASM for x86-64 compiling, you can change 7zip_gcc.mak, |
| 178 | or send IS_X64=1 USE_ASM=1 MY_ASM="$UASM" to make command calling: | 178 | or send IS_X64=1 USE_ASM=1 MY_ASM="$UASM" to make command calling: |
| 179 | UASM="$PWD/GccUnixR/uasm" | 179 | UASM="$PWD/GccUnixR/uasm" |
| 180 | cd "7zip-src/CPP/7zip/Bundles/Alone2" | 180 | cd "7zip-src/CPP/7zip/Bundles/Alone2" |
| @@ -187,11 +187,11 @@ DISABLE_RAR=1 | |||
| 187 | DISABLE_RAR_COMPRESS=1 | 187 | DISABLE_RAR_COMPRESS=1 |
| 188 | removes "not fully free" code of RAR decompression codecs from compilation. | 188 | removes "not fully free" code of RAR decompression codecs from compilation. |
| 189 | 189 | ||
| 190 | RAR decompression codecs in 7-Zip code has some additional license restrictions, | 190 | RAR decompression codecs in 7-Zip code has some additional license restrictions, |
| 191 | that can be treated as not fully compatible with free-software licenses. | 191 | that can be treated as not fully compatible with free-software licenses. |
| 192 | DISABLE_RAR_COMPRESS=1 allows to exclude such "not-fully-free" RAR code from compilation. | 192 | DISABLE_RAR_COMPRESS=1 allows to exclude such "not-fully-free" RAR code from compilation. |
| 193 | if DISABLE_RAR_COMPRESS=1 is specified, 7-zip will not be able to decompress files | 193 | if DISABLE_RAR_COMPRESS=1 is specified, 7-zip will not be able to decompress files |
| 194 | from rar archives, but 7-zip still will be able to open rar archives to get list of | 194 | from rar archives, but 7-zip still will be able to open rar archives to get list of |
| 195 | files or to extract files that are stored without compression. | 195 | files or to extract files that are stored without compression. |
| 196 | if DISABLE_RAR=1 is specified, 7-zip will not be able to work with RAR archives. | 196 | if DISABLE_RAR=1 is specified, 7-zip will not be able to work with RAR archives. |
| 197 | 197 | ||
| @@ -203,11 +203,11 @@ Now there are two different ports of 7-Zip for Linux/macOS: | |||
| 203 | 203 | ||
| 204 | 1) p7zip - another port of 7-Zip for Linux, made by an independent developer. | 204 | 1) p7zip - another port of 7-Zip for Linux, made by an independent developer. |
| 205 | The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now. | 205 | The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now. |
| 206 | http://sourceforge.net/projects/p7zip/ | 206 | http://sourceforge.net/projects/p7zip/ |
| 207 | 207 | ||
| 208 | 2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows. | 208 | 2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows. |
| 209 | 209 | ||
| 210 | These two ports are not identical. | 210 | These two ports are not identical. |
| 211 | Note also that some Linux specific things can be implemented better in p7zip than in new 7-Zip for Linux. | 211 | Note also that some Linux specific things can be implemented better in p7zip than in new 7-Zip for Linux. |
| 212 | 212 | ||
| 213 | 213 | ||
| @@ -218,13 +218,13 @@ Notes: | |||
| 218 | 7-Zip consists of COM modules (DLL files). | 218 | 7-Zip consists of COM modules (DLL files). |
| 219 | But 7-Zip doesn't use standard COM interfaces for creating objects. | 219 | But 7-Zip doesn't use standard COM interfaces for creating objects. |
| 220 | Look at | 220 | Look at |
| 221 | 7zip\UI\Client7z folder for example of using DLL files of 7-Zip. | 221 | 7zip\UI\Client7z folder for example of using DLL files of 7-Zip. |
| 222 | Some DLL files can use other DLL files from 7-Zip. | 222 | Some DLL files can use other DLL files from 7-Zip. |
| 223 | If you don't like it, you must use standalone version of DLL. | 223 | If you don't like it, you must use standalone version of DLL. |
| 224 | To compile standalone version of DLL you must include all used parts | 224 | To compile standalone version of DLL you must include all used parts |
| 225 | to project and define some defs. | 225 | to project and define some defs. |
| 226 | For example, 7zip\Bundles\Format7z is a standalone version of 7z.dll | 226 | For example, 7zip\Bundles\Format7z is a standalone version of 7z.dll |
| 227 | that works with 7z format. So you can use such DLL in your project | 227 | that works with 7z format. So you can use such DLL in your project |
| 228 | without additional DLL files. | 228 | without additional DLL files. |
| 229 | 229 | ||
| 230 | 230 | ||
| @@ -284,7 +284,7 @@ Windows common files for Windows related code | |||
| 284 | UI | 284 | UI |
| 285 | 285 | ||
| 286 | Agent Intermediary modules for FAR plugin and Explorer plugin | 286 | Agent Intermediary modules for FAR plugin and Explorer plugin |
| 287 | Client7z Test application for 7za.dll | 287 | Client7z Test application for 7za.dll |
| 288 | Common Common UI files | 288 | Common Common UI files |
| 289 | Console 7z.exe : Console version | 289 | Console 7z.exe : Console version |
| 290 | Explorer 7-zip.dll: 7-Zip Shell extension | 290 | Explorer 7-zip.dll: 7-Zip Shell extension |
