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.
124 lines
3.2 KiB
124 lines
3.2 KiB
# $Id$
|
|
#
|
|
# Cudd - DD package
|
|
#---------------------------
|
|
.SUFFIXES: .o .c .u
|
|
|
|
CC = gcc
|
|
RANLIB = ranlib
|
|
PURE =
|
|
# Define EXE as .exe for MS-DOS and derivatives.
|
|
EXE =
|
|
#EXE = .exe
|
|
|
|
MFLAG =
|
|
ICFLAGS = -g
|
|
XCFLAGS = -DDD_STATS
|
|
CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS)
|
|
#DDDEBUG = -DDD_DEBUG -DDD_CACHE_PROFILE -DDD_VERBOSE -DDD_UNIQUE_PROFILE
|
|
DDDEBUG =
|
|
|
|
LINTFLAGS = -u -n -DDD_STATS -DDD_CACHE_PROFILE -DDD_VERBOSE -DDD_DEBUG -DDD_UNIQUE_PROFILE
|
|
|
|
# this is to create the lint library
|
|
LINTSWITCH = -o
|
|
|
|
WHERE = ..
|
|
|
|
INCLUDE = $(WHERE)/include
|
|
|
|
LIBS = ./libcudd.a $(WHERE)/mtr/libmtr.a \
|
|
$(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
|
|
|
|
MNEMLIB =
|
|
|
|
BLIBS = -kL. -klcudd -kL$(WHERE)/mtr -klmtr \
|
|
-kL$(WHERE)/st -klst -kL$(WHERE)/util -klutil -kL$(WHERE)/epd -klepd
|
|
|
|
LINTLIBS = ./llib-lcudd.ln $(WHERE)/mtr/llib-lmtr.ln \
|
|
$(WHERE)/st/llib-lst.ln $(WHERE)/util/llib-lutil.ln \
|
|
$(WHERE)/epd/llib-lepd.ln
|
|
|
|
LDFLAGS =
|
|
|
|
# files for the package
|
|
P = cudd
|
|
PSRC = cuddAPI.c cuddAddAbs.c cuddAddApply.c cuddAddFind.c cuddAddIte.c \
|
|
cuddAddInv.c cuddAddNeg.c cuddAddWalsh.c cuddAndAbs.c \
|
|
cuddAnneal.c cuddApa.c cuddApprox.c cuddBddAbs.c cuddBddCorr.c \
|
|
cuddBddIte.c cuddBridge.c cuddCache.c cuddCheck.c cuddClip.c \
|
|
cuddCof.c cuddCompose.c cuddDecomp.c cuddEssent.c \
|
|
cuddExact.c cuddExport.c cuddGenCof.c cuddGenetic.c \
|
|
cuddGroup.c cuddHarwell.c cuddInit.c cuddInteract.c \
|
|
cuddLCache.c cuddLevelQ.c \
|
|
cuddLinear.c cuddLiteral.c cuddMatMult.c cuddPriority.c \
|
|
cuddRead.c cuddRef.c cuddReorder.c cuddSat.c cuddSign.c \
|
|
cuddSolve.c cuddSplit.c cuddSubsetHB.c cuddSubsetSP.c cuddSymmetry.c \
|
|
cuddTable.c cuddUtil.c cuddWindow.c cuddZddCount.c cuddZddFuncs.c \
|
|
cuddZddGroup.c cuddZddIsop.c cuddZddLin.c cuddZddMisc.c \
|
|
cuddZddPort.c cuddZddReord.c cuddZddSetop.c cuddZddSymm.c \
|
|
cuddZddUtil.c
|
|
PHDR = cudd.h 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)
|
|
|
|
#------------------------------------------------------
|
|
|
|
lib$(P).a: $(POBJ)
|
|
ar rv $@ $?
|
|
$(RANLIB) $@
|
|
|
|
.c.o: $(PSRC) $(PHDR)
|
|
$(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
|
|
|
|
optimize_dec: lib$(P).b
|
|
|
|
lib$(P).b: $(PUBJ)
|
|
ar rv $@ $?
|
|
$(RANLIB) $@
|
|
|
|
.c.u: $(PSRC) $(PHDR)
|
|
cc -j $< -I$(INCLUDE) $(XCFLAGS)
|
|
|
|
# if the header files change, recompile
|
|
$(POBJ): $(PHDR)
|
|
$(PUBJ): $(PHDR)
|
|
$(OBJ): $(PHDR)
|
|
$(UBJ): $(PHDR)
|
|
|
|
$(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
|
|
$(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
|
|
|
|
# optimize (DECstations and Alphas only: uses u-code)
|
|
$(TARGETu): $(SRC) $(UBJ) $(HDR) $(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:
|
|
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
|