emergency commit
[cl-cudd.git] / distr / obj / Makefile
blobe11f37b40aa8762219e8f58f02225a0f4a1590f8
1 # $Id: Makefile,v 1.3 2001/03/19 07:34:37 fabio Exp fabio $
3 # obj: CUDD's C++ interface
4 #---------------------------------------------------------------------------
5 .SUFFIXES: .o .cc .u
7 CPP = g++
8 RANLIB = ranlib
9 # Define EXE as .exe for MS-DOS and derivatives.
10 PURE =
11 EXE =
12 #EXE = .exe
14 MFLAG =
15 ICFLAGS = -g
16 XCFLAGS =
17 CPPFLAGS =
18 CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS) $(CPPFLAGS)
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 = ./libobj.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \
31 $(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
33 MNEMLIB =
35 BLIBS = -kL. -klobj -kL$(WHERE)/cudd -klcudd -kL$(WHERE)/mtr -klmtr \
36 -kL$(WHERE)/st -klst -kL$(WHERE)/util -klutil -kL$(WHERE)/epd -klepd
38 LINTLIBS = ./llib-lobj.ln $(WHERE)/cudd/llib-lcudd.ln \
39 $(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \
40 $(WHERE)/util/llib-lutil.ln $(WHERE)/epd/llib-lepd.ln
42 LDFLAGS =
44 # files for the package
45 P = obj
46 PSRC = cuddObj.cc
47 PHDR = cuddObj.hh $(INCLUDE)/cudd.h
48 POBJ = $(PSRC:.cc=.o)
49 PUBJ = $(PSRC:.cc=.u)
50 TARGET = test$(P)$(EXE)
51 TARGETu = test$(P)-u
53 # files for the test program
54 SRC = test$(P).cc
55 OBJ = $(SRC:.cc=.o)
56 UBJ = $(SRC:.cc=.u)
58 #------------------------------------------------------
60 lib$(P).a: $(POBJ)
61 ar rv $@ $?
62 $(RANLIB) $@
64 .cc.o: $(PHDR)
65 $(CPP) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
67 optimize_dec: lib$(P).b
69 lib$(P).b: $(PUBJ)
70 ar rv $@ $?
71 $(RANLIB) $@
73 .cc.u: $(PHDR)
74 cxx -j $< -I$(INCLUDE) $(CFLAGS)
76 # if the header files change, recompile
77 $(POBJ): $(PHDR)
78 $(PUBJ): $(PHDR)
79 $(OBJ): $(PHDR)
80 $(UBJ): $(PHDR)
82 $(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
83 $(PURE) $(CPP) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
85 # optimize (DECstations and Alphas only: uses u-code)
86 $(TARGETu): $(SRC) $(UBJ) $(HDR) $(LIBS:.a=.b)
87 cxx -O3 -Olimit 1000 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
89 lint: llib-l$(P).ln
91 llib-l$(P).ln: $(PSRC) $(PHDR)
92 lint $(LINTFLAGS) $(LINTSWITCH)$(P) -I$(INCLUDE) $(PSRC)
94 lintpgm: lint
95 lint $(LINTFLAGS) -I$(INCLUDE) $(SRC) $(LINTLIBS)
97 tags: $(PSRC) $(PHDR)
98 ctags $(PSRC) $(PHDR)
100 all: lib$(P).a lib$(P).b llib-l$(P).ln tags
102 programs: $(TARGET) $(TARGETu) lintpgm
104 clean:
105 rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
106 .pure core *.warnings
108 distclean: clean
109 rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
110 *.bak *~ tags .gdb_history *.qv *.qx