<commit_before>

MINGW PORT OF ICARUS VERILOG

    Copyright 2003 <NAME>  <<EMAIL>>


Icarus Verilog source can be compiled with the mingw C/C++ compilers
to get a Windows binary that does not require the POSIX compatibility
cruft of the Cygwin.dll library. The resulting program can be run with
or without Cygwin, so this is the preferred Windows distribution form.
The configure scripts automatically detect that the compilers in use
are the mingw compilers and will configure the Makefiles appropriately.

However, the mingw tools do not include all the other tools around the
compiler, including the shell interpreter for the configure script,
bison, flex, gperf, etc. Therefore, you still need Cygwin to compile
Icarus Verilog, even if you don't need the Cygwin compilers. There are
also a few precompiled library prerequisites that you need.

* Some Preliminary Comments

The Windows port of Icarus Verilog is the most difficult of all the
ports. The Windows system off the shelf is completely stripped, devoid
of any support for software development. Everything needed to compile
Icarus Verilog must be collected from various sources and stitched
together by hand. Normal human beings with a basic understanding of
software development can do this, but some patience (and access to the
internet) is required. You may choose to print these instructions.

I have no plans to intentionally support MSVC++ compilation. Don't ask.

* Summary of Prerequisites

This is a brief list of prerequisite packages, along with the URL
where each can be found. In most cases, the specific version is not
critical, but these are the version I use.

     Cygwin                     <http://cygwin.com>
     Mingw32-2.0.0              <http://www.mingw.org>
     readline-4.2-20010727.zip  <http://mingwrep.sourceforge.net>
     bzip2-1.0.2-bin.zip        <http://gnuwin32.sourceforge.net>
     zlib-1.1.4-bin.zip         <http://gnuwin32.sourceforge.net>
     bzip2-1.0.2-lib.zip        <http://gnuwin32.sourceforge.net>
     zlib-1.1.4-lib.zip         <http://gnuwin32.sourceforge.net>

The above table lists the packages required. It is convenient to
install them in the above order. Many of these packages are also
collected into the directory:

     <ftp://icarus.com/pub/eda/verilog/win32-build-parts>

* Install Cygwin

So, step 1 is "Download and Install Cygwin." See the web page
http://www.cygwin.com for instructions and the files to do
this. Cygwin *is* a kool package, and is worth having anyhow. There is
a convenient setup program that you download first. You execute the
setup program, and that prompts you to select the package you want.

You need in particular the Cygwin base, bison (see notes) flex, make
and gperf. If you are compiling from CVS, you also need cvs, rcs and
automake packages. You will also need tar and gunzip, but these are
hard to not install. I recommend installing the "which" package as well.

    NOTES:
      bison-1.875 is broken, it generates invalid C/C++ code. You
      don't want that version for anything you do. If you have that
      version (use "bison -V" to check the version) then use the
      Cygwin setup program to get a different version. I've downgraded
      to version 1.75 and couldn't be happier. In fact, a whole host
      of insane bison bugs can be avoided that way.

Other then the install of mingw32, most of the remaining steps are<commit_msg> More details about the Cygwin parts.<commit_after>

MINGW PORT OF ICARUS VERILOG

    Copyright 2003 <NAME>  <<EMAIL>>


Icarus Verilog source can be compiled with the mingw C/C++ compilers
to get a Windows binary that does not require the POSIX compatibility
cruft of the Cygwin.dll library. The resulting program can be run with
or without Cygwin, so this is the preferred Windows distribution form.
The configure scripts automatically detect that the compilers in use
are the mingw compilers and will configure the Makefiles appropriately.

However, the mingw tools do not include all the other tools around the
compiler, including the shell interpreter for the configure script,
bison, flex, gperf, etc. Therefore, you still need Cygwin to compile
Icarus Verilog, even if you don't need the Cygwin compilers. There are
also a few precompiled library prerequisites that you need.

* Some Preliminary Comments

The Windows port of Icarus Verilog is the most difficult of all the
ports. The Windows system off the shelf is completely stripped, devoid
of any support for software development. Everything needed to compile
Icarus Verilog must be collected from various sources and stitched
together by hand. Normal human beings with a basic understanding of
software development can do this, but some patience (and access to the
internet) is required. You may choose to print these instructions.

I have no plans to intentionally support MSVC++ compilation. Don't ask.

* Summary of Prerequisites

This is a brief list of prerequisite packages, along with the URL
where each can be found. In most cases, the specific version is not
critical, but these are the versions I use.

     Cygwin                     <http://cygwin.com>
     Mingw32-2.0.0              <http://www.mingw.org>
     readline-4.2-20010727.zip  <http://mingwrep.sourceforge.net>
     bzip2-1.0.2-bin.zip        <http://gnuwin32.sourceforge.net>
     zlib-1.1.4-bin.zip         <http://gnuwin32.sourceforge.net>
     bzip2-1.0.2-lib.zip        <http://gnuwin32.sourceforge.net>
     zlib-1.1.4-lib.zip         <http://gnuwin32.sourceforge.net>

The above table lists the packages required. It is convenient to
install them in the above order. Many of these packages are also
collected into the directory:

     <ftp://icarus.com/pub/eda/verilog/win32-build-parts>

Incidentally, besides Mingw32, none of these packages are needed after
installation of Icarus Verilog is complete. These are only needed to
build the compiler. The Mingw32 package can be used to compile VPI
modules if you choose.

* Install Cygwin

So, step 1 is "Download and Install Cygwin." See the web page
http://www.cygwin.com for instructions and the files to do
this. Cygwin *is* a kool package, and is worth having anyhow. There is
a convenient setup program that you download first. You execute the
setup program, and that prompts you to select the package you want.

You need in particular the Cygwin base, bison (see notes) flex, make
and gperf. If you are compiling from CVS, you also need cvs, rcs and
automake packages. You will also need tar and gunzip, but these are
hard to not install. I recommend installing the "which" package as
well. Beyond the basics, be sure to install these Cygwin packages:

      bison        (*not* 1.875. See Notes.)
      flex
      ghostscript  (makes the documentation)
      gperf
      gzip
      make
      strip
      tar          (tar and gunzip for unpacking the source)
      unzip        (For unpacking zip compressed packages.)
      which

    NOTES:
      bison-1.875 is broken, it generates invalid C/C++ code. You
      don't want that version for anything you do. If you have that
      version (use "bison -V" to check the version) then use the
      Cygwin setup program to get a different version. I've downgraded
      to 1.75 and couldn't be happier. In fact, a whole host of insane
      bison bugs can be avoided that way.

      There is a mingw32 runtime package included in the Cygwin
      distribution. You do *not* need that, as you will be getting
      everything from the mingw32 distribution itself.

Other then the install of mingw32, most of the remaining steps are
{'fraction_non_alphanumeric': 0.05468441164843853, 'fraction_numerical': 0.015548820661483727, 'mean_word_length': 3.367088607594937, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3243055', 'n_tokens_mistral': 2203, 'n_tokens_neox': 2051, 'n_words': 1073}