You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
243 lines
6.9 KiB
243 lines
6.9 KiB
#----------------------------------------------------------------------------#
|
|
# Makefile for the dddmp distribution kit #
|
|
# dddmp: Decision Diagram DuMP #
|
|
# (storage and retrieval of BDDs, ADDs and CNF formulas) #
|
|
# Revision: Version 2.0.2, February 01, 2004 #
|
|
#----------------------------------------------------------------------------#
|
|
|
|
# Commands Available:
|
|
# make
|
|
# it makes the library libdddmp.a
|
|
# make testdddmp
|
|
# it makes the testdddmp program, which allows to test the dddmp
|
|
# package
|
|
# make clean
|
|
# it cleans dddmp
|
|
# make distclean
|
|
# it cleans dddmp (as clean) with libraries and executable
|
|
# files
|
|
|
|
#----------------------------------------------------------------------------#
|
|
# Configuration Section #
|
|
# uncomment the desired options/sections #
|
|
#----------------------------------------------------------------------------#
|
|
|
|
#--------------------#
|
|
# Define Directories #
|
|
#--------------------#
|
|
|
|
# Cudd directory
|
|
WHERE = ..
|
|
#WHERE = ../cudd-2.4.0
|
|
|
|
# Include directory (Cudd include files)
|
|
INCLUDE = $(WHERE)/include
|
|
|
|
#------------------------#
|
|
# Define C Compiler Used #
|
|
#------------------------#
|
|
|
|
CC = gcc
|
|
#CC = g++
|
|
#CC = cc
|
|
#CC = icc
|
|
#CC = ecc
|
|
#CC = /usr/ucb/cc
|
|
#CC = c89
|
|
|
|
.SUFFIXES: .o .c .u
|
|
|
|
#---------------#
|
|
# Define ranlib #
|
|
#---------------#
|
|
|
|
# For machines with ranlib and you think it is needed
|
|
RANLIB = ranlib
|
|
# For machines which either do not have ranlib or can do without it
|
|
#RANLIB = :
|
|
|
|
#----------------------------------#
|
|
# Define Machine Independent Flags #
|
|
#----------------------------------#
|
|
|
|
# Settings for cc
|
|
#ICFLAGS =
|
|
#ICFLAGS = -g
|
|
#ICFLAGS = -O
|
|
# Settings for optimized code with gcc
|
|
#ICFLAGS = -g -Wall
|
|
#ICFLAGS = -g -O3 -Wall
|
|
ICFLAGS = -g -O6 -Wall
|
|
|
|
#--------------------------------#
|
|
# Define Machine Dependent Flags #
|
|
#--------------------------------#
|
|
|
|
# When no special flags are needed
|
|
#XCFLAGS = -DHAVE_IEEE_754 -DBSD
|
|
# Linux with Gcc 2.8.1 or higher on i686.
|
|
#XCFLAGS = -mcpu=pentiumpro -malign-double -DHAVE_IEEE_754 -DBSD
|
|
# Gcc 3.3.2 or higher on i686.
|
|
XCFLAGS = -mcpu=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD
|
|
# For Solaris, BSD should not be replaced by UNIX100.
|
|
#XCFLAGS = -DHAVE_IEEE_754 -DUNIX100 -DEPD_BIG_ENDIAN
|
|
# New native compiler for the Alphas; 64-bit pointers.
|
|
#XCFLAGS = -g3 -O4 -std -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8
|
|
# New native compiler for the Alphas; 32-bit pointers.
|
|
#XCFLAGS = -g3 -O4 -std -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -xtaso -DSIZEOF_LONG=8
|
|
# Windows95/98/NT/XP with Cygwin tools
|
|
#XCFLAGS = -mcpu=pentiumpro -malign-double -DHAVE_IEEE_754 -DHAVE_GETRLIMIT=0 -DRLIMIT_DATA_DEFAULT=67108864
|
|
|
|
#---------------------------------------------#
|
|
# Define Level of Self-Checking and Verbosity #
|
|
#---------------------------------------------#
|
|
|
|
# ... for the CUDD package
|
|
#DDDEBUG = -DDD_DEBUG -DDD_VERBOSE -DDD_STATS -DDD_CACHE_PROFILE -DDD_UNIQUE_PROFILE -DDD_COUNT
|
|
DDDEBUG =
|
|
|
|
# ... for the MTR package
|
|
#MTRDEBUG = -DMTR_DEBUG
|
|
MTRDEBUG =
|
|
|
|
# ... for the DDDMP package
|
|
#DDDMPDEBUG = -DDDDMP_DEBUG
|
|
DDDMPDEBUG =
|
|
|
|
#-----------------------#
|
|
# Define Loader Options #
|
|
#-----------------------#
|
|
|
|
LDFLAGS =
|
|
# This may produce faster code on the DECstations.
|
|
#LDFLAGS = -jmpopt -Olimit 1000
|
|
# This may be necessary under some old versions of Linux.
|
|
#LDFLAGS = -static
|
|
# This normally makes the program faster on the DEC Alphas.
|
|
#LDFLAGS = -non_shared -om
|
|
# This is for 32-bit pointers on the DEC Alphas.
|
|
#LDFLAGS = -non_shared -om -taso
|
|
#LDFLAGS = -non_shared -taso
|
|
|
|
#-------------#
|
|
# Define PURE #
|
|
#-------------#
|
|
|
|
PURE =
|
|
# ... as purify to link with purify.
|
|
#PURE = purify
|
|
# ... as quantify to link with quantify.
|
|
#PURE = quantify
|
|
|
|
#------------#
|
|
# Define EXE #
|
|
#------------#
|
|
|
|
EXE =
|
|
# ... as .exe for MS-DOS and derivatives.
|
|
#EXE = .exe
|
|
|
|
#----------------------------------------------------------------------------#
|
|
# Files for the Package #
|
|
#----------------------------------------------------------------------------#
|
|
|
|
P = dddmp
|
|
PSRC = dddmpStoreBdd.c dddmpStoreAdd.c dddmpStoreCnf.c \
|
|
dddmpLoad.c dddmpLoadCnf.c \
|
|
dddmpNodeBdd.c dddmpNodeAdd.c dddmpNodeCnf.c \
|
|
dddmpStoreMisc.c dddmpUtil.c dddmpBinary.c dddmpConvert.c \
|
|
dddmpDbg.c
|
|
PHDR = dddmp.h dddmpInt.h $(INCLUDE)/cudd.h $(INCLUDE)/cuddInt.h
|
|
POBJ = $(PSRC:.c=.o)
|
|
PUBJ = $(PSRC:.c=.u)
|
|
TARGET = test$(P)$(EXE)
|
|
TARGETu = test$(P)-u
|
|
|
|
# files for the test program
|
|
SRC = test$(P).c
|
|
OBJ = $(SRC:.c=.o)
|
|
UBJ = $(SRC:.c=.u)
|
|
|
|
#----------------------------------------------------------------------------#
|
|
# Rules to compile and build libraries and executables #
|
|
#----------------------------------------------------------------------------#
|
|
|
|
#MFLAG =
|
|
MFLAG = -DMNEMOSYNE
|
|
MNEMLIB = ../mnemosyne/libmnem.a
|
|
|
|
# This is to create the lint library
|
|
LINTFLAGS = -u -n
|
|
LINTSWITCH = -o
|
|
|
|
LIBS = ./libdddmp.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \
|
|
$(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
|
|
|
|
MNEMLIB =
|
|
|
|
BLIBS = -kL. -kldddmp -kL$(WHERE)/cudd -klcudd -kL$(WHERE)/mtr -klmtr \
|
|
-kL$(WHERE)/st -klst -kL$(WHERE)/util -klutil
|
|
|
|
LINTLIBS = ./llib-ldddmp.ln $(WHERE)/cudd/llib-lcudd.ln \
|
|
$(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \
|
|
$(WHERE)/util/llib-lutil.ln
|
|
|
|
lib$(P).a: $(POBJ)
|
|
ar rv $@ $?
|
|
$(RANLIB) $@
|
|
|
|
.c.o: $(PHDR)
|
|
$(CC) -c $< -I$(INCLUDE) $(ICFLAGS) $(XCFLAGS) $(DDDEBUG) $(MTRDEBUG) $(DDDMPDEBUG) $(LDFLAGS)
|
|
|
|
optimize_dec: lib$(P).b
|
|
|
|
lib$(P).b: $(PUBJ)
|
|
ar rv $@ $?
|
|
$(RANLIB) $@
|
|
|
|
.c.u: $(PHDR)
|
|
cc -c $< -I$(INCLUDE) $(CFLAGS)
|
|
|
|
# if the header files change, recompile
|
|
$(POBJ): $(PHDR)
|
|
$(PUBJ): $(PHDR)
|
|
$(OBJ): $(PHDR)
|
|
$(UBJ): $(PHDR)
|
|
|
|
$(TARGET): $(SRC) $(OBJ) $(PHDR) $(LIBS) $(MNEMLIB)
|
|
$(PURE) $(CC) $(ICFLAGS) $(XCFLAGS) $(DDDEBUG) $(MTRDEBUG) $(DDDMPDEBUG) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
|
|
|
|
# optimize (DECstations and Alphas only: uses u-code)
|
|
$(TARGETu): $(SRC) $(UBJ) $(PHDR) $(LIBS:.a=.b)
|
|
cc -O3 -Olimit 1000 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
|
|
|
|
lint: llib-l$(P).ln
|
|
|
|
llib-l$(P).ln: $(PSRC) $(PHDR)
|
|
lint $(LINTFLAGS) $(LINTSWITCH)$(P) -I$(INCLUDE) $(PSRC)
|
|
|
|
lintpgm: lint
|
|
lint $(LINTFLAGS) -I$(INCLUDE) $(SRC) $(LINTLIBS)
|
|
|
|
tags: $(PSRC) $(PHDR)
|
|
ctags $(PSRC) $(PHDR)
|
|
|
|
all: lib$(P).a lib$(P).b llib-l$(P).ln tags
|
|
|
|
programs: $(TARGET) $(TARGETu) lintpgm
|
|
|
|
#----------------------------------------------------------------------------#
|
|
# Clean the Package #
|
|
#----------------------------------------------------------------------------#
|
|
|
|
clean:
|
|
rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
|
|
.pure core *.warnings
|
|
|
|
distclean: clean
|
|
rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
|
|
*.bak *~ tags .gdb_history *.qv *.qx
|
|
|
|
|
|
|
|
|