diff --git a/.travis.yml b/.travis.yml index 01d0c4721..6b4e8c3b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,24 @@ jobs: - stage: Test os: linux - before_install: + dist: xenial + before_install: + - git clone https://github.com/steveicarus/ivtest.git + - export PATH=$HOME/bin:$PATH + script: + - autoconf + - ./configure --prefix=$HOME + - make install + - make check + - cd ivtest + - perl vvp_reg.pl + - diff regression_report-devel.txt regression_report.txt + - perl vpi_reg.pl + + - stage: Test + os: linux + dist: bionic + before_install: - git clone https://github.com/steveicarus/ivtest.git - export PATH=$HOME/bin:$PATH script: diff --git a/Makefile.in b/Makefile.in index 5ac5515ac..974593374 100644 --- a/Makefile.in +++ b/Makefile.in @@ -254,12 +254,9 @@ lexor.o: lexor.cc parse.h parse.o: parse.cc -# Build this in two steps to avoid parallel build issues (see pr3462585) -parse.cc: $(srcdir)/parse.y - $(YACC) --verbose -t -p VL -d -o $@ $< -parse.h: parse.cc - mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@ - touch $@ +# Use pattern rules to avoid parallel build issues (see pr3462585) +parse%cc parse%h: $(srcdir)/parse%y + $(YACC) --verbose -t -p VL --defines=parse.h -o parse.cc $< syn-rules.cc: $(srcdir)/syn-rules.y $(YACC) --verbose -t -p syn_ -o $@ $< diff --git a/aclocal.m4 b/aclocal.m4 index a47eba42c..1b2dd6a1e 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -23,11 +23,13 @@ AC_SUBST(install_suffix) # ------------------------------ # Sub-macro for AX_C_UNDERSCORES_LEADING and AX_C_UNDERSCORES_TRAILING. # Unwarranted assumptions: -# - the object file produced by AC_COMPILE_IFELSE is called "conftest.$ac_objext" -# - the nm(1) utility is available, and its name is "nm". +# - the object file produced by AC_COMPILE_IFELSE is called +# "conftest.$ac_objext" +# - the nm(1) utility or an equivalent is available, and its name +# is defined by the $NM variable. AC_DEFUN([_AX_C_UNDERSCORES_MATCH_IF], [AC_COMPILE_IFELSE([AC_LANG_SOURCE([void underscore(void){}])], -[AS_IF([nm conftest.$ac_objext|grep $1 >/dev/null 2>/dev/null],[$2],[$3])], +[AS_IF([$NM conftest.$ac_objext|grep $1 >/dev/null 2>/dev/null],[$2],[$3])], [AC_MSG_ERROR([underscore test crashed])] )]) diff --git a/driver/Makefile.in b/driver/Makefile.in index 4d7144c5e..1cfdd7d8e 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -85,10 +85,9 @@ iverilog@EXEEXT@: $O cflexor.c: $(srcdir)/cflexor.lex $(LEX) -s -t $< > $@ -# Build this in two steps to avoid parallel build issues (see pr3462585) -cfparse.c: $(srcdir)/cfparse.y - $(YACC) --verbose -t -p cf -d -o $@ $< -cfparse.h: cfparse.c +# Use pattern rules to avoid parallel build issues (see pr3462585) +cfparse%c cfparse%h: $(srcdir)/cfparse%y + $(YACC) --verbose -t -p cf -d -o cfparse.c $< %.o: %.c $(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o diff --git a/tgt-pcb/Makefile.in b/tgt-pcb/Makefile.in index a5f9b7d5b..5574fa781 100644 --- a/tgt-pcb/Makefile.in +++ b/tgt-pcb/Makefile.in @@ -88,11 +88,8 @@ fp_lex.o: fp_lex.cc fp.h fp_lex.cc: $(srcdir)/fp.lex $(LEX) -s -ofp_lex.cc $(srcdir)/fp.lex -fp.cc: $(srcdir)/fp.y - $(YACC) --verbose -t -p fp -d -o $@ $< -fp.h: fp.cc - mv fp.cc.h $@ 2>/dev/null || mv fp.hh $@ - touch $@ +fp%cc fp%h: $(srcdir)/fp%y + $(YACC) --verbose -t -p fp --defines=fp.h -o fp.cc $< ifeq (@WIN32@,yes) TGTLDFLAGS=-L.. -livl diff --git a/vhdlpp/Makefile.in b/vhdlpp/Makefile.in index 53ae140ae..2f808fc98 100644 --- a/vhdlpp/Makefile.in +++ b/vhdlpp/Makefile.in @@ -115,12 +115,9 @@ parse.o: parse.cc lexor.cc: $(srcdir)/lexor.lex $(LEX) -s -olexor.cc $(srcdir)/lexor.lex -# Build this in two steps to avoid parallel build issues (see pr3462585) -parse.cc: $(srcdir)/parse.y - $(YACC) --verbose -t -d -o $@ $< -parse.h: parse.cc - mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@ - touch $@ +# Use pattern rules to avoid parallel build issues (see pr3462585) +parse%cc parse%h: $(srcdir)/parse%y + $(YACC) --verbose -t --defines=parse.h -o parse.cc $< lexor_keyword.o: lexor_keyword.cc parse.h diff --git a/vpi/Makefile.in b/vpi/Makefile.in index b08ba4244..818ac8347 100644 --- a/vpi/Makefile.in +++ b/vpi/Makefile.in @@ -149,20 +149,18 @@ sdf_lexor.o: sdf_lexor.c sdf_parse.h sdf_lexor.c: $(srcdir)/sdf_lexor.lex $(LEX) -t $< > $@ -# Build this in two steps to avoid parallel build issues (see pr3462585) -sdf_parse.c: $(srcdir)/sdf_parse.y - $(YACC) --verbose -t -p sdf -d -o $@ $< -sdf_parse.h: sdf_parse.c +# Use pattern rules to avoid parallel build issues (see pr3462585) +sdf_parse%c sdf_parse%h: $(srcdir)/sdf_parse%y + $(YACC) --verbose -t -p sdf -d -o sdf_parse.c $< table_mod_lexor.o: table_mod_lexor.c table_mod_parse.h table_mod_lexor.c: $(srcdir)/table_mod_lexor.lex $(LEX) -t $< > $@ -# Build this in two steps to avoid parallel build issues (see pr3462585) -table_mod_parse.c: $(srcdir)/table_mod_parse.y - $(YACC) --verbose -t -p tblmod -d -o $@ $< -table_mod_parse.h: table_mod_parse.c +# Use pattern rules to avoid parallel build issues (see pr3462585) +table_mod_parse%c table_mod_parse%h: $(srcdir)/table_mod_parse%y + $(YACC) --verbose -t -p tblmod -d -o table_mod_parse.c $< v2005_math.vpi: $(V2005) libvpi.a $(CC) @shared@ -o $@ $(V2005) -L. $(LDFLAGS) -lvpi $(VA_MATH_VPI_LDFLAGS) diff --git a/vvp/Makefile.in b/vvp/Makefile.in index 8ccdb1d2e..14608b9eb 100644 --- a/vvp/Makefile.in +++ b/vvp/Makefile.in @@ -140,12 +140,9 @@ parse.o: parse.cc tables.o: tables.cc -# Build this in two steps to avoid parallel build issues (see pr3462585) -parse.cc: $(srcdir)/parse.y - $(YACC) --verbose -t -d -o $@ $< -parse.h: parse.cc - mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@ - touch $@ +# Use pattern rules to avoid parallel build issues (see pr3462585) +parse%cc parse%h: $(srcdir)/parse%y + $(YACC) --verbose -t --defines=parse.h -o parse.cc $< lexor.cc: $(srcdir)/lexor.lex $(LEX) -s -olexor.cc $(srcdir)/lexor.lex