Fossil SCM
Split the MSYS2/Cygwin build instructions out from the MinGW ones and updated both. Dropped mention of "MSYS", having not tested the current build under it. If it still works, and someone cares to revive the instructions, that should be done only after retesting.
Commit
738404347c68452c3a134d0edb497fbc32052c9a6861d9193353eefb1c158754
Parent
5c6dee54ca1965e…
1 file changed
+20
-22
+20
-22
| --- www/build.wiki | ||
| +++ www/build.wiki | ||
| @@ -147,36 +147,34 @@ | ||
| 147 | 147 | |
| 148 | 148 | <li><i>MinGW / MinGW-w64</i> → The best-supported path is to build |
| 149 | 149 | via the MinGW specific Makefile under a POSIX build of GNU make: |
| 150 | 150 | "<b>make -f win/Makefile.mingw</b>".</li> |
| 151 | 151 | |
| 152 | -There is limited support for building under MinGW's native Windows port | |
| 153 | -of GNU Make instead by defining the <tt>USE_WINDOWS=1</tt> variable, but | |
| 154 | -it's better to build under MSYS, Cygwin, or WSL on Windows since this | |
| 155 | -mode doesn't take care of cases such as the "openssl" target, which | |
| 156 | -depends on <tt>sed</tt>. We've gone as far down this path as is | |
| 157 | -practical short of breaking cross-compilation under Linux, macOS, and so | |
| 158 | -forth, as we'd have to do to make everything work under | |
| 159 | -<tt>cmd.exe</tt>. | |
| 160 | - | |
| 161 | -Unless you're building under MSYS where commands like "<tt>gcc</tt>" | |
| 162 | -give MinGW's GCC and not some other version, you will need to make minor | |
| 163 | -edits to win/Makefile.mingw to configure the cross-compilation | |
| 164 | -environment. It should suffice to switch to one of the predefined | |
| 165 | -<tt>PREFIX</tt> values, causing the build to be done using | |
| 166 | -"<tt>x86_64-w64-mingw32-gcc</tt>" for example, yielding a 64-bit native | |
| 167 | -Windows binary. | |
| 168 | - | |
| 169 | 152 | To enable the native [./th1.md#tclEval | Tcl integration feature], use a |
| 170 | 153 | command line like the following (all on one line): |
| 171 | 154 | |
| 172 | -<b>make -f win/Makefile.mingw FOSSIL_ENABLE_TCL=1 FOSSIL_ENABLE_TCL_STUBS=1 FOSSIL_ENABLE_TCL_PRIVATE_STUBS=1</b> | |
| 155 | +<pre>make -f win/Makefile.mingw FOSSIL_ENABLE_TCL=1 FOSSIL_ENABLE_TCL_STUBS=1 FOSSIL_ENABLE_TCL_PRIVATE_STUBS=1</pre> | |
| 173 | 156 | |
| 174 | -Alternatively, running <b>./configure</b> under MSYS should give a | |
| 175 | -suitable top-level Makefile. However, options passed to configure that are | |
| 176 | -not applicable on Windows may cause the configuration or compilation to fail | |
| 177 | -(e.g. fusefs, internal-sqlite, etc). | |
| 157 | +<li><i>MSYS2 / Cygwin</i> → This is something of a hybrid between | |
| 158 | +options "a" and "c" above: it configures and builds | |
| 159 | +<code>fossil.exe</code> much as on Linux, but you get a native Windows | |
| 160 | +executable out at the end. The primary downside is that this type of | |
| 161 | +executable can become confused when attempting to interoperate with | |
| 162 | +fully native Windows EXEs by making assumptions that only hold true when | |
| 163 | +all elements are running under the Cygwin/MSYS environment. The MSVC and | |
| 164 | +MinGW options do not have this limitation. | |
| 165 | + | |
| 166 | +Even so, there is value to Linux/Unix natives in having this hybrid | |
| 167 | +while off in Windows-land. The simpler of the two paths is MSYS2, since | |
| 168 | +it lets you install the necessary prerequisites in a single command | |
| 169 | +after installing the base environment: | |
| 170 | + | |
| 171 | +<pre>pacman -sS gcc make openssl-devel zlib-devel</pre> | |
| 172 | + | |
| 173 | +The equivalent in Cygwin's <code>setup.exe</code> requires stepping | |
| 174 | +through the GUI package chooser, and then if you miss one of the | |
| 175 | +prereqs, going all the way back through it again until you get it right. | |
| 178 | 176 | |
| 179 | 177 | <li><i>MSVC</i> → Use the MSVC makefile.</li> |
| 180 | 178 | |
| 181 | 179 | <em>NB:</em> Run the following <code>nmake</code> commands from a "x64 Native |
| 182 | 180 | Tools Command Prompt"; <code>buildmsvc.bat</code> is able to automatically load |
| 183 | 181 |
| --- www/build.wiki | |
| +++ www/build.wiki | |
| @@ -147,36 +147,34 @@ | |
| 147 | |
| 148 | <li><i>MinGW / MinGW-w64</i> → The best-supported path is to build |
| 149 | via the MinGW specific Makefile under a POSIX build of GNU make: |
| 150 | "<b>make -f win/Makefile.mingw</b>".</li> |
| 151 | |
| 152 | There is limited support for building under MinGW's native Windows port |
| 153 | of GNU Make instead by defining the <tt>USE_WINDOWS=1</tt> variable, but |
| 154 | it's better to build under MSYS, Cygwin, or WSL on Windows since this |
| 155 | mode doesn't take care of cases such as the "openssl" target, which |
| 156 | depends on <tt>sed</tt>. We've gone as far down this path as is |
| 157 | practical short of breaking cross-compilation under Linux, macOS, and so |
| 158 | forth, as we'd have to do to make everything work under |
| 159 | <tt>cmd.exe</tt>. |
| 160 | |
| 161 | Unless you're building under MSYS where commands like "<tt>gcc</tt>" |
| 162 | give MinGW's GCC and not some other version, you will need to make minor |
| 163 | edits to win/Makefile.mingw to configure the cross-compilation |
| 164 | environment. It should suffice to switch to one of the predefined |
| 165 | <tt>PREFIX</tt> values, causing the build to be done using |
| 166 | "<tt>x86_64-w64-mingw32-gcc</tt>" for example, yielding a 64-bit native |
| 167 | Windows binary. |
| 168 | |
| 169 | To enable the native [./th1.md#tclEval | Tcl integration feature], use a |
| 170 | command line like the following (all on one line): |
| 171 | |
| 172 | <b>make -f win/Makefile.mingw FOSSIL_ENABLE_TCL=1 FOSSIL_ENABLE_TCL_STUBS=1 FOSSIL_ENABLE_TCL_PRIVATE_STUBS=1</b> |
| 173 | |
| 174 | Alternatively, running <b>./configure</b> under MSYS should give a |
| 175 | suitable top-level Makefile. However, options passed to configure that are |
| 176 | not applicable on Windows may cause the configuration or compilation to fail |
| 177 | (e.g. fusefs, internal-sqlite, etc). |
| 178 | |
| 179 | <li><i>MSVC</i> → Use the MSVC makefile.</li> |
| 180 | |
| 181 | <em>NB:</em> Run the following <code>nmake</code> commands from a "x64 Native |
| 182 | Tools Command Prompt"; <code>buildmsvc.bat</code> is able to automatically load |
| 183 |
| --- www/build.wiki | |
| +++ www/build.wiki | |
| @@ -147,36 +147,34 @@ | |
| 147 | |
| 148 | <li><i>MinGW / MinGW-w64</i> → The best-supported path is to build |
| 149 | via the MinGW specific Makefile under a POSIX build of GNU make: |
| 150 | "<b>make -f win/Makefile.mingw</b>".</li> |
| 151 | |
| 152 | To enable the native [./th1.md#tclEval | Tcl integration feature], use a |
| 153 | command line like the following (all on one line): |
| 154 | |
| 155 | <pre>make -f win/Makefile.mingw FOSSIL_ENABLE_TCL=1 FOSSIL_ENABLE_TCL_STUBS=1 FOSSIL_ENABLE_TCL_PRIVATE_STUBS=1</pre> |
| 156 | |
| 157 | <li><i>MSYS2 / Cygwin</i> → This is something of a hybrid between |
| 158 | options "a" and "c" above: it configures and builds |
| 159 | <code>fossil.exe</code> much as on Linux, but you get a native Windows |
| 160 | executable out at the end. The primary downside is that this type of |
| 161 | executable can become confused when attempting to interoperate with |
| 162 | fully native Windows EXEs by making assumptions that only hold true when |
| 163 | all elements are running under the Cygwin/MSYS environment. The MSVC and |
| 164 | MinGW options do not have this limitation. |
| 165 | |
| 166 | Even so, there is value to Linux/Unix natives in having this hybrid |
| 167 | while off in Windows-land. The simpler of the two paths is MSYS2, since |
| 168 | it lets you install the necessary prerequisites in a single command |
| 169 | after installing the base environment: |
| 170 | |
| 171 | <pre>pacman -sS gcc make openssl-devel zlib-devel</pre> |
| 172 | |
| 173 | The equivalent in Cygwin's <code>setup.exe</code> requires stepping |
| 174 | through the GUI package chooser, and then if you miss one of the |
| 175 | prereqs, going all the way back through it again until you get it right. |
| 176 | |
| 177 | <li><i>MSVC</i> → Use the MSVC makefile.</li> |
| 178 | |
| 179 | <em>NB:</em> Run the following <code>nmake</code> commands from a "x64 Native |
| 180 | Tools Command Prompt"; <code>buildmsvc.bat</code> is able to automatically load |
| 181 |