diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP new file mode 100644 index 000000000..d6bbce428 --- /dev/null +++ b/MANIFEST.SKIP @@ -0,0 +1,26 @@ +^CVS/ +/CVS/ +\.git/ +\.svn/ +\.(bak|old)/ +\.(bak|old)$ +\bMakefile$ +\.tar\. +.*\.tgz +.*\.log +.*\.tmp +.*\.tex +.*\.key +.*\.vcd +/obj_dir/ +/obj_dbg/ +/obj_opt/ +/logs/ +Makefile +src/Makefile_obj +include/verilated.mk +config.cache +config.status +verilator_bin.* +autom4te\.cache/ +nodist/ diff --git a/Makefile.in b/Makefile.in index b495c1d2b..355cc9ba1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -103,19 +103,25 @@ DISTBIN = $(wildcard bin/verilator-*) DISTFILES_INC = $(INFOS) .cvsignore COPYING *.in *.ac \ Changes README TODO \ + MANIFEST.SKIP \ bin/* \ install-sh configure mkinstalldirs *.texi \ include/verilated.[chv]* \ include/verilatedos.[chv]* \ include/*.in \ - src/.cvsignore src/*.in src/*.cpp src/*.[chly] src/astgen src/*fix \ + include/.*ignore \ + .*attributes */.*attributes */*/.*attributes \ + src/.*ignore src/*.in src/*.cpp src/*.[chly] src/astgen src/*fix \ src/*.pl \ - test_*/.cvsignore test_*/Makefile* test_*/*.cpp \ + test_*/.*ignore test_*/Makefile* test_*/*.cpp \ test_*/*.pl test_*/*.v test_*/*.vc test_*/vlint \ test_verilated/vgen*.pl \ - test_regress/t/*.v* \ - test_regress/t/*.pl \ + test_regress/t/*.cpp \ + test_regress/t/*.h \ + test_regress/t/*.mem \ test_regress/t/*.out \ + test_regress/t/*.pl \ + test_regress/t/*.v* \ verilator.* \ INST_PROJ_FILES = \ @@ -203,7 +209,7 @@ verilator.pdf: bin/verilator $(DISTCONFIG) mv verilator2.tex verilator.tex pdflatex verilator.tex pdflatex verilator.tex - -rm -f verilator.toc verilator.aux verilator.idx + -rm -f verilator.toc verilator.aux verilator.idx verilator.out INSTALL: install.texi $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \ @@ -253,8 +259,8 @@ install-project: dist for p in verilator.1 ; do \ $(INSTALL_PROGRAM) -m 0666 $$p $(DIRPROJECT_PREFIX)/man/man1/$$p; \ done - $(INST_PROJ_CVS) $(DISTNAME).tar.gz $(DIRPROJECT)/hw/utils/verilator/verilator.tgz - rm $(DISTNAME).tar.gz + $(INST_PROJ_CVS) $(DISTNAME).tgz $(DIRPROJECT)/hw/utils/verilator/verilator.tgz + rm $(DISTNAME).tgz install-project-quick: @echo "Install-project-quick (no strip) to $(DIRPROJECT)" @@ -331,6 +337,12 @@ TAGFILES=${srcdir}/*/*.cpp ${srcdir}/*/*.h ${srcdir}/*/[a-z]*.in \ TAGS: $(TAGFILES) etags $(TAGFILES) +###################################################################### +# Test targets + +dist-file-list: + @echo "dist-file-list:"; # Scripts look for this + @echo $(wildcard $(DISTFILES)) ###################################################################### # Distributions @@ -358,6 +370,7 @@ dist: $(DISTDEP) maintainer-copy chmod -R a+r $(DISTNAME) tar chf $(DISTNAME).tar $(DISTNAME) gzip --force --best $(DISTNAME).tar + mv $(DISTNAME).tgz $(DISTNAME).tgz rm -fr $(DISTNAME) maintainer-diff: @@ -367,4 +380,4 @@ preexist: svnorcvs nexists $(DISTTAGNAME) maintainer-dist: preexist dist tag - svnorcvs release $(DISTNAME).tar.gz + svnorcvs release $(DISTNAME).tgz diff --git a/readme.texi b/readme.texi index 591915fa6..1ae6a0706 100644 --- a/readme.texi +++ b/readme.texi @@ -60,7 +60,7 @@ The latest version is available at @uref{http://www.veripool.org/verilator} Download the latest package from that site, and decompress. -@samp{gunzip verilator_version.tar.gz ; tar xvf verilator_version.tar} +@samp{tar xvzf verilator_version.tgz} @node Directory Structure, Supported Systems, Obtaining Distribution, Top @section Directory Structure diff --git a/test_regress/t/t_dist_manifest.pl b/test_regress/t/t_dist_manifest.pl new file mode 100755 index 000000000..e5897b9f0 --- /dev/null +++ b/test_regress/t/t_dist_manifest.pl @@ -0,0 +1,58 @@ +#!/usr/bin/perl +if (!$::Driver) { use FindBin; exec("./driver.pl", @ARGV, $0); die; } +# $Id$ +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2003 by Wilson Snyder. This program is free software; you can +# redistribute it and/or modify it under the terms of either the GNU +# General Public License or the Perl Artistic License. + +my $root = ".."; +my $Debug; + +### +# Call once and ignore to rebuild any targets before we need the output +`cd $root && make dist-file-list`; +my $manifest_files = `cd $root && make dist-file-list`; +$manifest_files =~ s!.*dist-file-list:!!sg; +my %files; +foreach my $file (split /\s+/,$manifest_files) { + next if $file eq ''; + $files{$file} |= 1; +} + +my $all_files = `cd $root && find . -type f -print`; +foreach my $file (split /\s+/,$all_files) { + next if $file eq ''; + $file =~ s!^\./!!; + $files{$file} |= 2; +} + +my $skip = file_contents("$root/MANIFEST.SKIP"); +foreach my $file (sort keys %files) { + foreach my $skip (split /\s+/,$skip) { + if ($file =~ /$skip/) { + $files{$file} |= 4; + } + } +} + +foreach my $file (sort keys %files) { + my $tar = $files{$file}&1; + my $dir = $files{$file}&2; + my $skip = $files{$file}&4; + + print +(($tar ? "TAR ":" ") + .($dir ? "DIR ":" ") + .($skip ? "SKIP ":" ") + ." $file\n") if $Debug; + + if ($dir && !$tar && !$skip) { + $Last_Self->error("File not in manifest or MANIFEST.SKIP: $file"); + } elsif (!$dir && $tar && !$skip) { + $Last_Self->error("File in manifest, but not directory: $file"); + } +} + +ok(1); +1;