2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
Installation Guide
|
|
|
|
|
|
==================
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
Icarus Verilog may be installed from source code (either from ``git`` or a
|
|
|
|
|
|
released `tar/zip` file), or from pre-packaged binary distributions. If you
|
|
|
|
|
|
don't have a need for the very latest, and prepackaged binaries are available,
|
|
|
|
|
|
that is the easiest place to start.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
Installation From Source
|
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
|
|
Icarus is developed for Unix-like environments but can also be compiled on
|
2026-03-01 23:40:31 +01:00
|
|
|
|
Windows systems using the `Cygwin/MSYS2` environments or `MinGW` compilers. The
|
|
|
|
|
|
following instructions are the common steps for obtaining the Icarus Verilog
|
|
|
|
|
|
source code, compiling, installing, and checking the compiled code is working
|
|
|
|
|
|
properly. Note that there are pre-compiled and/or prepackaged versions for a
|
|
|
|
|
|
variety of systems, so if you find an appropriate packaged version, then that
|
|
|
|
|
|
is the easiest way to install.
|
|
|
|
|
|
|
|
|
|
|
|
The source code for Icarus is stored under the `git` source code control
|
|
|
|
|
|
system. You can use ``git`` to get the latest development head or the latest of
|
|
|
|
|
|
a specific branch. Stable releases are placed on branches, and in particular V12
|
|
|
|
|
|
stable releases are on the branch "v12-branch" To get the development version
|
2022-04-12 05:46:06 +02:00
|
|
|
|
of the code follow these steps::
|
|
|
|
|
|
|
2023-06-01 07:34:02 +02:00
|
|
|
|
% git config --global user.name "Your Name Goes Here"
|
|
|
|
|
|
% git config --global user.email you@yourpublicemail.example.com
|
2022-04-12 05:46:06 +02:00
|
|
|
|
% git clone https://github.com/steveicarus/iverilog.git
|
|
|
|
|
|
|
|
|
|
|
|
The first two lines are optional and are used to tell git who you are. This
|
|
|
|
|
|
information is important if/when you submit a patch. We suggest that you add
|
|
|
|
|
|
this information now so you don't forget to do it later. The clone will create
|
2026-03-01 23:40:31 +01:00
|
|
|
|
a directory, named `iverilog`, containing the source tree, and will populate
|
2022-04-12 05:46:06 +02:00
|
|
|
|
that directory with the most current source from the HEAD of the repository.
|
|
|
|
|
|
|
|
|
|
|
|
Change into this directory using::
|
|
|
|
|
|
|
|
|
|
|
|
% cd iverilog
|
|
|
|
|
|
|
|
|
|
|
|
Normally, this is enough as you are now pointing at the most current
|
2026-03-01 23:40:31 +01:00
|
|
|
|
development code, and you have implicitly created a branch `master` that
|
2022-04-12 05:46:06 +02:00
|
|
|
|
tracks the development head. However, If you want to actually be working on
|
2026-03-01 23:40:31 +01:00
|
|
|
|
the `v12-branch` (the branch where the latest V12 patches are) then you
|
|
|
|
|
|
checkout that branch with the command::
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
% git checkout --track -b v12-branch origin/v12-branch
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
This creates a local branch that tracks the `v12-branch` in the repository, and
|
|
|
|
|
|
switches you over to your new `v12-branch`. The tracking is important as it
|
2022-04-12 05:46:06 +02:00
|
|
|
|
causes pulls from the repository to re-merge your local branch with the remote
|
2026-03-01 23:40:31 +01:00
|
|
|
|
`v12-branch`. You always work on a local branch, then merge only when you
|
2022-04-12 05:46:06 +02:00
|
|
|
|
push/pull from the remote repository.
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
The choice between the development branch and the latest released branch
|
|
|
|
|
|
depends on your stability requirements. The released branch will only get bug
|
|
|
|
|
|
fixes. It will not get any enhancements or changes in the compiler output
|
|
|
|
|
|
format. Unlike many project the development branch is fairly stable with only
|
|
|
|
|
|
occasional periods of instability. We do most of our big changes in side
|
|
|
|
|
|
branches and only merge them into the development branch when they are clean.
|
|
|
|
|
|
|
2022-04-12 05:46:06 +02:00
|
|
|
|
Now that you've cloned the repository and optionally selected the branch you
|
|
|
|
|
|
want to work on, your local source tree may later be synced up with the
|
|
|
|
|
|
development source by using the git command::
|
|
|
|
|
|
|
|
|
|
|
|
% git pull
|
|
|
|
|
|
|
|
|
|
|
|
The git system remembers the repository that it was cloned from, so you don't
|
|
|
|
|
|
need to re-enter it when you pull.
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
To build the `configure` script and hash files you need to run the
|
|
|
|
|
|
following::
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
% sh autoconf.sh
|
2026-03-01 23:40:31 +01:00
|
|
|
|
% cd ..
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
This is not need for the released `tar/zip` files since they already contain
|
|
|
|
|
|
these files. You only need to run this once after cloning. If you are missing
|
|
|
|
|
|
``autoconf`` or ``gperf`` then the script will fail::
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2023-06-01 07:34:02 +02:00
|
|
|
|
Autoconf in root...
|
|
|
|
|
|
autoconf.sh: 10: autoconf: not found
|
|
|
|
|
|
Precompiling lexor_keyword.gperf
|
2022-04-12 05:46:06 +02:00
|
|
|
|
autoconf.sh: 13: gperf: not found.
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
You will need to install the ``autoconf`` and ``gperf`` tools before you can
|
|
|
|
|
|
continue.
|
|
|
|
|
|
|
|
|
|
|
|
The other way to get the source code is to download a released `tar/zip` file::
|
|
|
|
|
|
|
|
|
|
|
|
% tar -xvzf v13_0.tar.gz
|
|
|
|
|
|
or
|
|
|
|
|
|
% unzip v13_0.zip
|
|
|
|
|
|
|
|
|
|
|
|
See the build instructions for your operation system below to know what to do
|
|
|
|
|
|
next. Though first determine if there are any extra configuration option you
|
|
|
|
|
|
may need.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
Icarus Specific Configuration Options
|
|
|
|
|
|
-------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
Icarus takes many of the standard configuration options and those will not be
|
|
|
|
|
|
described here. The following are specific to Icarus::
|
|
|
|
|
|
|
|
|
|
|
|
--enable-suffix[=suffix]
|
|
|
|
|
|
|
|
|
|
|
|
This option allows the user to build Icarus with a default suffix or when
|
|
|
|
|
|
provided a user defined suffix. Older stable releases have this flag on by
|
|
|
|
|
|
default e.g.(V0.8 by default will build with a "-0.8" suffix). All versions
|
|
|
|
|
|
have an appropriate default suffix ("-<base_version>").
|
|
|
|
|
|
|
|
|
|
|
|
All programs or directories are tagged with this suffix. e.g.(iverilog-0.8,
|
|
|
|
|
|
vvp-0.8, etc.). The output of iverilog will reference the correct run time
|
|
|
|
|
|
files and directories. The run time will check that it is running a file with
|
|
|
|
|
|
a compatible version e.g.(you can not run a V0.9 file with the V0.8 run
|
2026-03-01 23:40:31 +01:00
|
|
|
|
time).::
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
--with-valgrind
|
|
|
|
|
|
|
|
|
|
|
|
This option adds extra memory cleanup code and pool management code to allow
|
|
|
|
|
|
better memory leak checking when valgrind is available. This option is not
|
2026-03-01 23:40:31 +01:00
|
|
|
|
needed when checking for basic errors with valgrind and should not be used if
|
|
|
|
|
|
you just intend to use ``iverilog`` as a simulator. ::
|
2024-01-24 11:34:46 +01:00
|
|
|
|
|
|
|
|
|
|
--enable-libvvp
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
The vvp program is built as a small stub linked to a shared library,
|
2024-01-24 11:34:46 +01:00
|
|
|
|
libvvp.so, that may be linked with other programs so that they can host
|
2025-10-25 15:03:00 +02:00
|
|
|
|
a vvp simulation. ::
|
|
|
|
|
|
|
|
|
|
|
|
--enable-libveriuser
|
|
|
|
|
|
|
|
|
|
|
|
PLI version 1 (the ACC and TF routines) were deprecated in IEEE 1364-2005.
|
|
|
|
|
|
These are supported in Icarus Verilog by the libveriuser library and cadpli
|
2026-03-01 23:40:31 +01:00
|
|
|
|
module. Starting with V13, these will only be built if this option is used.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
|
|
|
|
|
Compiling on Linux/Unix
|
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
Note: For a gcc compile you will need to install ``bison``, ``flex``, ``g++``,
|
|
|
|
|
|
``gcc`` and preferably `bz2`, `zlib` and `readline` development packages. The
|
|
|
|
|
|
`bz2` and `zlib` development packages are required for the non-VCD waveform
|
|
|
|
|
|
dumpers and the `readline` development package is needed to enable better
|
|
|
|
|
|
terminal control in the ``vvp`` interactive mode.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
If you are only compiling one variant then you can compile directly in the
|
|
|
|
|
|
source tree. If you need multiple variants (optimized, debugging, multiple
|
|
|
|
|
|
compilers) then it is recommended you compile each in their own directory.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
For multiple variants create a directory for each of the variants you intend
|
|
|
|
|
|
to create and in each run the following steps, adjusting the options in the
|
|
|
|
|
|
configure stage to get the functionality you want. For a single build you can
|
|
|
|
|
|
either build it with the source or in a separate build directory.
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
The following is from a Ubuntu 22.04 machine using gcc (version 11.4)::
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
% mkdir gcc
|
|
|
|
|
|
% cd gcc
|
|
|
|
|
|
or
|
|
|
|
|
|
% cd iverilog
|
2022-04-12 05:46:06 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
You can also use ``clang/clang++``. I usual build optimized version for
|
|
|
|
|
|
normal use and reserve debugging options for a valgrind or a separate
|
|
|
|
|
|
debugging build. Make sure you have `sudo` permission if you are using a
|
|
|
|
|
|
system prefix area, otherwise you need to use some place you have
|
|
|
|
|
|
permission to install (e.g. ~/).::
|
|
|
|
|
|
|
|
|
|
|
|
% env CFLAGS=-O2 CXXFLAGS=-O2 LDFLAGS=-s CC=gcc CXX=g++ ../iverilog/configure --enable-suffix=-gcc --prefix=/usr/local
|
|
|
|
|
|
|
|
|
|
|
|
This will generate the following (with some inline comments)::
|
|
|
|
|
|
|
|
|
|
|
|
checking build system type... x86_64-pc-linux-gnu
|
|
|
|
|
|
checking host system type... x86_64-pc-linux-gnu
|
|
|
|
|
|
checking for gcc... gcc
|
|
|
|
|
|
checking whether the C compiler works... yes
|
|
|
|
|
|
...
|
|
|
|
|
|
checking for gperf... gperf # required for git builds
|
|
|
|
|
|
checking for man... man # you likely want manual pages
|
|
|
|
|
|
checking for ps2pdf... ps2pdf
|
|
|
|
|
|
checking for groff... groff
|
|
|
|
|
|
checking for git... git # required for git builds
|
|
|
|
|
|
checking for flex... flex # required
|
|
|
|
|
|
checking for bison... bison # required
|
|
|
|
|
|
...
|
|
|
|
|
|
checking for tputs in -ltermcap... yes
|
|
|
|
|
|
checking for readline in -lreadline... yes
|
|
|
|
|
|
checking for add_history in -lreadline... yes
|
|
|
|
|
|
checking for readline/readline.h... yes
|
|
|
|
|
|
checking for readline/history.h... yes # you likely want this
|
|
|
|
|
|
...
|
|
|
|
|
|
checking for pthread_create in -lpthread... yes
|
|
|
|
|
|
checking for gzwrite in -lz... yes
|
|
|
|
|
|
checking for gzwrite in -lz... (cached) yes
|
|
|
|
|
|
checking for BZ2_bzdopen in -lbz2... yes
|
|
|
|
|
|
checking for BZ2_bzdopen in -lbz2... (cached) yes # you want these for fst dumping
|
|
|
|
|
|
...
|
|
|
|
|
|
<Create all the parameterized Makefile and header files>
|
|
|
|
|
|
|
|
|
|
|
|
Usually if ``configure`` fails there is some required dependency missing. I
|
|
|
|
|
|
usually review all the output to make sure it makes sense (e.g. I requested
|
|
|
|
|
|
``gcc`` and that's what is being used, other things match my expectation). If
|
|
|
|
|
|
all the waveform dumpers are not enabled there could be a few test failures.
|
|
|
|
|
|
|
|
|
|
|
|
Next we need to compile the code. Note: make sure you are using GNU make.
|
|
|
|
|
|
It may be named gmake (e.g. GhostBSD)::
|
|
|
|
|
|
|
|
|
|
|
|
% make check >& make.log
|
|
|
|
|
|
|
|
|
|
|
|
This is for a tcsh/csh shell. Bash/fish/zsh use ``&>`` instead of ``>&``.
|
|
|
|
|
|
Once this has completed check the make.log for any errors. There should not
|
|
|
|
|
|
be any! I also check for warnings. There are often some related to the
|
|
|
|
|
|
output from bison. For example::
|
|
|
|
|
|
|
|
|
|
|
|
From: ./parse.cc
|
|
|
|
|
|
parse.cc:9462:18: warning: missing initializer for member ‘vlltype::lexical_pos’ [-Wmissing-field-initializers]
|
|
|
|
|
|
9462 | = { 1, 1, 1, 1 }
|
|
|
|
|
|
| ^
|
|
|
|
|
|
parse.cc:9462:18: warning: missing initializer for member ‘vlltype::text’ [-Wmissing-field-initializers]
|
|
|
|
|
|
|
|
|
|
|
|
and::
|
|
|
|
|
|
|
|
|
|
|
|
From: ./vvp/parse.cc
|
|
|
|
|
|
parse.cc:3242: warning: suspicious sequence in the output: m4_type [-Wother]
|
|
|
|
|
|
parse.cc:3248: warning: suspicious sequence in the output: m4_type [-Wother]
|
|
|
|
|
|
|
|
|
|
|
|
Are common, but benign warnings. Different compilers or compiler versions may
|
|
|
|
|
|
have other warnings.
|
|
|
|
|
|
|
|
|
|
|
|
The expected last few lines of the make.log file and these indicate everything
|
|
|
|
|
|
should be working as expected are::
|
|
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
driver/iverilog -B. -BMvpi -BPivlpp -tcheck -ocheck.vvp ../iverilog/examples/hello.vl
|
|
|
|
|
|
vvp/vvp -M- -M./vpi ./check.vvp | grep 'Hello, World'
|
|
|
|
|
|
Hello, World
|
|
|
|
|
|
|
|
|
|
|
|
If everything is good to this point and you are installing into a system
|
|
|
|
|
|
prefix; install using ``sudo`` as shown below. If you are installing into a
|
|
|
|
|
|
personal location skip the ``sudo``::
|
|
|
|
|
|
|
|
|
|
|
|
% sudo make install
|
|
|
|
|
|
|
|
|
|
|
|
Now you should verify the regression test suite is working as expected::
|
|
|
|
|
|
|
|
|
|
|
|
% cd ../iverilog/ivtest
|
|
|
|
|
|
% ./vvp_reg.pl --suffix=-gcc
|
|
|
|
|
|
|
|
|
|
|
|
This is the original test script and should give no failures::
|
|
|
|
|
|
|
|
|
|
|
|
Running compiler/VVP tests for Icarus Verilog version: 13, suffix: -gcc.
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
|
|
macro_with_args: Passed.
|
|
|
|
|
|
mcl1: Passed.
|
|
|
|
|
|
pr622: Passed.
|
|
|
|
|
|
pr639: Passed.
|
|
|
|
|
|
...
|
|
|
|
|
|
ssetclr2: Passed.
|
|
|
|
|
|
ssetclr3: Passed.
|
|
|
|
|
|
synth_if_no_else: Passed.
|
|
|
|
|
|
ufuncsynth1: Passed.
|
|
|
|
|
|
============================================================================
|
|
|
|
|
|
Test results:
|
|
|
|
|
|
Total=3018, Passed=3013, Failed=0, Not Implemented=2, Expected Fail=3
|
|
|
|
|
|
|
|
|
|
|
|
Next run the new test script::
|
|
|
|
|
|
|
|
|
|
|
|
% ./vvp_reg.py --suffix=-gcc
|
|
|
|
|
|
|
|
|
|
|
|
This should also give no failures::
|
|
|
|
|
|
|
|
|
|
|
|
Running compiler/VVP tests for Icarus Verilog version: 13, suffix: -gcc
|
|
|
|
|
|
Using list(s): regress-vvp.list
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
|
|
always4A: Passed - CE.
|
|
|
|
|
|
always4B: Passed - CE.
|
|
|
|
|
|
analog1: Not Implemented.
|
|
|
|
|
|
analog2: Not Implemented.
|
|
|
|
|
|
...
|
|
|
|
|
|
vvp_quiet_mode: Passed.
|
|
|
|
|
|
warn_opt_sys_tf: Passed - EF.
|
|
|
|
|
|
wreal: Passed.
|
|
|
|
|
|
writemem-invalid: Passed - EF.
|
|
|
|
|
|
============================================================================
|
|
|
|
|
|
Test results: Ran 284, Failed 0.
|
|
|
|
|
|
|
|
|
|
|
|
Finally you can check that the VPI is working properly using::
|
|
|
|
|
|
|
|
|
|
|
|
% ./vpi_reg.pl --suffix=-gcc
|
|
|
|
|
|
|
|
|
|
|
|
The output for this should have no failures::
|
|
|
|
|
|
|
|
|
|
|
|
Running VPI tests for Icarus Verilog version: 13, suffix: -gcc.
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
|
|
br_gh59: Passed.
|
|
|
|
|
|
br_gh73a: Passed.
|
|
|
|
|
|
br_gh73b: Passed.
|
|
|
|
|
|
br_gh117: Passed.
|
|
|
|
|
|
...
|
|
|
|
|
|
value_change_cb2: Passed.
|
|
|
|
|
|
value_change_cb3: Passed.
|
|
|
|
|
|
value_change_cb4: Passed.
|
|
|
|
|
|
vpi_control: Passed.
|
|
|
|
|
|
============================================================================
|
|
|
|
|
|
Test results: Total=77, Passed=77, Failed=0, Not Implemented=0
|
|
|
|
|
|
|
|
|
|
|
|
You can uninstall everything using the following. If needed skip the ``sudo``
|
|
|
|
|
|
as described in the install description above.::
|
|
|
|
|
|
|
|
|
|
|
|
% sudo make uninstall
|
|
|
|
|
|
|
|
|
|
|
|
You can cleanup the compile directory using::
|
|
|
|
|
|
|
|
|
|
|
|
% make clean
|
|
|
|
|
|
or
|
|
|
|
|
|
% make distclean
|
|
|
|
|
|
|
|
|
|
|
|
The first just cleans up just the compiled files, etc. The later cleans up
|
|
|
|
|
|
the compiled file along with all the files generated in the ``configure``
|
|
|
|
|
|
phase.
|
|
|
|
|
|
|
|
|
|
|
|
Note that "rpm" packages of binaries for Linux are typically configured with
|
|
|
|
|
|
"--prefix=/usr" per the Linux File System Standard.
|
|
|
|
|
|
|
|
|
|
|
|
Make sure you have a recent version of flex otherwise you will get an error
|
2022-04-12 05:46:06 +02:00
|
|
|
|
when parsing lexor.lex.
|
|
|
|
|
|
|
|
|
|
|
|
Compiling on Macintosh OS X
|
|
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
|
|
Since Mac OS X is a BSD flavor of Unix, you can install Icarus Verilog from
|
|
|
|
|
|
source using the procedure described above. You need to install the Xcode
|
|
|
|
|
|
software, which includes the C and C++ compilers for Mac OS X. The package is
|
|
|
|
|
|
available for free download from Apple's developer site. Once Xcode is
|
|
|
|
|
|
installed, you can build Icarus Verilog in a terminal window just like any
|
|
|
|
|
|
other Unix install.
|
|
|
|
|
|
|
|
|
|
|
|
For versions newer than 10.3 the GNU Bison tool (packaged with Xcode) needs to
|
|
|
|
|
|
be updated to version 3. ::
|
|
|
|
|
|
|
|
|
|
|
|
brew install bison
|
|
|
|
|
|
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.bash_profile
|
|
|
|
|
|
|
|
|
|
|
|
Icarus Verilog is also available through the Homebrew package manager: "brew
|
|
|
|
|
|
install icarus-verilog".
|
2023-06-09 13:30:44 +02:00
|
|
|
|
|
2025-10-25 15:14:06 +02:00
|
|
|
|
Cross-Compiling for Windows
|
|
|
|
|
|
---------------------------
|
2023-06-09 13:30:44 +02:00
|
|
|
|
|
2026-03-01 23:40:31 +01:00
|
|
|
|
The `Cygwin` and `MSYS2` environments can compile Icarus Verilog as described
|
|
|
|
|
|
above for `Linux/Unix`. There is a `MSYS2` build recipe which can be found in
|
|
|
|
|
|
the `msys2/` directory. The accompanying README file provides further details.
|
|
|
|
|
|
`MSYS2` is typically preferred over `Cygwin` since ``GTKWave`` and Icarus
|
|
|
|
|
|
Verilog are both provided as pre-compiled packages.
|
|
|
|
|
|
|
|
|
|
|
|
What follows are older instructions for building Icarus Verilog binaries for
|
2023-06-09 13:30:44 +02:00
|
|
|
|
Windows using mingw cross compiler tools on Linux.
|
|
|
|
|
|
|
|
|
|
|
|
To start with, you need the mingw64-cross-* packages for your linux
|
|
|
|
|
|
distribution, which gives you the x86_64-w64-mingw32-* commands
|
|
|
|
|
|
installed on your system. Installing the cross environment is outside
|
|
|
|
|
|
the scope of this writeup.
|
|
|
|
|
|
|
|
|
|
|
|
First, configure with this command::
|
|
|
|
|
|
|
|
|
|
|
|
$ ./configure --host=x86_64-w64-mingw32
|
|
|
|
|
|
|
|
|
|
|
|
This generates the Makefiles needed to cross compile everything with
|
|
|
|
|
|
the mingw32 compiler. The configure script will generate the command
|
|
|
|
|
|
name paths, so long as commands line x86_64-w64-mingw32-gcc
|
|
|
|
|
|
et. al. are in your path.
|
|
|
|
|
|
|
|
|
|
|
|
Next, compile with the command::
|
|
|
|
|
|
|
|
|
|
|
|
$ make
|
|
|
|
|
|
|
|
|
|
|
|
The configure generated the cross compiler flags, but there are a few
|
|
|
|
|
|
bits that need to be compiled with the native compiler. (version.exe
|
|
|
|
|
|
for example is used by the build process but is not installed.) The
|
|
|
|
|
|
configure script should have gotten all that right.
|