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

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