This file describes the procedure to build and install Icarus Verilog on Mac OS X. I assume that you have experience with Unix and Terminal.app and a basic knowledge of how to download, compile and install software from source form. Yasuhisa Kato wrote another set of instructions that has also been known to work: . You may try those instructions instead of these, although they are essentially quite similar. 1) Obtain and install a libdl compatibility library. If you don't already have /usr/local/lib/libdl.{a,dylib} and /usr/local/include/dlfcn.h, you can obtain the source for a compatibility layer from at least one of two places: http://download.sourceforge.net/fink/dlcompat-20010831.tar.gz http://www.omnigroup.com/~bungi/dlcompat-20010831.tar.gz Unpack this tar file and read the README and Makefile. Install the library according to the instructions. Installation in /usr/local is strongly recommended since otherwise autoconf very likely won't be able to find it. 2) Make sure you have a copy of the 'gperf' tool. This does not come with the Mac OS X 10.1 developer tools, so you probably don't. You can check with: % which gperf If not found, grab a gperf source package and install it. See "GPERF FOR MACOSX" below. Snapshots of Icarus Verilog source now come with the lexor_keyword.cc file pre-made, so if you have trouble with gperf, then just make sure the distributed lexor_keyword.cc is newer then lexor_keyword.gperf, and use that. 3) If working with a CVS snapshot, you must run autoconf in several directories. This is aided by the 'autoconf.sh' script at the top of the source tree: sh ./autoconf.sh This will also run the gperf command, so make sure you'd completed step #2 first. 4) Configure, build and install the Icarus Verilog sources as normal. The only change you need to make here is to use a configure command like: % CC="cc -no-cpp-precomp" ./configure This assumes you are using 'sh', 'zsh', or 'bash'. If you are using 'csh' or 'tcsh', then you'll want something like: % setenv CC "cc -no-cpp-precomp" % ./configure You can, of course, add other configure options. 6) NOTE: 'make check' will not work until after 'make install' has been run since dynamically loaded code is searched for in the install location rather than the build location. The dlopen emulation library doesn't support a search path option. If you are worried about overwriting a working installation with a new, potentially broken one, you can always configure using --prefix="/some/path", and install there to make sure everything is working and then re-configure with the real path you want to install at, make clean, and make install. 5) Done! GPERF FOR MACOSX Get version 2.7.2 of gperf from here: Get a MacosX patch from here: http://www.eternal.nest.or.jp/~shiro/binaries/gperf-2.7.2-macosx-patch.gz Apply the patch to the gperf-2.7.2 source that you previously downloaded, then follow the remaining gperf installation instructions.