Skip to content

Commit

Permalink
Add source for CAL 2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
SSoelvsten committed Jan 15, 2022
0 parents commit 8a8634b
Show file tree
Hide file tree
Showing 61 changed files with 45,948 additions and 0 deletions.
350 changes: 350 additions & 0 deletions Makefile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,350 @@
# FileName [ Makefile.in ]
#
# PackageName [ glu ]
#
# 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 a list of valid targets. ]
#
# SeeAlso [ configure.in ]
#
# Author [ Rajeev K. Ranjan (Modified from the file written by
# Stephen Edwards ]
#
# Copyright [
# Copyright (c) 1994-1998 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.
# ]
#
# Default target:

.PHONY : default

default : all

#----------------------------------------------------------------------
# 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
#

#----------------------------------------------------------------------
# For safety
#----------------------------------------------------------------------

SHELL = /bin/sh
.SUFFIXES:

#----------------------------------------------------------------------
# The name of the product and its version
#----------------------------------------------------------------------

PRODUCT = cal
VERSION = 2.1

#----------------------------------------------------------------------
# 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 = @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 = @local_srcdir@

#----------------------------------------------------------------------
# Directories used while building
#----------------------------------------------------------------------

# Directory where object files will be placed during the build
objectdir = .


#----------------------------------------------------------------------
# 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 = @prefix@

# Directory in which to install architecture-dependent files
# Set by ./configure --exec-prefix=...
exec_prefix = @exec_prefix@

# Directory in which to install libraries
libdir = $(exec_prefix)/lib

# Directory in which to install headers
includedir = $(prefix)/include

#----------------------------------------------------------------------
# The following are set by the configure script
#----------------------------------------------------------------------

AC_FLAGS = @DEFS@
RANLIB = @RANLIB@
AR = @AR@
CC = @CC@
CFLAGS = @CFLAGS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@


CSRC = cal.c calBddOp.c calBddManager.c calMemoryManagement.c\
calHashTable.c calUtil.c calGC.c \
calTerminal.c calAssociation.c \
calBddSubstitute.c calReduce.c calQuant.c \
calBddSwapVars.c calBddSatisfy.c calBddSize.c \
calBddSupport.c calPrint.c calPrintProfile.c calDump.c\
calHashTableOne.c calPipeline.c calPerformanceTest.c \
calHashTableThree.c calBddITE.c calBddCompose.c\
calCacheTableTwo.c calApplyReduce.c calBlk.c \
calReorderBF.c calReorderDF.c calInteract.c\
calBddVarSubstitute.c calReorderUtil.c calMem.c

HEADERS = cal.h calInt.h calMem.h

MISC = calBddReorderTest.c calPerformanceTest.c calTest.c\
calAllAbs.html calAllByFile.html calAllByFunc.html\
calAllDet.html calAllFile.html calDesc.html\
calExt.html calExtAbs.html calExtDet.html calTitle.html credit.html\
calDoc.txt

DEPENDENCYFILES = $(CSRC)

OBJECTS = $(addprefix $(objectdir)/,$(CSRC:.c=.o))


INCLUDEDIRS = -I.

#----------------------------------------------------------------------
# Implicit rules for compiling and archiving
#----------------------------------------------------------------------

# For compiling a source file into the object directory

$(objectdir)/%.o : %.c
umask 2; $(CC) -c $(CFLAGS) $(AC_FLAGS) $(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
#----------------------------------------------------------------------

.PHONY : all

#:
#: all (the default) -- Create the libraries

all : $(LIBRARY)

$(LIBRARY) : $(OBJECTS)

#----------------------------------------------------------------------
# Warts
#----------------------------------------------------------------------

# Work around an optimizer bug in the native Ultrix compiler

ifeq (@target@,mips-dec-ultrix4.5)
$(objectdir)/calReduce.o : calReduce.c
umask 2; $(CC) -c -std1 -g $(AC_FLAGS) $(INCLUDEDIRS) -o $@ $<
endif

# Work around a bug in gcc 2.7.0

ifeq ($(CC),gcc)
ifeq ($(shell gcc --version),2.7.0)

$(objectdir)/cal.o : cal.c
umask 2; $(CC) -c -g $(AC_FLAGS) $(INCLUDEDIRS) -o $@ $<

$(objectdir)/calBddSwapVars.o : calBddSwapVars.c
umask 2; $(CC) -c -g $(AC_FLAGS) $(INCLUDEDIRS) -o $@ $<

endif
endif

#----------------------------------------------------------------------
# Rules to build test programs
#----------------------------------------------------------------------

.PHONY : check check-cal

#:
#: check -- Test the libraries (runs check-bdd)


check : checkcal
checkcal > checkcal.out
@echo "Test appears successful -- results in checkcal.out"

checkcal : libcal.a calTest.c
$(CC) -o checkcal -DTEST $(CFLAGS) $(AC_FLAGS) $(INCLUDEDIRS) \
$(filter %.c, $^) -L. -lcal


#----------------------------------------------------------------------
# Rules for rebuilding the configure file and Makefile
#----------------------------------------------------------------------

${master_srcdir}/configure : configure.in
cd ${master_srcdir} && autoconf
chmod -f 0775 ${master_srcdir}/config*

config.status : configure
./config.status --recheck

Makefile : Makefile.in config.status
@echo "The master Makefile.in has been changed:"
@echo "run config.status"
@echo "Warning: This will overwrite any local Makefile modifications"
@exit 1

#----------------------------------------------------------------------
# Rules for cleaning
#----------------------------------------------------------------------

.PHONY : clean mostlyclean distclean

clean mostlyclean :
rm -rf $(OBJECTS) checkcal.out


#----------------------------------------------------------------------
# Rule for performing a lint-like check on the source code
#
# Note: This requires gcc
#----------------------------------------------------------------------

.PHONY : check_code

#:
#: check-code -- Run a lint-like check on the source code.
#: (useful for development)

check-code : $(CSRC)
ifeq ($(CC),gcc)
@rm -f *.o_checkcode
@for file in $^; do \
echo "------------------------ Checking $$file"; \
gcc -c $(CFLAGS) $(AC_FLAGS) $(VERDATE) $(INCLUDEDIRS) \
-Wall -Wno-comment -o $(objectdir)/checkcode_output.o $$file; \
rm -f $(objectdir)/checkcode_output.o; \
done
@rm -f *.o_checkcode
else
@echo "check-code requires gcc"
@echo "Reconfigure with gcc"
endif

#----------------------------------------------------------------------
# Rules for debugging the Makefile
#----------------------------------------------------------------------

DEBUG_VARS = \
SHELL \
PRODUCT \
VERSION \
prefix \
exec_prefix \
master_srcdir \
local_srcdir \
libdir \
includedir \
objectdir \
headerdir \
LIBRARY \
AC_FLAGS \
RANLIB \
CC \
CFLAGS \
INSTALL \
INSTALL_DATA \
MAKEINCLUDES \
OBJECTS \
BDD_CSRC \
BDD_HEADERS \
INCLUDEDIRS \
VPATH

.PHONY : debug-make

#:
#: debug-make - Print a list of Makefile variables

debug-make:
@$(foreach var, $(DEBUG_VARS), echo $(var)=$($(var)) ; )
Loading

0 comments on commit 8a8634b

Please sign in to comment.