--- /dev/null
+CC = g++
+DIR = ../..
+INCL = $(DIR)/include
+OPT = -O3 -I$(INCL)
+OPT64 = $(OPT) -DB_64
+
+LIB = $(DIR)/lib/BDD.a
+LIB64 = $(DIR)/lib/BDD64.a
+OBJC = $(DIR)/src/BDDc/*.o
+OBJX = $(DIR)/src/BDDXc/*.o
+OBJLCM = $(DIR)/src/BDDLCM/*.o
+
+all: BDD.o BDDX11.o BDDHASH.o ZBDD.o ZBDDX11.o \
+ ZBDDHASH.o ZBDDLCM.o MLZBDDV.o SOP.o BtoI.o \
+ CtoI.o CtoIX11.o BDDDG.o ZBDDDG.o PiDD.o SeqBDD.o
+ rm -f $(LIB)
+ ar cr $(LIB) *.o $(OBJC) $(OBJX) $(OBJLCM)
+ ranlib $(LIB)
+
+64: BDD_64.o BDDX11_64.o BDDHASH_64.o ZBDD_64.o ZBDDX11_64.o \
+ ZBDDHASH_64.o ZBDDLCM_64.o MLZBDDV_64.o SOP_64.o BtoI_64.o \
+ CtoI_64.o CtoIX11_64.o BDDDG_64.o ZBDDDG_64.o PiDD_64.o SeqBDD_64.o
+ rm -f $(LIB64)
+ ar cr $(LIB64) *.o $(OBJC) $(OBJX) $(OBJLCM)
+ ranlib $(LIB64)
+
+clean:
+ rm -f *.o *~
+
+BDD.o: BDD.cc $(INCL)/BDD.h
+ $(CC) $(OPT) -c BDD.cc
+ rm -f BDD_64.o
+
+BDD_64.o: BDD.cc $(INCL)/BDD.h
+ $(CC) $(OPT64) -c BDD.cc -o BDD_64.o
+ rm -f BDD.o
+
+BDDX11.o: BDDX11.cc $(INCL)/BDD.h
+ $(CC) $(OPT) -c BDDX11.cc
+ rm -f BDDX11_64.o
+
+BDDX11_64.o: BDDX11.cc $(INCL)/BDD.h
+ $(CC) $(OPT64) -c BDDX11.cc -o BDDX11_64.o
+ rm -f BDDX11.o
+
+BDDHASH.o: BDDHASH.cc $(INCL)/BDD.h
+ $(CC) $(OPT) -c BDDHASH.cc
+ rm -f BDDHASH_64.o
+
+BDDHASH_64.o: BDDHASH.cc $(INCL)/BDD.h
+ $(CC) $(OPT64) -c BDDHASH.cc -o BDDHASH_64.o
+ rm -f BDDHASH.o
+
+ZBDD.o: ZBDD.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c ZBDD.cc
+ rm -f ZBDD_64.o
+
+ZBDD_64.o: ZBDD.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c ZBDD.cc -o ZBDD_64.o
+ rm -f ZBDD.o
+
+ZBDDX11.o: ZBDDX11.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c ZBDDX11.cc
+ rm -f ZBDDX11_64.o
+
+ZBDDX11_64.o: ZBDDX11.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c ZBDDX11.cc -o ZBDDX11_64.o
+ rm -f ZBDDX11.o
+
+ZBDDHASH.o: ZBDDHASH.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c ZBDDHASH.cc
+ rm -f ZBDDHASH_64.o
+
+ZBDDHASH_64.o: ZBDDHASH.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c ZBDDHASH.cc -o ZBDDHASH_64.o
+ rm -f ZBDDHASH.o
+
+ZBDDLCM.o: ZBDDLCM.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c ZBDDLCM.cc
+ rm -f ZBDDLCM_64.o
+
+ZBDDLCM_64.o: ZBDDLCM.cc $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c ZBDDLCM.cc -o ZBDDLCM_64.o
+ rm -f ZBDDLCM.o
+
+MLZBDDV.o: MLZBDDV.cc $(INCL)/MLZBDDV.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c MLZBDDV.cc
+ rm -f MLZBDDV_64.o
+
+MLZBDDV_64.o: MLZBDDV.cc $(INCL)/MLZBDDV.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c MLZBDDV.cc -o MLZBDDV_64.o
+ rm -f MLZBDDV.o
+
+SOP.o: SOP.cc $(INCL)/SOP.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c SOP.cc
+ rm -f SOP_64.o
+
+SOP_64.o: SOP.cc $(INCL)/SOP.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c SOP.cc -o SOP_64.o
+ rm -f SOP.o
+
+BtoI.o: BtoI.cc $(INCL)/BtoI.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c BtoI.cc
+ rm -f BtoI_64.o
+
+BtoI_64.o: BtoI.cc $(INCL)/BtoI.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c BtoI.cc -o BtoI_64.o
+ rm -f BtoI.o
+
+CtoI.o: CtoI.cc $(INCL)/CtoI.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c CtoI.cc
+ rm -f CtoI_64.o
+
+CtoI_64.o: CtoI.cc $(INCL)/CtoI.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c CtoI.cc -o CtoI_64.o
+ rm -f CtoI.o
+
+CtoIX11.o: CtoIX11.cc $(INCL)/CtoI.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c CtoIX11.cc
+ rm -f CtoIX11_64.o
+
+CtoIX11_64.o: CtoIX11.cc $(INCL)/CtoI.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c CtoIX11.cc -o CtoIX11_64.o
+ rm -f CtoIX11.o
+
+BDDDG.o: BDDDG.cc $(INCL)/BDDDG.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c BDDDG.cc
+ rm -f BDDDG_64.o
+
+BDDDG_64.o: BDDDG.cc $(INCL)/BDDDG.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c BDDDG.cc -o BDDDG_64.o
+ rm -f BDDDG.o
+
+ZBDDDG.o: ZBDDDG.cc $(INCL)/ZBDDDG.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c ZBDDDG.cc
+ rm -f ZBDDDG_64.o
+
+ZBDDDG_64.o: ZBDDDG.cc $(INCL)/ZBDDDG.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c ZBDDDG.cc -o ZBDDDG_64.o
+ rm -f ZBDDDG.o
+
+PiDD.o: PiDD.cc $(INCL)/PiDD.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c PiDD.cc
+ rm -f PiDD_64.o
+
+PiDD_64.o: PiDD.cc $(INCL)/PiDD.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c PiDD.cc -o PiDD_64.o
+ rm -f PiDD.o
+
+SeqBDD.o: SeqBDD.cc $(INCL)/SeqBDD.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT) -c SeqBDD.cc
+ rm -f SeqBDD_64.o
+
+SeqBDD_64.o: SeqBDD.cc $(INCL)/SeqBDD.h $(INCL)/ZBDD.h $(INCL)/BDD.h
+ $(CC) $(OPT64) -c SeqBDD.cc -o SeqBDD_64.o
+ rm -f SeqBDD.o
+