fun issues...
[model-checker.git] / Makefile
1 include common.mk
2
3 OBJECTS = libthreads.o schedule.o model.o threads.o librace.o action.o \
4           nodestack.o clockvector.o main.o snapshot-interface.o cyclegraph.o \
5           datarace.o impatomic.o cmodelint.o \
6           snapshot.o malloc.o mymemory.o
7
8 CPPFLAGS += -Iinclude -I.
9 LDFLAGS=-ldl -lrt
10 SHARED=-shared
11
12 TESTS=test
13
14 program_H_SRCS := $(wildcard *.h) $(wildcard include/*.h)
15 program_C_SRCS := $(wildcard *.c) $(wildcard *.cc)
16 DEPS = make.deps
17
18 all: $(LIB_SO) $(DEPS) tests
19
20 $(DEPS): $(program_C_SRCS) $(program_H_SRCS)
21         $(CXX) $(CPPFLAGS) -MM $(program_C_SRCS) > $(DEPS)
22
23 include $(DEPS)
24
25 debug: CPPFLAGS += -DCONFIG_DEBUG
26 debug: all
27
28 mac: CPPFLAGS += -D_XOPEN_SOURCE -DMAC
29 mac: LDFLAGS=-ldl
30 mac: SHARED=-Wl,-undefined,dynamic_lookup -dynamiclib
31 mac: all
32
33 docs: *.c *.cc *.h
34         doxygen
35
36 $(LIB_SO): $(OBJECTS)
37         $(CXX) $(SHARED) -o $(LIB_SO) $(OBJECTS) $(LDFLAGS)
38
39 malloc.o: malloc.c
40         $(CC) -fPIC -c malloc.c -DMSPACES -DONLY_MSPACES $(CPPFLAGS)
41
42 %.o: %.cc
43         $(CXX) -fPIC -c $< $(CPPFLAGS)
44
45 clean:
46         rm -f *.o *.so
47         $(MAKE) -C $(TESTS) clean
48
49 mrclean: clean
50         rm -rf docs
51
52 tags::
53         ctags -R
54
55 tests:: $(LIB_SO)
56         $(MAKE) -C $(TESTS)