Makefile/malloc: don't warn for self-assign
[c11tester.git] / Makefile
index 2bd61ce26c0c13b7f87798b671869fea9fc49a6d..657bad6559ed259db5ec0f28cb966a4293b02de8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,15 +3,14 @@ include common.mk
 OBJECTS = libthreads.o schedule.o model.o threads.o librace.o action.o \
          nodestack.o clockvector.o main.o snapshot-interface.o cyclegraph.o \
          datarace.o impatomic.o cmodelint.o \
-         snapshot.o malloc.o mymemory.o
+         snapshot.o malloc.o mymemory.o common.o mutex.o promise.o conditionvariable.o
 
 CPPFLAGS += -Iinclude -I.
-LDFLAGS = -ldl -lrt
+LDFLAGS = -ldl -lrt -rdynamic
 SHARED = -shared
 
 # Mac OSX options
 ifeq ($(UNAME), Darwin)
-CPPFLAGS += -D_XOPEN_SOURCE -DMAC
 LDFLAGS = -ldl
 SHARED = -Wl,-undefined,dynamic_lookup -dynamiclib
 endif
@@ -27,14 +26,12 @@ all: $(LIB_SO) $(DEPS) tests
 $(DEPS): $(program_C_SRCS) $(program_H_SRCS)
        $(CXX) -MM $(program_C_SRCS) $(CPPFLAGS) > $(DEPS)
 
-# Only include, rebuild make.deps when it's going to be used
-ifeq ($(MAKECMDGOALS),$(DEPS))
 include $(DEPS)
-endif
 
 debug: CPPFLAGS += -DCONFIG_DEBUG
 debug: all
 
+PHONY += docs
 docs: *.c *.cc *.h
        doxygen
 
@@ -42,20 +39,38 @@ $(LIB_SO): $(OBJECTS)
        $(CXX) $(SHARED) -o $(LIB_SO) $(OBJECTS) $(LDFLAGS)
 
 malloc.o: malloc.c
-       $(CC) -fPIC -c malloc.c -DMSPACES -DONLY_MSPACES $(CPPFLAGS)
+       $(CC) -fPIC -c malloc.c -DMSPACES -DONLY_MSPACES -DHAVE_MMAP=0 $(CPPFLAGS) -Wno-unused-variable -Wno-self-assign
 
 %.o: %.cc
        $(CXX) -fPIC -c $< $(CPPFLAGS)
 
+PHONY += clean
 clean:
        rm -f *.o *.so
        $(MAKE) -C $(TESTS_DIR) clean
 
+PHONY += mrclean
 mrclean: clean
        rm -rf docs
 
-tags::
+PHONY += tags
+tags:
        ctags -R
 
-tests:: $(LIB_SO)
+PHONY += tests
+tests: $(LIB_SO)
        $(MAKE) -C $(TESTS_DIR)
+
+BENCHMARKS := benchmarks
+
+PHONY += benchmarks
+benchmarks: $(LIB_SO)
+       @if ! test -d $(BENCHMARKS); then \
+               echo "Directory $(BENCHMARKS) does not exist" && \
+               echo "Please clone the benchmarks repository" && \
+               echo && \
+               exit 1; \
+       fi
+       $(MAKE) -C $(BENCHMARKS)
+
+.PHONY: $(PHONY)