Re: Seeking advice on oddities in VIS installation process

From: Roderick Bloem (rbloem@yahoo.com)
Date: Thu Nov 30 2000 - 03:10:27 MST

  • Next message: Roderick Bloem: "Re: Getting vl2mv 1.0 or later version"

    Kathi,

    Your remark on -native, -dalign is very interesting. In the man pages
    for gcc that we have, neither option is described, and these options do
    not appear in the Makefile. This leads to the conjecture that something
    may have gone wrong in the configure script, and configure thinks that
    you have cc (maybe because of the /usr/ucb/cc path/?).

    Could you send us the config.cache file? WE may be able to deduce from
    that which compiler it thinks it has.

    Roderick.

    Kathi Fisler wrote:
    >
    > > Do you have access to an older gcc version?
    >
    > Not at present. If necessary, my systems staff can install an older
    > version though.
    >
    > > Could you perhaps send us your makefile?
    >
    > Here's the VIS Makefile. This is as generated from configure, minus
    > the prefix and glulib/include paths, the full paths for ranlib and ar,
    > and the modification of CFLAGS to remove -native and -dalign (which
    > our gcc doesn't recognize).
    >
    > Kathi
    >
    > # Generated automatically from Makefile.in by configure.
    > # FileName [ Makefile.in ]
    > #
    > # PackageName [ vis ]
    > #
    > # Synopsis [ Package-wide Makefile ]
    > #
    > # Description [ This file requires GNU's make program.
    > # Run "configure" to generate the Makefile, or use
    > # "config.status" (created by configure) to regenerate the
    > # Makefile after modifying this file.
    > #
    > # Type "gmake help" for help about valid targets.
    > # ]
    > #
    > # SeeAlso [ configure.in ]
    > #
    > # Author [ Stephen Edwards <sedwards@eecs.berkeley.edu>
    > # Tom Shiple <shiple@eecs.berkeley.edu> ]
    > #
    > # Copyright [
    > # Copyright (c) 1994-1996 The Regents of the Univ. of California.
    > # All rights reserved.
    > #
    > # Permission is hereby granted, without written agreement and without license
    > # or royalty fees, to use, copy, modify, and distribute this software and its
    > # documentation for any purpose, provided that the above copyright notice and
    > # the following two paragraphs appear in all copies of this software.
    > #
    > # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
    > # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
    > # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
    > # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    > #
    > # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
    > # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    > # FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN
    > # "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE
    > # MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
    > # ]
    > #
    > # Revision [$Id: 0083.html,v 1.1.1.1 2001/04/26 21:30:31 vis Exp $]
    >
    > # Default target:
    >
    > .PHONY : default
    >
    > default : all
    >
    > #----------------------------------------------------------------------
    > # The list of packages to compile. Change this if you are only compiling
    > # part of VIS
    > #----------------------------------------------------------------------
    >
    > #PKGS = tst
    > PKGS = $(ALL_PKGS)
    >
    > # The name of the BDD package to use
    >
    > BDDPKG = cu
    >
    > #----------------------------------------------------------------------
    > # This Makefile is designed for three different situations:
    > #
    > # 1. Single platform build (the default)
    > #
    > # All packages listed in the PKGS variable
    > # local_srcdir = master_srcdir = .
    > #
    > # 2. Multi-platform build
    > #
    > # All packages listed in the PKGS variable
    > # local_srcdir = master_srcdir = /where/source/files/reside
    > #
    > # 3. Multi-platform development (used at Berkeley)
    > #
    > # Packages under development listed in the PKGS variable
    > # local_srcdir = ../common
    > # master_srcdir = /projects/vis/vis-devel/common
    > #
    > # User has a directory structure that looks like
    > #
    > # vis/common/src/ Subdirectory with package source files
    > # under development.
    > #
    > # vis/$PLATFORM/ Subdirectory with this Makefile.
    > # Compilation is invoked here.
    > #
    > # $PLATFORM is something like "alpha-g" (DEC Alpha, debug version)
    > #
    > #----------------------------------------------------------------------
    >
    > #----------------------------------------------------------------------
    > # Information about all the packages
    > #----------------------------------------------------------------------
    >
    > ALL_PKGS = abs amc cmd ctlp eqv fsm hrc img io mark mc mvf ntk ntm ord part rst \
    > res restr sim synth tbl tst var vm
    >
    > # Generate the list of all packages NOT in the PKGS list
    >
    > MISSING_PKGS = $(filter-out $(PKGS), $(ALL_PKGS))
    >
    > # All the BDD packages
    > BDDPKGS = cmu cu cal
    >
    > #----------------------------------------------------------------------
    > # For safety
    > #----------------------------------------------------------------------
    >
    > SHELL = /bin/sh
    > .SUFFIXES:
    >
    > #----------------------------------------------------------------------
    > # The name of the product and its version
    > #----------------------------------------------------------------------
    >
    > PRODUCT = vis
    > VERSION = 1.3
    >
    > # Compile and version information
    > #
    > # CUR_DATE and CUR_VER are strings surrounded by double quotes that contain
    > # spaces, e.g., "vis release 1.0"
    >
    > VERDATE := -DCUR_DATE="\"$(shell date)\"" -DCUR_VER="\"$(PRODUCT) release $(VERSION)\""
    >
    > #----------------------------------------------------------------------
    > # Source directories
    > #----------------------------------------------------------------------
    >
    > # Directory containing master source files. This directory is searched
    > # for packages NOT listed in the PKGS variable. Defaults to "."
    > # Override with ./configure --srcdir=
    > master_srcdir = .
    >
    > # Directory containing local source files. This directory is searched
    > # for packages listed in the PKGS variable. Defaults to the master source
    > # directory (see above).
    > # Override with ./configure --with-local-srcdir=
    > local_srcdir = .
    >
    > #----------------------------------------------------------------------
    > # Directories used while building
    > #----------------------------------------------------------------------
    >
    > # Directories to search for glu .h files (space-separated)
    > gluincdir1 = /users/csfaculty/kfisler/VerifTools/GLU1.3/glu-1.3/include
    >
    > # Directories to search for libglu.a (space-separated)
    > glulibdir1 = /users/csfaculty/kfisler/VerifTools/GLU1.3/glu-1.3/
    >
    > # Directory where object files will be placed during the build
    > objectdir = obj
    >
    > # Directory where links to header files will be placed during the build
    > headerdir = $(local_srcdir)/include
    >
    > # Directories where documentation will be placed during the build
    > docdir = $(master_srcdir)/doc
    > htmldocdir = $(docdir)/html
    > txtdocdir = $(docdir)/txt
    > helpdir = $(master_srcdir)/share/help
    >
    > # Directories to search for VIS library files
    > # Set by ./configure --with-vis-libdir=
    > vislibdir = .
    >
    > # Full path of platform-independent library files during the build.
    > # Using this variable as an environment variable allows VIS to work
    > # before it is installed.
    > #
    > # Note: This is NOT where they will be installed
    >
    > VIS_LIBRARY_PATH = $(shell cd $(master_srcdir)/share ; pwd)
    >
    > #----------------------------------------------------------------------
    > # Defaults for GLU library and header files
    > #----------------------------------------------------------------------
    >
    > ifndef gluincdir1
    > gluincdir = ../glu-$(VERSION)/include ../../glu-$(VERSION)/include
    > else
    > gluincdir = $(gluincdir1)
    > endif
    >
    > ifndef glulibdir1
    > glulibdir = ../glu-$(VERSION) ../../glu-$(VERSION)
    > else
    > glulibdir = $(glulibdir1)
    > endif
    >
    > #----------------------------------------------------------------------
    > # Installation names and directories
    > #----------------------------------------------------------------------
    >
    > # Name of the library to create
    > LIBRARY = lib$(PRODUCT).a
    >
    > # Directory in which to install architecture-independent files
    > # Set by ./configure --prefix=...
    > prefix = /users/csfaculty/kfisler/VerifTools/VIS1.3/vis-1.3/
    >
    > # Directory in which to install architecture-dependent files
    > # Set by ./configure --exec-prefix=...
    > exec_prefix = ${prefix}
    >
    > # Directory in which to install binaries
    > bindir = $(exec_prefix)/bin
    >
    > # Directory in which to install libraries
    > libdir = $(exec_prefix)/lib
    >
    > # Directory in which to install headers
    > includedir = $(prefix)/include
    >
    > # Directory in which to install architecture-independent library files
    > datadir = $(prefix)/share/vis
    >
    > #----------------------------------------------------------------------
    > # The following are set by the configure script
    > #----------------------------------------------------------------------
    >
    > AC_FLAGS = -DNDEBUG=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_TERMIOS_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SIGNAL_H=1 -DHAVE_SYS_SIGNAL_H=1 -DIOCTL_WITH_TERMIOS=1 -DHAVE_IOCTL_WITH_TIOCGETC=1 -DTIME_WITH_SYS_TIME=1 -DRETSIGTYPE=void -DRETSIGTYPE=void -DSTDC_HEADERS=1
    > LIBDIRS =
    > RANLIB = /usr/ccs/bin/ranlib
    > CC = /usr/ucb/cc
    > LINKER = /usr/ucb/cc
    > LDFLAGS =
    > #
    > # Define the linker for the executable with "memory_profile" activated
    > #
    > PLINKER =
    > CFLAGS = -dalign
    > #CFLAGS = -xO5 -native -dalign
    > OTHERLIBS = -lm
    > YACC = bison -y
    > LEX = flex
    > NAWK = gawk
    > INSTALL = helpers/install-sh -c
    > INSTALL_PROGRAM = ${INSTALL}
    > INSTALL_DATA = ${INSTALL} -m 644
    > AR = /usr/ccs/bin/ar
    >
    > #----------------------------------------------------------------------
    > # Examples included in the distribution
    > #----------------------------------------------------------------------
    >
    > # Each example is declared only once. If some checking through is done
    > # make check, then it is declared in one of CHECK_COMMON_EXAMPLES,
    > # CHECK_EXAMPLES_cu, CHECK_EXAMPLES_cmu or CHECK_EXAMPLES_cu. If the example
    > # is just being added to the examples directory in VIS, then add it here.
    >
    > EXAMPLES = $(CHECK_COMMON_EXAMPLES) $(CHECK_EXAMPLES_cu) \
    > $(CHECK_EXAMPLES_cmu) $(CHECK_EXAMPLES_cal) \
    > viper 8085 arbiter bpb eight_queens minmax \
    > ping_pong_new rcnum treearbiter
    >
    > # The "interesting" example files are anything in the examples subdirectories
    > # except the RCS subdirectories
    > #
    > # This is a rather messy way to look for filenames in the local_srcdir,
    > # then remove the local_srcdir prefix
    >
    > EXAMPLEFILES = $(patsubst $(local_srcdir)/%, %, \
    > $(filter-out %RCS, $(foreach example, $(EXAMPLES), \
    > $(wildcard $(local_srcdir)/examples/$(example)/*))))
    >
    > # $(pathsubst $(local_srcdir)/%, %, \
    > # $(filter-out %/RCS, $(foreach example, $(EXAMPLES), \
    >
    > #----------------------------------------------------------------------
    > # Distributed files in the doc directory
    > #----------------------------------------------------------------------
    >
    > DOCUMENTATION = blifmv.ps ctl.ps vis_user.ps two_phase.ps
    >
    > #----------------------------------------------------------------------
    > # Files in the share directory
    > #----------------------------------------------------------------------
    >
    > SHAREFILES = master.visrc ioBlifToMv.nawk ioBlifToMvForIncremental.nawk\
    > script_compute_reach.simple script_compute_reach.robust\
    > script_model_check.simple script_model_check.robust\
    > script_fair_model_check.simple script_fair_model_check.robust\
    > script_lang_empty_check.simple script_lang_empty_check.robust\
    > script_generic.simple script_generic.robust\
    > sislib.mv createfunctionmap memoryaccount
    >
    > HELPFILES = $(notdir $(wildcard $(helpdir)/*.txt))
    >
    > #----------------------------------------------------------------------
    > # Include the make templates from all the packages
    > #
    > # Each of these templates (e.g., array/array.make) should contains lines
    > # of the form
    > #
    > # CSRC += source1.c source2.c
    > # HEADERS += header1.h header2.h
    > # LEXSRC += file1.l
    > # YACCSRC += file2.y
    > # GENERATEDCSRC += ctlpLex.c ctlpRead.c
    > #----------------------------------------------------------------------
    >
    > MAKEINCLUDES = $(foreach package, $(PKGS), \
    > $(local_srcdir)/src/$(package)/$(package).make)
    >
    > include $(MAKEINCLUDES)
    >
    > OBJECTS = $(addprefix $(objectdir)/,$(GENERATEDCSRC:.c=.o) $(CSRC:.c=.o))
    >
    > #----------------------------------------------------------------------
    > # Include the dependency files from each package directory.
    > # A missing dependency file does not produce an error.
    > #----------------------------------------------------------------------
    >
    > DEPENDENCIES = $(foreach package, $(PKGS), \
    > $(local_srcdir)/src/$(package)/$(package).d)
    >
    > -include $(DEPENDENCIES)
    >
    > #----------------------------------------------------------------------
    > # Header files and library search paths and names
    > #
    > # INCLUDEDIRS looks like "-I/projects/glu/ -I/projects/vis/ ..."
    > # LIBRARYDIRS looks like "-L/projects/glu/ -L/projects/vis/ ..."
    > # LIBS looks like "-lm -lglu -lvis"
    > #----------------------------------------------------------------------
    >
    > INCLUDEDIRS = $(addprefix -I,$(gluincdir)) \
    > $(foreach package, $(PKGS), -I$(local_srcdir)/src/$(package)) \
    > $(foreach package, $(MISSING_PKGS), \
    > -I$(master_srcdir)/src/$(package)) \
    > -I$(objectdir)
    >
    > LIBRARYDIRS = $(addprefix -L,$(vislibdir)) $(addprefix -L,$(glulibdir)) \
    > $(LIBDIRS)
    >
    > # Link against the VIS library only if some packages are missing
    > # (i.e., we are compiling only a few packages locally)
    >
    > ifneq ($(strip $(MISSING_PKGS)),)
    > VISLIBS = -l$(PRODUCT)
    > else
    > VISLIBS =
    > endif
    >
    > GLULIBS = -l$(BDDPKG) -lglu
    >
    > LIBS = $(VISLIBS) $(GLULIBS) $(OTHERLIBS)
    >
    > #----------------------------------------------------------------------
    > # Form the the list of directories to search for header files.
    > #
    > # VPATH looks like /projects/vis:/projects/glu/: ...
    > #----------------------------------------------------------------------
    >
    > VPATH = $(local_srcdir): \
    > $(master_srcdir): \
    > $(addprefix :$(local_srcdir)/src/,$(PKGS)): \
    > $(addprefix :$(master_srcdir)/src/,$(MISSING_PKGS)): \
    > $(objectdir): \
    > $(local_srcdir)/share
    >
    > #----------------------------------------------------------------------
    > # Definitions for the distribution file
    > #----------------------------------------------------------------------
    >
    > DISTRIBUTION = $(PRODUCT)-$(VERSION)
    >
    > # Directories to include in the distribution file
    >
    > DISTDIRS = src helpers share share/help obj doc examples \
    > $(addprefix examples/,$(EXAMPLES)) $(addprefix src/,$(PKGS))
    >
    > # Build/install helper files
    >
    > HELPERS = $(addprefix helpers/, \
    > install-sh mkinstalldirs config.guess config.sub dependency.make)
    >
    > # Files to include in the distribution file
    >
    > DISTFILES = \
    > README INSTALL NEWS \
    > configure configure.in Makefile.in $(HELPERS) \
    > xsimv \
    > $(CSRC) $(HEADERS) $(LEXSRC) $(YACCSRC) $(MAKEINCLUDES) \
    > $(EXAMPLEFILES) \
    > $(addprefix doc/,$(DOCUMENTATION)) \
    > $(addprefix share/,$(SHAREFILES)) \
    > $(addprefix share/help/,$(HELPFILES))
    >
    > #----------------------------------------------------------------------
    > # Variables used by for Revision Control
    > #----------------------------------------------------------------------
    >
    > # The root RCS directory
    > rcs_rootdir = /projects/vis/rcsRoot/common
    >
    > RCSFILES = $(CSRC) $(HEADERS) $(LEXSRC) $(YACCSRC) $(MAKEINCLUDES)
    >
    > RCSMISCFILES = Makefile.in configure.in localconfigure \
    > masterconfigure README INSTALL NEWS xsimv $(addprefix helpers/, mkinstalldirs install-sh \
    > config.guess config.sub dependency.make )
    >
    > RCSSHAREFILES = $(SHAREFILES)
    >
    > #----------------------------------------------------------------------
    > # Implicit rules
    > #----------------------------------------------------------------------
    >
    > ALLCFLAGS = $(CFLAGS) $(AC_FLAGS) $(VERDATE) \
    > -DNAWK=\"$(NAWK)\" -DLIBRARY=\"$(datadir)\"
    >
    > # For compiling a source file into the object directory
    >
    > $(objectdir)/%.o : %.c
    > umask 2 ; $(CC) -c $(ALLCFLAGS) $(INCLUDEDIRS) -o $@ $<
    >
    > # Place object files into an archive
    >
    > %.a :
    > rm -f $@
    > umask 2; $(AR) cq $@ $^
    > $(RANLIB) $@
    >
    > ######################################################################
    > # RULES #
    > ######################################################################
    >
    > #:
    > #: Useful targets:
    > #:
    >
    > #----------------------------------------------------------------------
    > # Rule for getting help
    > #----------------------------------------------------------------------
    >
    > .PHONY : help
    >
    > #: help -- Print a list of targets
    >
    > # This prints all lines in this Makefile that begin with #:
    >
    > help :
    > @sed -n "s/^#://p" Makefile
    >
    > #----------------------------------------------------------------------
    > # Always executed once when the Makefile is run
    > #----------------------------------------------------------------------
    >
    > # Make sure the directory in which to place the objects exists
    >
    > ignored := $(shell umask 2; test -d $(objectdir) || mkdir $(objectdir))
    >
    > #----------------------------------------------------------------------
    > # Rules to compile and build libraries and executables
    > #----------------------------------------------------------------------
    >
    > .PHONY : all allprods library allprods-mp exe-mp compile-version delete-version
    >
    > #:
    > #: all (the default) -- Compile the main executable
    > # (force the version to be recompiled)
    >
    > all : compile-version $(PRODUCT)
    >
    > # Create the main executable
    >
    > $(PRODUCT) : $(OBJECTS) $(glulibdir)/libglu.a $(glulibdir)/lib$(BDDPKG).a
    > umask 2 ; $(LINKER) -o $(PRODUCT) $(LDFLAGS) \
    > $(OBJECTS) $(LIBRARYDIRS) $(LIBS)
    >
    > #: allprods -- Compile an executable linked with each BDD package
    >
    > allprods : $(OBJECTS) $(glulibdir)/libglu.a $(foreach bddpkg, $(BDDPKGS), \
    > $(glulibdir)/lib$(bddpkg).a)
    > @for bddpkg in $(BDDPKGS) ; \
    > do \
    > echo "Creating vis-$$bddpkg";\
    > umask 2 ; $(LINKER) -o $(PRODUCT)-$$bddpkg $(LDFLAGS) $(OBJECTS) \
    > $(LIBRARYDIRS) $(VISLIBS) -l$$bddpkg -lglu $(OTHERLIBS); \
    > done
    >
    > # Force the "version" information to be recompiled
    >
    > compile-version : delete-version $(objectdir)/vmVers.o
    >
    > # Delete the object file related to the version
    >
    > delete-version :
    > rm -f $(objectdir)/vmVers.o
    >
    > # Build a library containing all the objects
    >
    > #: library -- Create a library of all the objects (useful in a central area)
    >
    > library : $(LIBRARY)
    >
    > $(LIBRARY) : $(OBJECTS)
    >
    > ifdef PLINKER
    > $(PRODUCT)-mp : $(LIBRARY) $(glulibdir)/libglu.a \
    > $(foreach bddpkg, $(BDDPKGS), \
    > $(glulibdir)/lib$(bddpkg).a)
    > umask 2 ; $(PLINKER) -o $(PRODUCT)-mp $(OBJECTS) \
    > `purify -printhomedir`/libpurify_stubs.a \
    > $(LIBRARYDIRS) $(LIBS)
    >
    > allprods-mp : $(LIBRARY) $(glulibdir)/libglu.a \
    > $(foreach bddpkg, $(BDDPKGS), \
    > $(glulibdir)/lib$(bddpkg).a)
    > @for bddpkg in $(BDDPKGS) ; \
    > do \
    > echo "Creating vis-$$bddpkg";\
    > umask 2 ; $(PLINKER) -o $(PRODUCT)-$$bddpkg-mp $(OBJECTS) \
    > `purify -printhomedir`/libpurify_stubs.a \
    > $(LIBRARYDIRS) $(VISLIBS) -l$$bddpkg -lglu $(OTHERLIBS) ; \
    > done
    >
    > exe-mp : $(OBJECTS)
    > $(PLINKER) -o $(PRODUCT)-mp $(OBJECTS) \
    > `purify -printhomedir`/libpurify_stubs.a \
    > $(LIBRARYDIRS) $(LIBS)
    > endif
    >
    > #----------------------------------------------------------------------
    > # Rule to produce the function map for the memory_profile command
    > #----------------------------------------------------------------------
    >
    > .PHONY : functionmap
    >
    > FMAPFILE = .fmap
    > functionmap: $(CSRC)
    > $(VIS)/common/share/createfunctionmap $^ >$(FMAPFILE)
    >
    > #----------------------------------------------------------------------
    > # Rules for installation
    > #----------------------------------------------------------------------
    >
    > .PHONY : install uninstall installdirs
    >
    > #:
    > #: install -- Install the product and libraries in bindir, libdir,
    > #: datadir, etc.
    >
    > install : $(PRODUCT) $(LIBRARY) installdirs
    > @if [ ! -f $(bindir)/$(PRODUCT) ] ; \
    > then \
    > echo "Installing $(bindir)/$(PRODUCT)" ; \
    > $(INSTALL_PROGRAM) $(PRODUCT) $(bindir)/$(PRODUCT) ; \
    > else \
    > echo "Warning: $(bindir)/$(PRODUCT) already exists" ; \
    > fi
    > @if [ ! -f $(libdir)/$(LIBRARY) ] ; \
    > then \
    > echo "Installing $(libdir)/$(LIBRARY)" ; \
    > $(INSTALL_DATA) $(LIBRARY) $(libdir)/$(LIBRARY) ; \
    > else \
    > echo "Warning: $(libdir)/$(LIBRARY) already exists" ; \
    > fi
    > @for file in $(SHAREFILES) ; do \
    > if [ ! -f $(datadir)/$$file ] ; \
    > then \
    > echo "Installing $(datadir)/$$file"; \
    > $(INSTALL_DATA) $(master_srcdir)/share/$$file \
    > $(datadir)/$$file; \
    > else \
    > echo "Warning: $(datadir)/$$file already exists" ; \
    > fi ; \
    > done
    > @for file in $(HELPFILES) ; do \
    > if [ ! -f $(datadir)/help/$$file ] ; \
    > then \
    > echo "Installing $(datadir)/help/$$file"; \
    > $(INSTALL_DATA) $(master_srcdir)/share/help/$$file \
    > $(datadir)/help/$$file; \
    > else \
    > echo "Warning: $(datadir)/help/$$file already exists" ; \
    > fi ; \
    > done
    > @for header in $(HEADERS); do \
    > if [ ! -f $(includedir)/$$header ] ; \
    > then \
    > echo "Installing $(includedir)/$$header"; \
    > $(INSTALL_DATA) $(master_srcdir)/src/*/$$header \
    > $(includedir)/$$header; \
    > else \
    > echo "Warning: $(includedir)/$$header already exists" ; \
    > fi ; \
    > done
    >
    > #: uninstall -- Reverse the effects of "install"
    >
    > uninstall :
    > rm -f $(bindir)/$(PRODUCT)
    > rm -f $(libdir)/$(LIBRARY)
    > @for file in $(SHAREFILES) ; \
    > do \
    > echo "Removing $(datadir)/$$file"; \
    > rm -f $(datadir)/$$file; \
    > done
    > @for file in $(HELPFILES) ; \
    > do \
    > echo "Removing $(datadir)/help/$$file"; \
    > rm -f $(datadir)/help/$$file; \
    > done
    > @for header in $(HEADERS); \
    > do \
    > echo "Removing $(includedir)/$$header"; \
    > rm -f $(includedir)/$$header; \
    > done
    >
    > installdirs :
    > $(master_srcdir)/helpers/mkinstalldirs \
    > $(bindir) $(libdir) $(includedir) $(datadir) $(datadir)/help
    >
    > #----------------------------------------------------------------------
    > # Rules for checking the build
    > #----------------------------------------------------------------------
    >
    > .PHONY : check check-bdd check-examples
    >
    > # This is a lengthy sed command used to filter out the irrelevant VIS
    > # output that appears when the examples are running.
    > #
    > # Sed does not permit space between the trailing p ("print matching
    > # lines") and the semicolon (end of command). Hashes are escaped --
    > # otherwise they are Makefile comments. This was once a long egrep
    > # expression, but the string was too long for Ultrix's egrep.
    >
    > SED_CMD = \
    > /^FSM depth/p; \
    > /^computation depth/p; \
    > /^reachable states =/p; \
    > /^\# MC: formula passed/p; \
    > /^\# INV: formula passed/p; \
    > /^\# INV: formula failed/p; \
    > /^\# MC: formula failed/p; \
    > /^\# LE: language is not empty/p; \
    > /^\# LE: language emptiness check passes/p; \
    > /^\# ABS: formula passed/p; \
    > /^\# ABS: formula failed/p; \
    > /Residue/p; \
    > /^\# AMC: Verified formula TRUE/p; \
    > /^\# AMC: Verified formula FALSE/p; \
    > /Equivalence Classes/p; \
    > /Total number of literals/p; \
    > /Networks are combinationally equivalent\./p; \
    > /Networks are sequentially equivalent\./p; \
    > /;.*;/p;
    >
    > # List of all examples to check (A subset of EXAMPLES)
    >
    > CHECK_COMMON_EXAMPLES = abp amp bakery coherence counter crd ctlp3 dcnew \
    > eisenberg elevator ethernet exampleS gigamax ping_pong \
    > scheduler short slider tbl_one_bug tcp tlc
    >
    > CHECK_EXAMPLES = $(CHECK_COMMON_EXAMPLES) $(CHECK_EXAMPLES_$(BDDPKG))
    >
    > CHECK_EXAMPLES_cu = mult6x6 s1269 fpmpy restruct synthesis production_cell
    > CHECK_EXAMPLES_cmu =
    > CHECK_EXAMPLES_cal =
    >
    > # Determine the absolute executable path
    > #
    > # Starting from the current directory, change directory to the directory
    > # part of the product name, then tack on the filename part of EXECUTABLE
    >
    > EXECUTABLE = $(PRODUCT)
    >
    > EXECUTABLEPATH := \
    > $(shell cd $(dir $(EXECUTABLE)) ; pwd)/$(notdir $(EXECUTABLE))
    >
    > # Determine the rootname of the examples
    > #
    >
    > EXAMPLEPATH = $(master_srcdir)/examples
    >
    > FULLEXAMPLEPATH := $(shell cd $(EXAMPLEPATH) ; pwd)
    >
    > #:
    > #: check -- Test the locally-built executable (runs check-examples)
    >
    > check : check-examples
    >
    > # Run check on each of the bdd versions (named e.g., vis-cmu)
    >
    > #: check-allprods -- Test each of the BDD executables (see allprods)
    >
    > check-allprods :
    > @for bddpkg in $(BDDPKGS) ; \
    > do \
    > echo "Checking $(PRODUCT)-$$bddpkg";\
    > $(MAKE) PRODUCT=$(PRODUCT)-$$bddpkg BDDPKG=$$bddpkg check ; \
    > done
    >
    > #: check-examples -- Test each of the examples listed in CHECK_EXAMPLES
    > #: You may want to invoke this with
    > #: gmake "CHECK_EXAMPLES=abp bakery" check-examples
    > #: gmake EXECUTABLE=vis-cmu check-examples
    > #: gmake EXECUTABLE=/projects/vis/vis-devel/alpha-g/vis \
    > #: check-examples
    > #: gmake EXAMPLEPATH=/projects/vis/vis-devel/common/examples \
    > #: check-examples
    > #: gmake EXAMPLEPATH=../common/examples check-examples
    > #: gmake VIS_LIBRARY_PATH=/projects/vis/vis-devel/share
    >
    > # For each example,
    > #
    > # 1) create the directory checkresults/<example>
    > # 2) enter that directory
    > # 3) create "check_script" by prepending a "set open_path" command
    > # to the example's check_script in the master source directory. This
    > # makes VIS look in the master source directory for example files
    > # 4) run VIS on that script, producing "result.raw"
    > # 5) filter out relevant lines in the result, producing "result.filtered"
    > # and compare this with the "check_result" file in the master source
    > # directory. Differences are written to "result.differences"
    >
    > check-examples :
    > @test -d checkresults || mkdir checkresults
    > @echo "Checking examples. Results will be in checkresults/<example>/result.raw"
    > @echo "Running executable $(EXECUTABLEPATH)"
    > @echo " (change with EXECUTABLE=...)"
    > @echo "Taking examples from $(FULLEXAMPLEPATH)"
    > @echo " (change with EXAMPLEPATH=...)"
    > @cwd=`pwd` ; \
    > VIS_LIBRARY_PATH=$(VIS_LIBRARY_PATH) ; \
    > export VIS_LIBRARY_PATH ; \
    > for example in $(CHECK_EXAMPLES) ; \
    > do \
    > echo -n "Checking $$example ... " ; \
    > cd $$cwd ; \
    > test -d checkresults/$$example || \
    > mkdir checkresults/$$example ; \
    > cd checkresults/$$example ; \
    > rm -f check_script ; \
    > echo "set open_path $(FULLEXAMPLEPATH)/$$example" > check_script ; \
    > cat $(FULLEXAMPLEPATH)/$$example/check_script >> check_script ; \
    > $(EXECUTABLEPATH) -f check_script -x > result.raw 2> result.stderr ; \
    > sed -n '$(SED_CMD)' result.raw > result.filtered ; \
    > if diff result.filtered \
    > $(FULLEXAMPLEPATH)/$$example/check_result > result.differences ; \
    > then \
    > echo "passed" ; \
    > rm result.differences ; \
    > else \
    > echo "failed (more checkresults/$$example/result.differences)" ; \
    > fi ; \
    > done
    >
    > # egrep '$(KEY_WORDS)' result.raw > result.filtered ; \
    >
    > #----------------------------------------------------------------------
    > # Rules that produce/delete the dependency file for every package
    > #----------------------------------------------------------------------
    >
    > .PHONY : dependencies cleandependencies
    >
    > #:
    > #: dependencies -- Create a list of dependency files.
    > #: Useful when modifying header files.
    >
    > # Invoke the "dependency.make" Makefile on each package subdirectory,
    > # passing the path, etc. to it.
    > #
    > # There's a strange feature in autoconf where lines of the form " VPATH="
    > # are removed from the Makefile. Thus, a flag is placed before the
    > # VPATH= argument below.
    >
    > dependencies:
    > ifeq ($(CC),gcc)
    > for pkg in $(PKGS) ; \
    > do \
    > $(MAKE) --no-print-directory \
    > -f $(master_srcdir)/helpers/dependency.make \
    >

    __________________________________________________
    Do You Yahoo!?
    Talk to your friends online with Yahoo! Messenger.
    http://im.yahoo.com



    This archive was generated by hypermail 2b29 : Thu Nov 30 2000 - 04:06:43 MST