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/Util/Lzma | |
| 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/Util/Lzma')
| -rw-r--r-- | C/Util/Lzma/LzmaUtil.c | 286 | ||||
| -rw-r--r-- | C/Util/Lzma/LzmaUtil.dsp | 172 | ||||
| -rw-r--r-- | C/Util/Lzma/LzmaUtil.dsw | 29 | ||||
| -rw-r--r-- | C/Util/Lzma/makefile | 30 | ||||
| -rw-r--r-- | C/Util/Lzma/makefile.gcc | 21 |
5 files changed, 538 insertions, 0 deletions
diff --git a/C/Util/Lzma/LzmaUtil.c b/C/Util/Lzma/LzmaUtil.c new file mode 100644 index 0000000..62a5907 --- /dev/null +++ b/C/Util/Lzma/LzmaUtil.c | |||
| @@ -0,0 +1,286 @@ | |||
| 1 | /* LzmaUtil.c -- Test application for LZMA compression | ||
| 2 | 2021-11-01 : Igor Pavlov : Public domain */ | ||
| 3 | |||
| 4 | #include "../../Precomp.h" | ||
| 5 | |||
| 6 | #include <stdio.h> | ||
| 7 | #include <stdlib.h> | ||
| 8 | #include <string.h> | ||
| 9 | |||
| 10 | #include "../../CpuArch.h" | ||
| 11 | |||
| 12 | #include "../../Alloc.h" | ||
| 13 | #include "../../7zFile.h" | ||
| 14 | #include "../../7zVersion.h" | ||
| 15 | #include "../../LzFind.h" | ||
| 16 | #include "../../LzmaDec.h" | ||
| 17 | #include "../../LzmaEnc.h" | ||
| 18 | |||
| 19 | static const char * const kCantReadMessage = "Cannot read input file"; | ||
| 20 | static const char * const kCantWriteMessage = "Cannot write output file"; | ||
| 21 | static const char * const kCantAllocateMessage = "Cannot allocate memory"; | ||
| 22 | static const char * const kDataErrorMessage = "Data error"; | ||
| 23 | |||
| 24 | static void PrintHelp(char *buffer) | ||
| 25 | { | ||
| 26 | strcat(buffer, | ||
| 27 | "\nLZMA-C " MY_VERSION_CPU " : " MY_COPYRIGHT_DATE "\n\n" | ||
| 28 | "Usage: lzma <e|d> inputFile outputFile\n" | ||
| 29 | " e: encode file\n" | ||
| 30 | " d: decode file\n"); | ||
| 31 | } | ||
| 32 | |||
| 33 | static int PrintError(char *buffer, const char *message) | ||
| 34 | { | ||
| 35 | strcat(buffer, "\nError: "); | ||
| 36 | strcat(buffer, message); | ||
| 37 | strcat(buffer, "\n"); | ||
| 38 | return 1; | ||
| 39 | } | ||
| 40 | |||
| 41 | static int PrintError_WRes(char *buffer, const char *message, WRes wres) | ||
| 42 | { | ||
| 43 | strcat(buffer, "\nError: "); | ||
| 44 | strcat(buffer, message); | ||
| 45 | sprintf(buffer + strlen(buffer), "\nSystem error code: %d", (unsigned)wres); | ||
| 46 | #ifndef _WIN32 | ||
| 47 | { | ||
| 48 | const char *s = strerror(wres); | ||
| 49 | if (s) | ||
| 50 | sprintf(buffer + strlen(buffer), " : %s", s); | ||
| 51 | } | ||
| 52 | #endif | ||
| 53 | strcat(buffer, "\n"); | ||
| 54 | return 1; | ||
| 55 | } | ||
| 56 | |||
| 57 | static int PrintErrorNumber(char *buffer, SRes val) | ||
| 58 | { | ||
| 59 | sprintf(buffer + strlen(buffer), "\n7-Zip error code: %d\n", (unsigned)val); | ||
| 60 | return 1; | ||
| 61 | } | ||
| 62 | |||
| 63 | static int PrintUserError(char *buffer) | ||
| 64 | { | ||
| 65 | return PrintError(buffer, "Incorrect command"); | ||
| 66 | } | ||
| 67 | |||
| 68 | |||
| 69 | #define IN_BUF_SIZE (1 << 16) | ||
| 70 | #define OUT_BUF_SIZE (1 << 16) | ||
| 71 | |||
| 72 | |||
| 73 | static SRes Decode2(CLzmaDec *state, ISeqOutStream *outStream, ISeqInStream *inStream, | ||
| 74 | UInt64 unpackSize) | ||
| 75 | { | ||
| 76 | int thereIsSize = (unpackSize != (UInt64)(Int64)-1); | ||
| 77 | Byte inBuf[IN_BUF_SIZE]; | ||
| 78 | Byte outBuf[OUT_BUF_SIZE]; | ||
| 79 | size_t inPos = 0, inSize = 0, outPos = 0; | ||
| 80 | LzmaDec_Init(state); | ||
| 81 | for (;;) | ||
| 82 | { | ||
| 83 | if (inPos == inSize) | ||
| 84 | { | ||
| 85 | inSize = IN_BUF_SIZE; | ||
| 86 | RINOK(inStream->Read(inStream, inBuf, &inSize)); | ||
| 87 | inPos = 0; | ||
| 88 | } | ||
| 89 | { | ||
| 90 | SRes res; | ||
| 91 | SizeT inProcessed = inSize - inPos; | ||
| 92 | SizeT outProcessed = OUT_BUF_SIZE - outPos; | ||
| 93 | ELzmaFinishMode finishMode = LZMA_FINISH_ANY; | ||
| 94 | ELzmaStatus status; | ||
| 95 | if (thereIsSize && outProcessed > unpackSize) | ||
| 96 | { | ||
| 97 | outProcessed = (SizeT)unpackSize; | ||
| 98 | finishMode = LZMA_FINISH_END; | ||
| 99 | } | ||
| 100 | |||
| 101 | res = LzmaDec_DecodeToBuf(state, outBuf + outPos, &outProcessed, | ||
| 102 | inBuf + inPos, &inProcessed, finishMode, &status); | ||
| 103 | inPos += inProcessed; | ||
| 104 | outPos += outProcessed; | ||
| 105 | unpackSize -= outProcessed; | ||
| 106 | |||
| 107 | if (outStream) | ||
| 108 | if (outStream->Write(outStream, outBuf, outPos) != outPos) | ||
| 109 | return SZ_ERROR_WRITE; | ||
| 110 | |||
| 111 | outPos = 0; | ||
| 112 | |||
| 113 | if (res != SZ_OK || (thereIsSize && unpackSize == 0)) | ||
| 114 | return res; | ||
| 115 | |||
| 116 | if (inProcessed == 0 && outProcessed == 0) | ||
| 117 | { | ||
| 118 | if (thereIsSize || status != LZMA_STATUS_FINISHED_WITH_MARK) | ||
| 119 | return SZ_ERROR_DATA; | ||
| 120 | return res; | ||
| 121 | } | ||
| 122 | } | ||
| 123 | } | ||
| 124 | } | ||
| 125 | |||
| 126 | |||
| 127 | static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream) | ||
| 128 | { | ||
| 129 | UInt64 unpackSize; | ||
| 130 | int i; | ||
| 131 | SRes res = 0; | ||
| 132 | |||
| 133 | CLzmaDec state; | ||
| 134 | |||
| 135 | /* header: 5 bytes of LZMA properties and 8 bytes of uncompressed size */ | ||
| 136 | unsigned char header[LZMA_PROPS_SIZE + 8]; | ||
| 137 | |||
| 138 | /* Read and parse header */ | ||
| 139 | |||
| 140 | RINOK(SeqInStream_Read(inStream, header, sizeof(header))); | ||
| 141 | |||
| 142 | unpackSize = 0; | ||
| 143 | for (i = 0; i < 8; i++) | ||
| 144 | unpackSize += (UInt64)header[LZMA_PROPS_SIZE + i] << (i * 8); | ||
| 145 | |||
| 146 | LzmaDec_Construct(&state); | ||
| 147 | RINOK(LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc)); | ||
| 148 | res = Decode2(&state, outStream, inStream, unpackSize); | ||
| 149 | LzmaDec_Free(&state, &g_Alloc); | ||
| 150 | return res; | ||
| 151 | } | ||
| 152 | |||
| 153 | static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize, char *rs) | ||
| 154 | { | ||
| 155 | CLzmaEncHandle enc; | ||
| 156 | SRes res; | ||
| 157 | CLzmaEncProps props; | ||
| 158 | |||
| 159 | UNUSED_VAR(rs); | ||
| 160 | |||
| 161 | enc = LzmaEnc_Create(&g_Alloc); | ||
| 162 | if (enc == 0) | ||
| 163 | return SZ_ERROR_MEM; | ||
| 164 | |||
| 165 | LzmaEncProps_Init(&props); | ||
| 166 | res = LzmaEnc_SetProps(enc, &props); | ||
| 167 | |||
| 168 | if (res == SZ_OK) | ||
| 169 | { | ||
| 170 | Byte header[LZMA_PROPS_SIZE + 8]; | ||
| 171 | size_t headerSize = LZMA_PROPS_SIZE; | ||
| 172 | int i; | ||
| 173 | |||
| 174 | res = LzmaEnc_WriteProperties(enc, header, &headerSize); | ||
| 175 | for (i = 0; i < 8; i++) | ||
| 176 | header[headerSize++] = (Byte)(fileSize >> (8 * i)); | ||
| 177 | if (outStream->Write(outStream, header, headerSize) != headerSize) | ||
| 178 | res = SZ_ERROR_WRITE; | ||
| 179 | else | ||
| 180 | { | ||
| 181 | if (res == SZ_OK) | ||
| 182 | res = LzmaEnc_Encode(enc, outStream, inStream, NULL, &g_Alloc, &g_Alloc); | ||
| 183 | } | ||
| 184 | } | ||
| 185 | LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc); | ||
| 186 | return res; | ||
| 187 | } | ||
| 188 | |||
| 189 | |||
| 190 | static int main2(int numArgs, const char *args[], char *rs) | ||
| 191 | { | ||
| 192 | CFileSeqInStream inStream; | ||
| 193 | CFileOutStream outStream; | ||
| 194 | char c; | ||
| 195 | int res; | ||
| 196 | int encodeMode; | ||
| 197 | BoolInt useOutFile = False; | ||
| 198 | |||
| 199 | LzFindPrepare(); | ||
| 200 | |||
| 201 | FileSeqInStream_CreateVTable(&inStream); | ||
| 202 | File_Construct(&inStream.file); | ||
| 203 | inStream.wres = 0; | ||
| 204 | |||
| 205 | FileOutStream_CreateVTable(&outStream); | ||
| 206 | File_Construct(&outStream.file); | ||
| 207 | outStream.wres = 0; | ||
| 208 | |||
| 209 | if (numArgs == 1) | ||
| 210 | { | ||
| 211 | PrintHelp(rs); | ||
| 212 | return 0; | ||
| 213 | } | ||
| 214 | |||
| 215 | if (numArgs < 3 || numArgs > 4 || strlen(args[1]) != 1) | ||
| 216 | return PrintUserError(rs); | ||
| 217 | |||
| 218 | c = args[1][0]; | ||
| 219 | encodeMode = (c == 'e' || c == 'E'); | ||
| 220 | if (!encodeMode && c != 'd' && c != 'D') | ||
| 221 | return PrintUserError(rs); | ||
| 222 | |||
| 223 | { | ||
| 224 | size_t t4 = sizeof(UInt32); | ||
| 225 | size_t t8 = sizeof(UInt64); | ||
| 226 | if (t4 != 4 || t8 != 8) | ||
| 227 | return PrintError(rs, "Incorrect UInt32 or UInt64"); | ||
| 228 | } | ||
| 229 | |||
| 230 | { | ||
| 231 | WRes wres = InFile_Open(&inStream.file, args[2]); | ||
| 232 | if (wres != 0) | ||
| 233 | return PrintError_WRes(rs, "Cannot open input file", wres); | ||
| 234 | } | ||
| 235 | |||
| 236 | if (numArgs > 3) | ||
| 237 | { | ||
| 238 | WRes wres; | ||
| 239 | useOutFile = True; | ||
| 240 | wres = OutFile_Open(&outStream.file, args[3]); | ||
| 241 | if (wres != 0) | ||
| 242 | return PrintError_WRes(rs, "Cannot open output file", wres); | ||
| 243 | } | ||
| 244 | else if (encodeMode) | ||
| 245 | PrintUserError(rs); | ||
| 246 | |||
| 247 | if (encodeMode) | ||
| 248 | { | ||
| 249 | UInt64 fileSize; | ||
| 250 | WRes wres = File_GetLength(&inStream.file, &fileSize); | ||
| 251 | if (wres != 0) | ||
| 252 | return PrintError_WRes(rs, "Cannot get file length", wres); | ||
| 253 | res = Encode(&outStream.vt, &inStream.vt, fileSize, rs); | ||
| 254 | } | ||
| 255 | else | ||
| 256 | { | ||
| 257 | res = Decode(&outStream.vt, useOutFile ? &inStream.vt : NULL); | ||
| 258 | } | ||
| 259 | |||
| 260 | if (useOutFile) | ||
| 261 | File_Close(&outStream.file); | ||
| 262 | File_Close(&inStream.file); | ||
| 263 | |||
| 264 | if (res != SZ_OK) | ||
| 265 | { | ||
| 266 | if (res == SZ_ERROR_MEM) | ||
| 267 | return PrintError(rs, kCantAllocateMessage); | ||
| 268 | else if (res == SZ_ERROR_DATA) | ||
| 269 | return PrintError(rs, kDataErrorMessage); | ||
| 270 | else if (res == SZ_ERROR_WRITE) | ||
| 271 | return PrintError_WRes(rs, kCantWriteMessage, outStream.wres); | ||
| 272 | else if (res == SZ_ERROR_READ) | ||
| 273 | return PrintError_WRes(rs, kCantReadMessage, inStream.wres); | ||
| 274 | return PrintErrorNumber(rs, res); | ||
| 275 | } | ||
| 276 | return 0; | ||
| 277 | } | ||
| 278 | |||
| 279 | |||
| 280 | int MY_CDECL main(int numArgs, const char *args[]) | ||
| 281 | { | ||
| 282 | char rs[1000] = { 0 }; | ||
| 283 | int res = main2(numArgs, args, rs); | ||
| 284 | fputs(rs, stdout); | ||
| 285 | return res; | ||
| 286 | } | ||
diff --git a/C/Util/Lzma/LzmaUtil.dsp b/C/Util/Lzma/LzmaUtil.dsp new file mode 100644 index 0000000..4e38e4a --- /dev/null +++ b/C/Util/Lzma/LzmaUtil.dsp | |||
| @@ -0,0 +1,172 @@ | |||
| 1 | # Microsoft Developer Studio Project File - Name="LzmaUtil" - Package Owner=<4> | ||
| 2 | # Microsoft Developer Studio Generated Build File, Format Version 6.00 | ||
| 3 | # ** DO NOT EDIT ** | ||
| 4 | |||
| 5 | # TARGTYPE "Win32 (x86) Console Application" 0x0103 | ||
| 6 | |||
| 7 | CFG=LzmaUtil - Win32 Debug | ||
| 8 | !MESSAGE This is not a valid makefile. To build this project using NMAKE, | ||
| 9 | !MESSAGE use the Export Makefile command and run | ||
| 10 | !MESSAGE | ||
| 11 | !MESSAGE NMAKE /f "LzmaUtil.mak". | ||
| 12 | !MESSAGE | ||
| 13 | !MESSAGE You can specify a configuration when running NMAKE | ||
| 14 | !MESSAGE by defining the macro CFG on the command line. For example: | ||
| 15 | !MESSAGE | ||
| 16 | !MESSAGE NMAKE /f "LzmaUtil.mak" CFG="LzmaUtil - Win32 Debug" | ||
| 17 | !MESSAGE | ||
| 18 | !MESSAGE Possible choices for configuration are: | ||
| 19 | !MESSAGE | ||
| 20 | !MESSAGE "LzmaUtil - Win32 Release" (based on "Win32 (x86) Console Application") | ||
| 21 | !MESSAGE "LzmaUtil - Win32 Debug" (based on "Win32 (x86) Console Application") | ||
| 22 | !MESSAGE | ||
| 23 | |||
| 24 | # Begin Project | ||
| 25 | # PROP AllowPerConfigDependencies 0 | ||
| 26 | # PROP Scc_ProjName "" | ||
| 27 | # PROP Scc_LocalPath "" | ||
| 28 | CPP=cl.exe | ||
| 29 | RSC=rc.exe | ||
| 30 | |||
| 31 | !IF "$(CFG)" == "LzmaUtil - Win32 Release" | ||
| 32 | |||
| 33 | # PROP BASE Use_MFC 0 | ||
| 34 | # PROP BASE Use_Debug_Libraries 0 | ||
| 35 | # PROP BASE Output_Dir "Release" | ||
| 36 | # PROP BASE Intermediate_Dir "Release" | ||
| 37 | # PROP BASE Target_Dir "" | ||
| 38 | # PROP Use_MFC 0 | ||
| 39 | # PROP Use_Debug_Libraries 0 | ||
| 40 | # PROP Output_Dir "Release" | ||
| 41 | # PROP Intermediate_Dir "Release" | ||
| 42 | # PROP Ignore_Export_Lib 0 | ||
| 43 | # PROP Target_Dir "" | ||
| 44 | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||
| 45 | # ADD CPP /nologo /MT /W4 /WX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c | ||
| 46 | # SUBTRACT CPP /YX | ||
| 47 | # ADD BASE RSC /l 0x419 /d "NDEBUG" | ||
| 48 | # ADD RSC /l 0x419 /d "NDEBUG" | ||
| 49 | BSC32=bscmake.exe | ||
| 50 | # ADD BASE BSC32 /nologo | ||
| 51 | # ADD BSC32 /nologo | ||
| 52 | LINK32=link.exe | ||
| 53 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 | ||
| 54 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"c:\util\7lzma.exe" | ||
| 55 | |||
| 56 | !ELSEIF "$(CFG)" == "LzmaUtil - Win32 Debug" | ||
| 57 | |||
| 58 | # PROP BASE Use_MFC 0 | ||
| 59 | # PROP BASE Use_Debug_Libraries 1 | ||
| 60 | # PROP BASE Output_Dir "Debug" | ||
| 61 | # PROP BASE Intermediate_Dir "Debug" | ||
| 62 | # PROP BASE Target_Dir "" | ||
| 63 | # PROP Use_MFC 0 | ||
| 64 | # PROP Use_Debug_Libraries 1 | ||
| 65 | # PROP Output_Dir "Debug" | ||
| 66 | # PROP Intermediate_Dir "Debug" | ||
| 67 | # PROP Ignore_Export_Lib 0 | ||
| 68 | # PROP Target_Dir "" | ||
| 69 | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||
| 70 | # ADD CPP /nologo /MTd /W4 /WX /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c | ||
| 71 | # SUBTRACT CPP /YX | ||
| 72 | # ADD BASE RSC /l 0x419 /d "_DEBUG" | ||
| 73 | # ADD RSC /l 0x419 /d "_DEBUG" | ||
| 74 | BSC32=bscmake.exe | ||
| 75 | # ADD BASE BSC32 /nologo | ||
| 76 | # ADD BSC32 /nologo | ||
| 77 | LINK32=link.exe | ||
| 78 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||
| 79 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"c:\util\7lzma.exe" /pdbtype:sept | ||
| 80 | |||
| 81 | !ENDIF | ||
| 82 | |||
| 83 | # Begin Target | ||
| 84 | |||
| 85 | # Name "LzmaUtil - Win32 Release" | ||
| 86 | # Name "LzmaUtil - Win32 Debug" | ||
| 87 | # Begin Source File | ||
| 88 | |||
| 89 | SOURCE=..\..\7zFile.c | ||
| 90 | # End Source File | ||
| 91 | # Begin Source File | ||
| 92 | |||
| 93 | SOURCE=..\..\7zFile.h | ||
| 94 | # End Source File | ||
| 95 | # Begin Source File | ||
| 96 | |||
| 97 | SOURCE=..\..\7zStream.c | ||
| 98 | # End Source File | ||
| 99 | # Begin Source File | ||
| 100 | |||
| 101 | SOURCE=..\..\7zTypes.h | ||
| 102 | # End Source File | ||
| 103 | # Begin Source File | ||
| 104 | |||
| 105 | SOURCE=..\..\7zVersion.h | ||
| 106 | # End Source File | ||
| 107 | # Begin Source File | ||
| 108 | |||
| 109 | SOURCE=..\..\Alloc.c | ||
| 110 | # End Source File | ||
| 111 | # Begin Source File | ||
| 112 | |||
| 113 | SOURCE=..\..\Alloc.h | ||
| 114 | # End Source File | ||
| 115 | # Begin Source File | ||
| 116 | |||
| 117 | SOURCE=..\..\CpuArch.h | ||
| 118 | # End Source File | ||
| 119 | # Begin Source File | ||
| 120 | |||
| 121 | SOURCE=..\..\LzFind.c | ||
| 122 | # End Source File | ||
| 123 | # Begin Source File | ||
| 124 | |||
| 125 | SOURCE=..\..\LzFind.h | ||
| 126 | # End Source File | ||
| 127 | # Begin Source File | ||
| 128 | |||
| 129 | SOURCE=..\..\LzFindMt.c | ||
| 130 | # End Source File | ||
| 131 | # Begin Source File | ||
| 132 | |||
| 133 | SOURCE=..\..\LzFindMt.h | ||
| 134 | # End Source File | ||
| 135 | # Begin Source File | ||
| 136 | |||
| 137 | SOURCE=..\..\LzFindOpt.c | ||
| 138 | # End Source File | ||
| 139 | # Begin Source File | ||
| 140 | |||
| 141 | SOURCE=..\..\LzHash.h | ||
| 142 | # End Source File | ||
| 143 | # Begin Source File | ||
| 144 | |||
| 145 | SOURCE=..\..\LzmaDec.c | ||
| 146 | # End Source File | ||
| 147 | # Begin Source File | ||
| 148 | |||
| 149 | SOURCE=..\..\LzmaDec.h | ||
| 150 | # End Source File | ||
| 151 | # Begin Source File | ||
| 152 | |||
| 153 | SOURCE=..\..\LzmaEnc.c | ||
| 154 | # End Source File | ||
| 155 | # Begin Source File | ||
| 156 | |||
| 157 | SOURCE=..\..\LzmaEnc.h | ||
| 158 | # End Source File | ||
| 159 | # Begin Source File | ||
| 160 | |||
| 161 | SOURCE=.\LzmaUtil.c | ||
| 162 | # End Source File | ||
| 163 | # Begin Source File | ||
| 164 | |||
| 165 | SOURCE=..\..\Threads.c | ||
| 166 | # End Source File | ||
| 167 | # Begin Source File | ||
| 168 | |||
| 169 | SOURCE=..\..\Threads.h | ||
| 170 | # End Source File | ||
| 171 | # End Target | ||
| 172 | # End Project | ||
diff --git a/C/Util/Lzma/LzmaUtil.dsw b/C/Util/Lzma/LzmaUtil.dsw new file mode 100644 index 0000000..c52eaf6 --- /dev/null +++ b/C/Util/Lzma/LzmaUtil.dsw | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 | ||
| 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! | ||
| 3 | |||
| 4 | ############################################################################### | ||
| 5 | |||
| 6 | Project: "LzmaUtil"=.\LzmaUtil.dsp - Package Owner=<4> | ||
| 7 | |||
| 8 | Package=<5> | ||
| 9 | {{{ | ||
| 10 | }}} | ||
| 11 | |||
| 12 | Package=<4> | ||
| 13 | {{{ | ||
| 14 | }}} | ||
| 15 | |||
| 16 | ############################################################################### | ||
| 17 | |||
| 18 | Global: | ||
| 19 | |||
| 20 | Package=<5> | ||
| 21 | {{{ | ||
| 22 | }}} | ||
| 23 | |||
| 24 | Package=<3> | ||
| 25 | {{{ | ||
| 26 | }}} | ||
| 27 | |||
| 28 | ############################################################################### | ||
| 29 | |||
diff --git a/C/Util/Lzma/makefile b/C/Util/Lzma/makefile new file mode 100644 index 0000000..7813bdb --- /dev/null +++ b/C/Util/Lzma/makefile | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | # MY_STATIC_LINK=1 | ||
| 2 | PROG = LZMAc.exe | ||
| 3 | |||
| 4 | CFLAGS = $(CFLAGS) \ | ||
| 5 | |||
| 6 | LIB_OBJS = \ | ||
| 7 | $O\LzmaUtil.obj \ | ||
| 8 | |||
| 9 | C_OBJS = \ | ||
| 10 | $O\Alloc.obj \ | ||
| 11 | $O\CpuArch.obj \ | ||
| 12 | $O\LzFind.obj \ | ||
| 13 | $O\LzFindMt.obj \ | ||
| 14 | $O\LzFindOpt.obj \ | ||
| 15 | $O\LzmaDec.obj \ | ||
| 16 | $O\LzmaEnc.obj \ | ||
| 17 | $O\7zFile.obj \ | ||
| 18 | $O\7zStream.obj \ | ||
| 19 | $O\Threads.obj \ | ||
| 20 | |||
| 21 | OBJS = \ | ||
| 22 | $(LIB_OBJS) \ | ||
| 23 | $(C_OBJS) \ | ||
| 24 | |||
| 25 | !include "../../../CPP/Build.mak" | ||
| 26 | |||
| 27 | $(LIB_OBJS): $(*B).c | ||
| 28 | $(COMPL_O2) | ||
| 29 | $(C_OBJS): ../../$(*B).c | ||
| 30 | $(COMPL_O2) | ||
diff --git a/C/Util/Lzma/makefile.gcc b/C/Util/Lzma/makefile.gcc new file mode 100644 index 0000000..2acb0b8 --- /dev/null +++ b/C/Util/Lzma/makefile.gcc | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | PROG = 7lzma | ||
| 2 | |||
| 3 | include ../../../CPP/7zip/LzmaDec_gcc.mak | ||
| 4 | |||
| 5 | |||
| 6 | OBJS = \ | ||
| 7 | $(LZMA_DEC_OPT_OBJS) \ | ||
| 8 | $O/7zFile.o \ | ||
| 9 | $O/7zStream.o \ | ||
| 10 | $O/Alloc.o \ | ||
| 11 | $O/CpuArch.o \ | ||
| 12 | $O/LzFind.o \ | ||
| 13 | $O/LzFindMt.o \ | ||
| 14 | $O/LzFindOpt.o \ | ||
| 15 | $O/LzmaDec.o \ | ||
| 16 | $O/LzmaEnc.o \ | ||
| 17 | $O/LzmaUtil.o \ | ||
| 18 | $O/Threads.o \ | ||
| 19 | |||
| 20 | |||
| 21 | include ../../7zip_gcc_c.mak | ||
