]> wimlib.net Git - wimlib/blobdiff - README.WINDOWS
encoding.c: avoid UBSAN warning in convert_string()
[wimlib] / README.WINDOWS
index cd8c7e0e32a2fde946809e4e8f1d3c5bc896b0e7..14fc0d284e05e0de52ae92a3534de72c2e060892 100644 (file)
@@ -18,18 +18,23 @@ The Windows distribution of wimlib is a ZIP file containing the following items:
   * Very short batch scripts (e.g. wimapply.cmd) which are shortcuts to the
     corresponding wimlib-imagex commands (e.g. `wimlib-imagex apply').
 
   * Very short batch scripts (e.g. wimapply.cmd) which are shortcuts to the
     corresponding wimlib-imagex commands (e.g. `wimlib-imagex apply').
 
-  * The documentation, including this file, the generic README.txt, and
-    PDF documentation for wimlib-imagex in the 'doc' directory.
+  * The library itself in DLL format (libwim-15.dll).  wimlib-imagex.exe
+    requires this to run.
 
 
-  * The library itself (libwim-15.dll).  The C header wimlib.h is not
-    included; download the source if you want it.
+  * The documentation, including this file, the generic README.txt, and
+    PDF documentation for wimlib-imagex in the 'doc' folder.
 
   * License files for all software included.  These are all free software
 
   * License files for all software included.  These are all free software
-    licenses.
+    licenses.  COPYING.txt is the main license, and it refers to
+    COPYING.GPLv3.txt and COPYING.LGPLv3.txt.  The other licenses are for
+    third-party software included in the library.
+
+  * Development files in the 'devel' folder.  These are only needed if you
+    are developing C or C++ applications that use wimlib.
 
 Note that there are separate ZIP files for 32-bit (i686) and 64-bit (x86_64)
 binaries.  They are both fully supported, but you should prefer the 64-bit
 
 Note that there are separate ZIP files for 32-bit (i686) and 64-bit (x86_64)
 binaries.  They are both fully supported, but you should prefer the 64-bit
-binaries when possible as they can be noticably faster.
+binaries when possible as they can be noticeably faster.
 
                                  WIMLIB-IMAGEX
 
 
                                  WIMLIB-IMAGEX
 
@@ -53,6 +58,9 @@ advantages of wimlib-imagex compared to ImageX and DISM are:
     used in ESD (.esd) files.  (These are partially supported by recent DISM
     versions but not by ImageX.)
 
     used in ESD (.esd) files.  (These are partially supported by recent DISM
     versions but not by ImageX.)
 
+  * wimlib-imagex supports imaging a live Windows system.  Just use the
+    --snapshot option.
+
   * In many cases, wimlib-imagex has simpler command-line syntax than either
     ImageX or DISM.
 
   * In many cases, wimlib-imagex has simpler command-line syntax than either
     ImageX or DISM.
 
@@ -74,12 +82,55 @@ It's recommended to use wimlib-imagex in scripts to avoid having to
 interactively enter commands.  However, note that wimlib-imagex is largely just
 a command-line front-end for wimlib, and it's possible to use wimlib's API in
 other front-ends or applications.  Currently there is no official graphical user
 interactively enter commands.  However, note that wimlib-imagex is largely just
 a command-line front-end for wimlib, and it's possible to use wimlib's API in
 other front-ends or applications.  Currently there is no official graphical user
-interface available for wimlib or wimlib-imagex.  However, an unofficial, beta,
+interface available for wimlib or wimlib-imagex.  However, an unofficial
 Windows-only graphical user interface that provides a thin wrapper around
 wimlib-imagex can be downloaded at
 http://reboot.pro/files/file/485-wimlib-imagex-command-line-compiler/.
 
 Windows-only graphical user interface that provides a thin wrapper around
 wimlib-imagex can be downloaded at
 http://reboot.pro/files/file/485-wimlib-imagex-command-line-compiler/.
 
-If you want to build your own Windows binaries from source, MinGW-w64 is
-required.  Configure with --host=i686-w64-mingw32 or --host=x86_64-w64-mingw32.
-You will need to satisfy the third-party dependencies (libxml2, winpthreads, and
-win-iconv), which in the official releases are statically linked into the DLL.
+                              BUILDING FROM SOURCE
+
+As with other open source software, advanced users may choose to build wimlib
+from source, potentially with customizations.  Currently, wimlib depends on
+MinGW-w64 for its Windows support; Visual Studio is not supported.  The Windows
+binaries can be cross-compiled on Linux, or built on Windows using MSYS2 or
+Cygwin.  The following instructions show the MSYS2 method.
+
+First, install MSYS2 by running the installer from https://www.msys2.org/.
+
+Then, open any MSYS2 shell and run the following command:
+
+    pacman -Syu --noconfirm
+
+After that, open any MSYS2 shell again and run the following commands:
+
+    pacman -Syu --noconfirm git
+    git clone git://wimlib.net/wimlib
+
+Note: By default the git repository will be on the "master" branch, which is the
+latest development snapshot.  Optionally, you can check out a specific version,
+e.g. 'cd wimlib && git checkout v1.14.0'.  For old versions, please refer to the
+documentation for that version, as things may have changed.  Also, it is
+possible to use a release tarball (e.g. wimlib-1.14.0.tar.gz) instead of the git
+repository; however, the make-windows-release script will not be available in
+that case and you will need to handle more things yourself.
+
+Finally, to actually do a build, close the MSYS2 shell you have open, then open
+one of the following from the Start menu:
+
+  * "MSYS2 MINGW64" - for x86_64 binaries, built with gcc
+  * "MSYS2 CLANG64" - for x86_64 binaries, built with clang
+  * "MSYS2 MINGW32" - for i686 binaries, built with gcc
+  * "MSYS2 CLANG32" - for i686 binaries, built with clang
+  * "MSYS2 CLANGARM64" - for ARM64 binaries (EXPERIMENTAL, needs Windows ARM64)
+
+(If unsure, use "MSYS2 MINGW64".)  Then run the following commands:
+
+    cd wimlib
+    tools/make-windows-release --install-msys2-packages
+
+The script will automatically download and install the MSYS2 packages needed to
+build wimlib in the chosen MSYS2 environment, then build wimlib.  The output
+will be in a folder named similarly to "wimlib-1.14.0-windows-x86_64-bin".  Note
+that your "home" folder within MSYS2 is C:\msys64\home\%USERNAME% by default.
+Therefore, the full path to the output folder will be similar to
+C:\msys64\home\%USERNAME%\wimlib\wimlib-1.14.0-windows-x86_64-bin.