# # This source code is free software; you can redistribute it # and/or modify it in source code form under the terms of the GNU # Library General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) # any later version. In order to redistribute the software in # binary form, you will need a Picture Elements Binary Software # License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this program; if not, write to the Free # Software Foundation, Inc., # 59 Temple Place - Suite 330 # Boston, MA 02111-1307, USA # #ident "$Id: Makefile.in,v 1.59 2000/07/07 04:53:53 steve Exp $" # # SHELL = /bin/sh VERSION = 0.3PRE prefix = @prefix@ exec_prefix = @exec_prefix@ srcdir = @srcdir@ VPATH = $(srcdir) bindir = $(exec_prefix)/bin libdir = $(exec_prefix)/lib mandir = @mandir@ includedir = $(prefix)/include CC = @CC@ CXX = @CXX@ INSTALL = @INSTALL@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ STRIP = @STRIP@ CPPFLAGS = @CPPFLAGS@ @DEFS@ CXXFLAGS = @CXXFLAGS@ -I$(srcdir) LDFLAGS = @LDFLAGS@ all: ivl verilog iverilog cd vpi ; $(MAKE) all cd vvm ; $(MAKE) all cd ivlpp ; $(MAKE) all clean: rm -f *.o parse.cc parse.cc.output parse.h dep/*.d lexor.cc verilog cd vpi ; $(MAKE) clean cd vvm ; $(MAKE) clean cd ivlpp ; $(MAKE) clean distclean: clean rm -f vpi/Makefile rm -f vvm/Makefile rm -f ivlpp/Makefile rm -f config.status config.cache config.log rm -f Makefile TT = t-null.o t-verilog.o t-vvm.o t-xnf.o FF = nodangle.o propinit.o synth.o syn-rules.o xnfio.o O = main.o cprop.o design_dump.o dup_expr.o elaborate.o elab_expr.o \ elab_net.o elab_pexpr.o elab_scope.o elab_sig.o emit.o eval.o eval_tree.o \ expr_synth.o functor.o lexor.o lexor_keyword.o link_const.o \ mangle.o netlist.o \ net_design.o net_event.o net_force.o net_link.o net_proc.o net_scope.o \ net_udp.o \ pad_to_width.o \ parse.o parse_misc.o pform.o pform_dump.o \ set_width.o \ verinum.o verireal.o target.o targets.o util.o Module.o PDelays.o PEvent.o \ PExpr.o PGate.o \ PTask.o PFunction.o PWire.o Statement.o \ $(FF) $(TT) Makefile: Makefile.in config.status ./config.status # Make the actual verilog program from the script template. This # simply invloves editing the substitution strings in the script into # the configured copy. tmp1 = bindir tmp2 = libdir tmp3 = includedir tmp4 = CXX verilog: $(srcdir)/verilog.sh sed -e 's;@$(tmp1)@;@bindir@;' \ -e 's;@$(tmp2)@;@libdir@;' \ -e 's;@$(tmp3)@;@includedir@;' \ -e 's;@dllib@;@DLLIB@;' \ -e 's;@$(tmp4)@;@CXX@;' < $< > $@ ivl: $O $(CXX) $(CXXFLAGS) -o ivl $O iverilog: iverilog.c $(CC) $(CPPFLAGS) -o iverilog -DCXX='"@CXX@"' -DIVL_ROOT='"@libdir@/ivl"' -DIVL_INC='"@includedir@"' -DIVL_LIB='"@libdir@"' -DDLLIB='"@DLLIB@"' iverilog.c %.o dep/%.d: %.cc @[ -d dep ] || mkdir dep $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MD -c $< -o $*.o mv $*.d dep/$*.d lexor.o dep/lexor.d: lexor.cc parse.h parse.o dep/parse.d: parse.cc parse.h parse.cc: $(srcdir)/parse.y bison --verbose -t -p VL -d $(srcdir)/parse.y -o parse.cc mv parse.cc.h parse.h syn-rules.cc: $(srcdir)/syn-rules.y bison --verbose -p syn_ -o syn-rules.cc $(srcdir)/syn-rules.y lexor.cc: $(srcdir)/lexor.lex flex -PVL -s -olexor.cc $(srcdir)/lexor.lex lexor_keyword.o dep/lexor_keyword.d: lexor_keyword.cc lexor_keyword.cc: lexor_keyword.gperf gperf -o -i 7 -C -k 1-3,$$ -L ANSI-C -H keyword_hash -N check_identifier -t lexor_keyword.gperf > lexor_keyword.cc install: all installdirs $(bindir)/iverilog $(libdir)/ivl/ivl $(mandir)/man1/iverilog.1 cd vpi ; $(MAKE) install cd vvm ; $(MAKE) install cd ivlpp ; $(MAKE) install $(bindir)/iverilog: ./iverilog $(INSTALL_PROGRAM) ./iverilog $(bindir)/iverilog $(STRIP) $(bindir)/iverilog $(libdir)/ivl/ivl: ./ivl $(INSTALL_PROGRAM) ./ivl $(libdir)/ivl/ivl $(STRIP) $(libdir)/ivl/ivl $(mandir)/man1/iverilog.1: $(srcdir)/iverilog.man $(INSTALL_DATA) $(srcdir)/iverilog.man $(mandir)/man1/iverilog.1 installdirs: mkinstalldirs $(srcdir)/mkinstalldirs $(bindir) $(libdir)/ivl $(mandir)/man1 uninstall: rm -f $(libdir)/ivl/ivl rm -f $(bindir)/verilog rm -f $(bindir)/gverilog rm -f $(bindir)/iverilog rm -f $(mandir)/man1/verilog.1 rm -f $(mandir)/man1/iverilog.1 cd vpi ; $(MAKE) uninstall cd vvm ; $(MAKE) uninstall cd ivlpp ; $(MAKE) uninstall -include $(patsubst %.o, dep/%.d, $O)