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