Update building for Windows instructions
Explain how to build for Windows in INSTALL.md and remove another readme.txt in an obscure location.
This commit is contained in:
parent
4fc5c4fbac
commit
3713932836
79
INSTALL.md
79
INSTALL.md
@ -396,6 +396,85 @@ exclusively):
|
||||
|
||||
Use this to search for programs used during configuration and building.
|
||||
|
||||
## Building for Windows
|
||||
|
||||
There are at least two ways to build jemalloc's libraries for Windows. They
|
||||
differ in their ease of use and flexibility.
|
||||
|
||||
### With MSVC solutions
|
||||
This is the easy, but less flexible approach. It doesn't let you specify
|
||||
arguments to the `configure` script.
|
||||
|
||||
1. Install Cygwin with at least the following packages:
|
||||
* autoconf
|
||||
* autogen
|
||||
* gawk
|
||||
* grep
|
||||
* sed
|
||||
|
||||
2. Install Visual Studio 2015 or 2017 with Visual C++
|
||||
|
||||
3. Add Cygwin\bin to the PATH environment variable
|
||||
|
||||
4. Open "x64 Native Tools Command Prompt for VS 2017"
|
||||
(note: x86/x64 doesn't matter at this point)
|
||||
|
||||
5. Generate header files:
|
||||
sh -c "CC=cl ./autogen.sh"
|
||||
|
||||
6. Now the project can be opened and built in Visual Studio:
|
||||
msvc\jemalloc_vc2017.sln
|
||||
|
||||
### With MSYS
|
||||
This is a more involved approach that offers the same configuration flexibility
|
||||
as Linux builds. We use it for our CI workflow to test different jemalloc
|
||||
configurations on Windows.
|
||||
|
||||
1. Install the prerequisites
|
||||
1. MSYS2
|
||||
2. Chocolatey
|
||||
3. Visual Studio if you want to compile with MSVC compiler
|
||||
|
||||
2. Run your bash emulation. It could be MSYS2 or Git Bash (this manual was
|
||||
tested on both)
|
||||
3. Manually and selectively follow
|
||||
[before_install.sh](https://github.com/jemalloc/jemalloc/blob/dev/scripts/windows/before_install.sh)
|
||||
script.
|
||||
1. Skip the `TRAVIS_OS_NAME` check, `rm -rf C:/tools/msys64` and `choco
|
||||
uninstall/upgrade` part.
|
||||
2. If using `msys2` shell, add path to `RefreshEnv.cmd` to `PATH`:
|
||||
`PATH="$PATH:/c/ProgramData/chocolatey/bin"`
|
||||
3. Assign `msys_shell_cmd`, `msys2`, `mingw32` and `mingw64` as in the
|
||||
script.
|
||||
4. Pick `CROSS_COMPILE_32BIT` , `CC` and `USE_MSVC` values depending on
|
||||
your needs. For instance, if you'd like to build for x86_64 Windows
|
||||
with `gcc`, then `CROSS_COMPILE_32BIT="no"`, `CC="gcc"` and
|
||||
`USE_MSVC=""`. If you'd like to build for x86 Windows with `cl.exe`,
|
||||
then `CROSS_COMPILE_32BIT="yes"`, `CC="cl.exe"`, `USE_MSVC="x86"`.
|
||||
For x86_64 builds with `cl.exe`, assign `USE_MSVC="amd64"` and
|
||||
`CROSS_COMPILE_32BIT="no"`.
|
||||
5. Replace the path to `vcvarsall.bat` with the path on your system. For
|
||||
instance, on my Windows PC with Visual Studio 17, the path is
|
||||
`C:\Program Files (x86)\Microsoft Visual
|
||||
Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat`.
|
||||
6. Execute the rest of the script. It will install the required
|
||||
dependencies and assign the variable `build_env`, which is a function
|
||||
that executes following commands with the correct environment
|
||||
variables set.
|
||||
4. Use `$build_env <command>` as you would in a Linux shell:
|
||||
1. `$build_env autoconf`
|
||||
2. `$build_env ./configure CC="<desired compiler>" <configuration flags>`
|
||||
3. `$build_env mingw32-make`
|
||||
|
||||
If you're having any issues with the above, ensure the following:
|
||||
|
||||
5. When you run `cmd //C RefreshEnv.cmd`, you get an output line starting with
|
||||
`Refreshing` . If it errors saying `RefreshEnv.cmd` is not found, then you
|
||||
need to add it to your `PATH` as described above in item 3.2
|
||||
|
||||
6. When you run `cmd //C $vcvarsall`, it prints a bunch of environment
|
||||
variables. Otherwise, check the path to the `vcvarsall.bat` in `$vcvarsall`
|
||||
script and fix it.
|
||||
|
||||
## Development
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
|
||||
How to build jemalloc for Windows
|
||||
=================================
|
||||
|
||||
1. Install Cygwin with at least the following packages:
|
||||
* autoconf
|
||||
* autogen
|
||||
* gawk
|
||||
* grep
|
||||
* sed
|
||||
|
||||
2. Install Visual Studio 2015 or 2017 with Visual C++
|
||||
|
||||
3. Add Cygwin\bin to the PATH environment variable
|
||||
|
||||
4. Open "x64 Native Tools Command Prompt for VS 2017"
|
||||
(note: x86/x64 doesn't matter at this point)
|
||||
|
||||
5. Generate header files:
|
||||
sh -c "CC=cl ./autogen.sh"
|
||||
|
||||
6. Now the project can be opened and built in Visual Studio:
|
||||
msvc\jemalloc_vc2017.sln
|
Loading…
Reference in New Issue
Block a user