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.

wyoung 2025-02-10 19:21 trunk
Commit 738404347c68452c3a134d0edb497fbc32052c9a6861d9193353eefb1c158754
1 file changed +20 -22
+20 -22
--- www/build.wiki
+++ www/build.wiki
@@ -147,36 +147,34 @@
147147
148148
<li><i>MinGW / MinGW-w64</i> → The best-supported path is to build
149149
via the MinGW specific Makefile under a POSIX build of GNU make:
150150
"<b>make -f win/Makefile.mingw</b>".</li>
151151
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
-
169152
To enable the native [./th1.md#tclEval | Tcl integration feature], use a
170153
command line like the following (all on one line):
171154
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>
173156
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.
178176
179177
<li><i>MSVC</i> → Use the MSVC makefile.</li>
180178
181179
<em>NB:</em> Run the following <code>nmake</code> commands from a "x64 Native
182180
Tools Command Prompt"; <code>buildmsvc.bat</code> is able to automatically load
183181
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button