How to build on/for Win64
Simple directions for installing Cygwin64, pulling the more recent JtR version, and doing a Win64 build.
-
make a cygwin64 directory (I will default to c:\cygwin64) Do not put ANY spaces into the path name (such as c:\program files\cygwin64). c:\cygwin64 is recommended.
place the setup-x86_64.exe into this folder, and run that executable.
click Next. Then Next again making sure that 'install from internet' is selected (it should be).
put root directory to C:\cygwin64, and install for all users. Click Next.
Set local directory to also be C:\cygwin64, click Next
Select connection method (For most people direct connect is the right one). Click Next
Select a mirror. Some are MUCH faster than others, but this may vary depending upon where you are in the world. I find
http://cygwin.mirrors.hoobly.com is pretty good
Now, the cygwin package installation page is shown. NOTE, we will be adding many packages to this. Here are the ones recommended. I only install binaries.
Here is a list of options to ADD.
Archive (these are optional, but recommended)
bzip2
libz2-devel
libz2_1
unzip
zip
Base (just make sure all are selected, they should be)
Devel (quite a few here)
automake-1.14 (or highest version)
binutils
bison
byacc
flex
gcc-core
gcc-g++
gdb
git
git-completion
gnutls-devel
libgcc1
libgomp1
libltdl7
libmcrypt-devel
libstdc++6
make
mcpp
mingw64-x86_64-binutils
mingw64-x86_64-bzip2
mingw64-x86_64-gcc-core (note just the -gcc is just source, you do not need it).
mingw64-x86_64-gcc-g++
mingw64-x86_64-headers
mingw64-x86_64-libgcrypt
mingw64-x86_64-libgpg
mingw64-x86_64-libgpg-error
mingw64-x86_64-minizip
mingw64-x86_64-pthreads
mingw64-x86_64-runtime
mingw64-x86_64-winpthreads
mingw64-x86_64-xz
mingw64-x86_64-zlib
nasm
openldap-devel
patch
w32api-headers
w32api-runtime
yasm
yasm-devel
Interpreters
Libs (quite a few here)
crypt
gmp
libcrypt-devel
libcurl-devel
libcurl4
libevent
libevent-devel
libevent2.0_5
libgcrypt
libgcrypt-devel
libgcrypt11
libgmp-devel
libgmp10
libiconv
libiconv-devel
libiconv2
libopenmpi
libopenmpi-devel
libopenmpicxx1
openmpi
zlib
zlib-devel
zlib0
Math
Net
ca-certificates
curl
libssh2-devel
libssh2_1
openldap
openssh
openssl
openssl-devel
wget
Perl
perl-Archive-Zip
perl-Authen-SASL
perl-Capture-Tiny
perl-Clone
perl-Config-AutoConf
perl-Data-*
perl-Digest-*
perl-ExtUtils-*
perl-File-*
perl-Getopt-ArgvFile
perl-IO-*
perl-IPC-Run3
perl-YAML
Click Next. This will bring up a window where a lot more packages are checked. These are dependant pagages. Make sure the 'Select required packages' is checked so that all these packages load also, then click Next.
Cygwin will now install
NOTE, at any time (after this install), you can run the setup-x86_64.exe to install new packages, OR to update the packages which are alrady installed. NOTE, when doing so, it is always best to download the newest version of this tool from
www.cygwin.com. Also, when running the update, make sure that ALL cygwin terminal are shut down, AND that all processes built using cygwin (linked against the dll's) are shutdown. Cygwin will warn you (hopefully), that files are locked. But Shut things down anyway, just to be safe.
After a while, install completes. At the time I wrote this (March 2014), I was getting a message: “Package: bash bash.sh exit code 1” message. Does not seem to cause problems. Click Next.
I always create a desktop icon, and start menu
Now Cygwin64 should be 'base' installed. From the start menu, run the Cygwin64 Terminal. On first run, it should create your home directory, telling you where it is, and set some default files.
close this terminal.
edit the file c:/cygwin64/home/username/.bashrc (I edit using notepad++. This can also be edited from WITHIN the cygwin64 shell).
In this file, add the line: export GCC=gcc I am not sure why cyg 64 does not do this, but I have found it is NOT done, and make's will fail. NOTE, there are many things you may want to change within this file (many things you may simply want to uncomment). Also look at .bash_profile in the same directory. Save the file
Start a new cygwin64 terminal
ENJOY.