diff --git a/Makefile.in b/Makefile.in index 11803c705..c3a506d68 100644 --- a/Makefile.in +++ b/Makefile.in @@ -16,7 +16,7 @@ # 59 Temple Place - Suite 330 # Boston, MA 02111-1307, USA # -#ident "$Id: Makefile.in,v 1.114 2002/02/03 07:05:36 steve Exp $" +#ident "$Id: Makefile.in,v 1.115 2002/02/16 03:18:53 steve Exp $" # # SHELL = /bin/sh @@ -66,10 +66,12 @@ ifeq ('@HAVE_IPAL@','yes') TARGETS += tgt-pal endif +ifeq (@ENABLE_VVM@,yes) +SUB_VVM = vvm +endif all: ivl@EXEEXT@ libvpi.a - for dir in $(SUBDIRS); do (cd $$dir ; $(MAKE) all); done - cd vvm ; $(MAKE) all + for dir in $(SUBDIRS) $(SUB_VVM); do (cd $$dir ; $(MAKE) all); done cd vpi ; $(MAKE) all cd ivlpp ; $(MAKE) all cd driver ; $(MAKE) VERSION=$(VERSION) all @@ -94,17 +96,16 @@ check: all clean: rm -f *.o parse.cc parse.cc.output parse.h dep/*.d lexor.cc lexor_keyword.cc ivl@EXEEXT@ libivl.a libvpi.a - cd vvm ; $(MAKE) clean cd vpi ; $(MAKE) clean cd driver ; $(MAKE) clean cd ivlpp ; $(MAKE) clean cd tgt-verilog ; $(MAKE) clean cd tgt-stub ; $(MAKE) clean - for dir in $(SUBDIRS); do (cd $$dir ; $(MAKE) clean); done + for dir in $(SUBDIRS) $(SUB_VVM); do (cd $$dir ; $(MAKE) clean); done for tgt in $(TARGETS); do (cd $$tgt ; $(MAKE) clean); done distclean: clean - for dir in $(SUBDIRS); do (cd $$dir ; $(MAKE) distclean); done + for dir in $(SUBDIRS) $(SUB_VVM); do (cd $$dir ; $(MAKE) distclean); done for tgt in $(TARGETS); do (cd $$tgt ; $(MAKE) distclean); done rm -f vvm/Makefile rm -f vpi/Makefile @@ -113,7 +114,11 @@ distclean: clean rm -f config.status config.cache config.log rm -f Makefile -TT = t-dll.o t-dll-api.o t-dll-expr.o t-dll-proc.o t-vvm.o t-xnf.o +ifeq (@ENABLE_VVM@,yes) +TT_VVM = t-vvm.o +endif + +TT = t-dll.o t-dll-api.o t-dll-expr.o t-dll-proc.o $(TT_VVM) t-xnf.o FF = nodangle.o synth.o syn-rules.o xnfio.o O = main.o cprop.o design_dump.o dup_expr.o elaborate.o elab_expr.o \ @@ -194,11 +199,10 @@ WIN32_INSTALL = $(prefix)/hello.vl $(prefix)/sqrt.vl $(prefix)/QUICK_START.txt endif install: all installdirs $(libdir)/ivl/ivl@EXEEXT@ $(libdir)/ivl/iverilog.conf $(includedir)/ivl_target.h $(includedir)/vpi_user.h $(libdir)/libvpi.a $(WIN32_INSTALL) - cd vvm ; $(MAKE) install cd vpi ; $(MAKE) install cd ivlpp ; $(MAKE) install cd driver ; $(MAKE) install - for tgt in $(SUBDIRS); do (cd $$tgt ; $(MAKE) install); done + for tgt in $(SUBDIRS) $(SUB_VVM); do (cd $$tgt ; $(MAKE) install); done for tgt in $(TARGETS); do (cd $$tgt ; $(MAKE) install); done $(libdir)/libvpi.a : ./libvpi.a @@ -245,9 +249,8 @@ uninstall: rm -f $(includedir)/vpi_user.h cd driver ; $(MAKE) uninstall cd vpi ; $(MAKE) uninstall - cd vvm ; $(MAKE) uninstall cd ivlpp ; $(MAKE) uninstall - for tgt in $(SUBDIRS); do (cd $$tgt ; $(MAKE) uninstall); done + for tgt in $(SUBDIRS) $(SUB_VVM); do (cd $$tgt ; $(MAKE) uninstall); done for tgt in $(TARGETS); do (cd $$tgt ; $(MAKE) uninstall); done diff --git a/config.h.in b/config.h.in index 6c96e2f83..279dd6e6f 100644 --- a/config.h.in +++ b/config.h.in @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: config.h.in,v 1.3 2001/10/18 16:16:23 steve Exp $" +#ident "$Id: config.h.in,v 1.4 2002/02/16 03:18:53 steve Exp $" #endif #if defined(__cplusplus) @@ -44,8 +44,13 @@ # undef HAVE_LIBREADLINE # undef HAVE_SYS_WAIT_H +# undef ENABLE_VVM + /* * $Log: config.h.in,v $ + * Revision 1.4 2002/02/16 03:18:53 steve + * Make vvm optional, normally off. + * * Revision 1.3 2001/10/18 16:16:23 steve * Include HAVE_SYS_WAIT in config.h (PR#306) * diff --git a/configure.in b/configure.in index c453b069e..55ef3f41b 100644 --- a/configure.in +++ b/configure.in @@ -2,6 +2,16 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(netlist.h) AC_CONFIG_HEADER(config.h) +AC_ARG_ENABLE(vvm, vvm target -- the obsolete vvm code generator, + AC_DEFINE(ENABLE_VVM)) +if test "${enable_vvm+set}" = set +then + ENABLE_VVM=yes +else + ENABLE_VVM=no +fi +AC_SUBST(ENABLE_VVM) + dnl Checks for programs. AC_PROG_CC AC_PROG_CXX diff --git a/driver/iverilog.man b/driver/iverilog.man index 14c7f60ab..cc2819196 100644 --- a/driver/iverilog.man +++ b/driver/iverilog.man @@ -1,4 +1,4 @@ -.TH iverilog 1 "$Date: 2002/02/03 07:05:37 $" Version "$Date: 2002/02/03 07:05:37 $" +.TH iverilog 1 "$Date: 2002/02/16 03:18:54 $" Version "$Date: 2002/02/16 03:18:54 $" .SH NAME iverilog - Icarus Verilog compiler @@ -12,10 +12,9 @@ iverilog - Icarus Verilog compiler .PP \fIiverilog\fP is a compiler that translates Verilog source code into executable programs for simulation, or other netlist formats for -further processing. The currently supported targets are \fIvvm\fP (for -executable simulation) and \fIvvp\fP for simulation, and \fIxnf\fP for -synthesis. Other target types are added as code generators are -implemented. +further processing. The currently supported targets are \fIvvp\fP for +simulation, and \fIxnf\fP and \fIfpga\fP for synthesis. Other target +types are added as code generators are implemented. .SH OPTIONS .l @@ -153,27 +152,21 @@ desired target. The null target causes no code to be generated. It is useful for checking the syntax of the Verilog source. .TP 8 -.B vvm -The target is an executable program that uses the vvm simulation -runtime. The compiler actually generates C++ code, then compiles and -links that code to make the output executable. -.TP 8 .B vvp This is the default. The vvp target generates code for the vvp runtime. The output is a complete program that simulates the design -(like with vvm) but must be run by the \fBvvp\fP command. This target -is much faster then the \fBvvm\fP target, but not quite as complete. +but must be run by the \fBvvp\fP command. .TP 8 .B xnf This is the Xilinx Netlist Format used by many tools for placing devices in FPGAs or other programmable devices. The Icarus Verilog XNF code generator can generate complete designs or XNF macros that can be -imported into larger designs by other tools. +imported into larger designs by other tools. (This target is obsolete, +use the \fBfpga\fP target instead.) .TP 8 .B fpga -This is a variant of the XNF code generator that supports a wider -variety of target devices. It is intended as a future replacement for -the existing \fBxnf\fP target, but for now is still experimental. +This is a synthesis target that supports a variety of fpga devices, +mostly by EDIF format output. .SH "WARNING TYPES" These are the types of warnings that can be selected by the \fB-W\fP diff --git a/targets.cc b/targets.cc index 129ce37d0..483b9630d 100644 --- a/targets.cc +++ b/targets.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: targets.cc,v 1.8 2001/07/25 03:10:50 steve Exp $" +#ident "$Id: targets.cc,v 1.9 2002/02/16 03:18:54 steve Exp $" #endif # include "config.h" @@ -25,18 +25,26 @@ # include "target.h" extern const struct target tgt_dll; -extern const struct target tgt_vvm; extern const struct target tgt_xnf; +#ifdef ENABLE_VVM +extern const struct target tgt_vvm; +#endif + const struct target *target_table[] = { &tgt_dll, +#ifdef ENABLE_VVM &tgt_vvm, +#endif &tgt_xnf, 0 }; /* * $Log: targets.cc,v $ + * Revision 1.9 2002/02/16 03:18:54 steve + * Make vvm optional, normally off. + * * Revision 1.8 2001/07/25 03:10:50 steve * Create a config.h.in file to hold all the config * junk, and support gcc 3.0. (Stephan Boettcher)