Makefile 2.18 KB
Newer Older
Alan Mishchenko committed
1 2

CC   := gcc
3
CXX  := g++
Alan Mishchenko committed
4 5 6 7 8
LD   := g++
CP   := cp

PROG := abc

Alan Mishchenko committed
9
MODULES := \
10
        $(wildcard src/ext) src/misc/ext \
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
	src/base/abc src/base/abci src/base/cmd src/base/io \
	src/base/main src/base/ver src/base/test \
	src/bdd/cudd src/bdd/dsd src/bdd/epd src/bdd/mtr src/bdd/parse \
	src/bdd/reo src/bdd/cas \
	src/map/fpga src/map/mapper src/map/mio src/map/super src/map/if \
	src/map/amap src/map/cov \
	src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/nm \
	src/misc/vec src/misc/hash src/misc/tim src/misc/bzlib src/misc/zlib \
	src/misc/mem src/misc/bar src/misc/bbl \
	src/opt/cut src/opt/fxu src/opt/rwr src/opt/mfs src/opt/sim \
	src/opt/ret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt \
	src/opt/cgt src/opt/csw src/opt/dar \
	src/sat/bsat src/sat/csat src/sat/msat src/sat/psat src/sat/cnf \
	src/bool/bdc src/bool/deco src/bool/dec src/bool/kit \
	src/proof/pdr src/proof/int src/proof/bbr src/proof/llb src/proof/live \
	src/proof/cec src/proof/dch src/proof/fraig src/proof/fra src/proof/ssw \
	src/aig/aig src/aig/saig src/aig/gia src/aig/ioa src/aig/ivy src/aig/hop \
28
	src/python 
Alan Mishchenko committed
29

30
all: $(PROG)
Alan Mishchenko committed
31
default: $(PROG)
Alan Mishchenko committed
32

33
arch_flags : arch_flags.c
34
	$(CC) arch_flags.c -o arch_flags
35

36
ARCHFLAGS := $(shell $(CC) arch_flags.c -o arch_flags && ./arch_flags)
37
OPTFLAGS  := -g -O #-DABC_NAMESPACE=xxx
Alan Mishchenko committed
38

39
CFLAGS   += -Wall -Wno-unused-function $(OPTFLAGS) $(ARCHFLAGS) -I$(PWD)
Alan Mishchenko committed
40 41
CXXFLAGS += $(CFLAGS) 

42
#LIBS := -m32 -ldl -rdynamic -lreadline -ltermcap
43
LIBS := -lreadline
44

Alan Mishchenko committed
45
SRC  := 
46
GARBAGE := core core.* *.stackdump ./tags $(PROG) arch_flags
Alan Mishchenko committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

.PHONY: tags clean docs

include $(patsubst %, %/module.make, $(MODULES))

OBJ := \
	$(patsubst %.cc, %.o, $(filter %.cc, $(SRC))) \
	$(patsubst %.c, %.o,  $(filter %.c, $(SRC)))  \
	$(patsubst %.y, %.o,  $(filter %.y, $(SRC))) 

DEP := $(OBJ:.o=.d)

# implicit rules

%.d: %.c
	./depends.sh $(CC) `dirname $*.c` $(CFLAGS) $*.c > $@

%.d: %.cc
	./depends.sh $(CXX) `dirname $*.cc` $(CXXFLAGS) $(CFLAGS) $*.cc > $@

-include $(DEP)

# Actual targets

depend: $(DEP)

clean: 
74
	rm -rf $(PROG) lib$(PROG).a $(OBJ) $(GARBAGE) $(OBJ:.o=.d) 
Alan Mishchenko committed
75 76 77 78 79 80 81

tags:
	ctags -R .

$(PROG): $(OBJ)
	$(LD) -o $@ $^ $(LIBS)

Alan Mishchenko committed
82 83 84 85
lib$(PROG).a: $(OBJ)
	ar rv $@ $?
	ranlib $@

Alan Mishchenko committed
86 87 88
docs:
	doxygen doxygen.conf