Misc. fixes
[wimlib] / README.WINDOWS
1                                    INTRODUCTION
2
3 wimlib 1.3.0 has added experimental support for Windows builds.  The Windows
4 build consists of both the "wimlib" library (which can be built as a DLL) and
5 the "imagex" executable.
6
7 The Windows build of wimlib uses native Win32 calls when appropriate to handle
8 alternate data streams, security descriptors, and reparse points.
9
10 Mounting WIM files is not supported on Windows.  Also please note that wimlib's
11 "imagex" is NOT intended to be command-line compatible with Microsoft's
12 "imagex", and wimlib is NOT intended to be API compatible with Microsoft's
13 WIMGAPI.  They are similar, though.
14
15                                  NOTES ABOUT IMAGEX
16
17 "imagex capture", "imagex append", and "imagex apply" will work on Windows and
18 have the added advantage of saving and restoring alternate data streams,
19 security descriptors, and reparse points.
20
21 "imagex delete", "imagex dir", "imagex export", "imagex info", "imagex join",
22 "imagex optimize", and "imagex split" are all portable and should work the same
23 way on Windows as on UNIX.
24
25 "imagex mount", "imagex mountrw", and "imagex unmount" will NOT work on Windows.
26
27
28 So on Windows, why would you want to use wimlib's ImageX instead of Microsoft's?
29 Well, here are a few reasons:
30
31 - wimlib offers fast multithreaded compression, so making WIM images can be much
32   faster.
33
34 - wimlib can correctly save and restore alternate data streams, which
35   Microsoft's ImageX sometimes captures incorrectly due to a bug.
36
37 - wimlib is free software, so you can modify and/or audit the source code.
38
39 See the man page for 'imagex' for more information.
40
41                                  BUILDING ON WINDOWS
42
43 Actually doing the Windows build is a bit tricky, and I'd recommend you download
44 precompiled binaries from http://sourceforge.net/projects/wimlib/files/ instead.
45 I did it using MinGW-w64 on a Linux host, with the following configuration
46 command:
47
48 $ ./configure --host=i686-w64-mingw32
49
50 after having installed the required libraries:
51
52 * mingw-w64-gettext
53 * mingw-w64-libiconv
54 * mingw-w64-libxml2
55 * mingw-w64-winpthreads
56 * mingw-w64-zlib
57
58 Note: zlib and gettext are only necessary when required by the build of libxml2.
59
60 Building wimlib using Cygwin is not supported.  I was trying this for a while,
61 but I ran into some issues with mixing native Win32 functions and
62 Cygwin-provided functions, so I made it possible to do a native Win32 build
63 instead.