emergency commit
[cl-cudd.git] / distr / cudd / Makefile
blobbf8ab71f1b3c486f9f3976b3fa45013b7f057581
1 # $Id$
3 # Cudd - DD package
4 #---------------------------
5 .SUFFIXES: .o .c .u
7 CC = gcc
8 RANLIB = ranlib
9 PURE =
10 # Define EXE as .exe for MS-DOS and derivatives.
11 EXE =
12 #EXE = .exe
14 MFLAG =
15 ICFLAGS = -g
16 XCFLAGS = -DDD_STATS
17 CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS)
18 #DDDEBUG = -DDD_DEBUG -DDD_CACHE_PROFILE -DDD_VERBOSE -DDD_UNIQUE_PROFILE
19 DDDEBUG =
21 LINTFLAGS = -u -n -DDD_STATS -DDD_CACHE_PROFILE -DDD_VERBOSE -DDD_DEBUG -DDD_UNIQUE_PROFILE
23 # this is to create the lint library
24 LINTSWITCH = -o
26 WHERE = ..
28 INCLUDE = $(WHERE)/include
30 LIBS = ./libcudd.a $(WHERE)/mtr/libmtr.a \
31 $(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
33 MNEMLIB =
35 BLIBS = -kL. -klcudd -kL$(WHERE)/mtr -klmtr \
36 -kL$(WHERE)/st -klst -kL$(WHERE)/util -klutil -kL$(WHERE)/epd -klepd
38 LINTLIBS = ./llib-lcudd.ln $(WHERE)/mtr/llib-lmtr.ln \
39 $(WHERE)/st/llib-lst.ln $(WHERE)/util/llib-lutil.ln \
40 $(WHERE)/epd/llib-lepd.ln
42 LDFLAGS =
44 # files for the package
45 P = cudd
46 PSRC = cuddAPI.c cuddAddAbs.c cuddAddApply.c cuddAddFind.c cuddAddIte.c \
47 cuddAddInv.c cuddAddNeg.c cuddAddWalsh.c cuddAndAbs.c \
48 cuddAnneal.c cuddApa.c cuddApprox.c cuddBddAbs.c cuddBddCorr.c \
49 cuddBddIte.c cuddBridge.c cuddCache.c cuddCheck.c cuddClip.c \
50 cuddCof.c cuddCompose.c cuddDecomp.c cuddEssent.c \
51 cuddExact.c cuddExport.c cuddGenCof.c cuddGenetic.c \
52 cuddGroup.c cuddHarwell.c cuddInit.c cuddInteract.c \
53 cuddLCache.c cuddLevelQ.c \
54 cuddLinear.c cuddLiteral.c cuddMatMult.c cuddPriority.c \
55 cuddRead.c cuddRef.c cuddReorder.c cuddSat.c cuddSign.c \
56 cuddSolve.c cuddSplit.c cuddSubsetHB.c cuddSubsetSP.c cuddSymmetry.c \
57 cuddTable.c cuddUtil.c cuddWindow.c cuddZddCount.c cuddZddFuncs.c \
58 cuddZddGroup.c cuddZddIsop.c cuddZddLin.c cuddZddMisc.c \
59 cuddZddPort.c cuddZddReord.c cuddZddSetop.c cuddZddSymm.c \
60 cuddZddUtil.c
61 PHDR = cudd.h cuddInt.h
62 POBJ = $(PSRC:.c=.o)
63 PUBJ = $(PSRC:.c=.u)
64 TARGET = test$(P)$(EXE)
65 TARGETu = test$(P)-u
67 # files for the test program
68 SRC = test$(P).c
69 OBJ = $(SRC:.c=.o)
70 UBJ = $(SRC:.c=.u)
72 #------------------------------------------------------
74 lib$(P).so: $(POBJ)
75 gcc --shared -o $@ $? $(LIBS)
76 lib$(P).a: $(POBJ)
77 ar rv $@ $?
78 $(RANLIB) $@
81 .c.o: $(PSRC) $(PHDR)
82 $(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
84 optimize_dec: lib$(P).b
86 lib$(P).b: $(PUBJ)
87 ar rv $@ $?
88 $(RANLIB) $@
90 .c.u: $(PSRC) $(PHDR)
91 cc -j $< -I$(INCLUDE) $(XCFLAGS)
93 # if the header files change, recompile
94 $(POBJ): $(PHDR)
95 $(PUBJ): $(PHDR)
96 $(OBJ): $(PHDR)
97 $(UBJ): $(PHDR)
99 $(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
100 $(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
102 # optimize (DECstations and Alphas only: uses u-code)
103 $(TARGETu): $(SRC) $(UBJ) $(HDR) $(LIBS:.a=.b)
104 $(CC) -O3 -Olimit 1000 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
106 lint: llib-l$(P).ln
108 llib-l$(P).ln: $(PSRC) $(PHDR)
109 lint $(LINTFLAGS) $(LINTSWITCH)$(P) -I$(INCLUDE) $(PSRC)
111 lintpgm: lint
112 lint $(LINTFLAGS) -I$(INCLUDE) $(SRC) $(LINTLIBS)
114 tags: $(PSRC) $(PHDR)
115 ctags $(PSRC) $(PHDR)
117 all: lib$(P).a lib$(P).so lib$(P).b llib-l$(P).ln tags
119 programs: $(TARGET) $(TARGETu) lintpgm
121 clean:
122 rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
123 .pure core *.warnings
125 distclean: clean
126 rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
127 *.bak *~ tags .gdb_history *.qv *.qx