Merge remote-tracking branch 'origin/master'
authorBrian Norris <banorris@uci.edu>
Wed, 29 May 2013 02:03:14 +0000 (19:03 -0700)
committerBrian Norris <banorris@uci.edu>
Wed, 29 May 2013 02:03:14 +0000 (19:03 -0700)
Makefile
common.mk
test/Makefile
test/litmus/Makefile

index acd281b..0ad9fa6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,22 +1,22 @@
 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 common.o mutex.o promise.o conditionvariable.o \
-         context.o scanalysis.o execution.o plugins.o
+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 common.o mutex.o promise.o conditionvariable.o \
+          context.o scanalysis.o execution.o plugins.o
 
 CPPFLAGS += -Iinclude -I.
-LDFLAGS = -ldl -lrt -rdynamic
-SHARED = -shared
+LDFLAGS := -ldl -lrt -rdynamic
+SHARED := -shared
 
 # Mac OSX options
 ifeq ($(UNAME), Darwin)
-LDFLAGS = -ldl
-SHARED = -Wl,-undefined,dynamic_lookup -dynamiclib
+LDFLAGS := -ldl
+SHARED := -Wl,-undefined,dynamic_lookup -dynamiclib
 endif
 
-TESTS_DIR = test
+TESTS_DIR := test
 
 all: $(LIB_SO) tests
 
index 9fe9f09..bc068df 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -1,12 +1,12 @@
 # A few common Makefile items
 
-CC = gcc
-CXX = g++
+CC := gcc
+CXX := g++
 
-UNAME = $(shell uname)
+UNAME := $(shell uname)
 
-LIB_NAME = model
-LIB_SO = lib$(LIB_NAME).so
+LIB_NAME := model
+LIB_SO := lib$(LIB_NAME).so
 
 CPPFLAGS += -Wall -g -O3
 
index f1ea5b2..9d7acb0 100644 (file)
@@ -1,24 +1,26 @@
-BASE = ..
+BASE := ..
+
+OBJECTS := $(patsubst %.c, %.o, $(wildcard *.c))
+OBJECTS += $(patsubst %.cc, %.o, $(wildcard *.cc))
 
 include $(BASE)/common.mk
 
-CPPFLAGS += -I$(BASE) -I$(BASE)/include
+DIR := litmus
+include $(DIR)/Makefile
 
-SRCS = $(wildcard *.c)
-CPSRCS = $(wildcard *.cc)
-OBJS = $(patsubst %.c,%.o,$(SRCS)) $(patsubst %.cc,%.o,$(CPSRCS))
+DEPS := $(join $(addsuffix ., $(dir $(OBJECTS))), $(addsuffix .d, $(notdir $(OBJECTS))))
+
+CPPFLAGS += -I$(BASE) -I$(BASE)/include
 
-all: $(OBJS) litmus-tests
+all: $(OBJECTS)
 
-litmus-tests::
-       $(MAKE) -C litmus
+-include $(DEPS)
 
 %.o: %.c
-       $(CC) -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
+       $(CC) -MMD -MF $(@D)/.$(@F).d -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
 
 %.o: %.cc
-       $(CXX) -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
+       $(CXX) -MMD -MF $(@D)/.$(@F).d -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
 
 clean::
-       rm -f *.o
-       $(MAKE) -C litmus clean
+       rm -f $(OBJECTS) $(DEPS)
index b4a1233..a4a19b7 100644 (file)
@@ -1,20 +1,4 @@
-BASE = ../..
+D := $(DIR)
 
-include $(BASE)/common.mk
-
-CPPFLAGS += -I$(BASE) -I$(BASE)/include
-
-SRCS = $(wildcard *.c)
-CPSRCS = $(wildcard *.cc)
-OBJS = $(patsubst %.c,%.o,$(SRCS)) $(patsubst %.cc,%.o,$(CPSRCS))
-
-all: $(OBJS)
-
-%.o: %.c
-       $(CC) -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
-
-%.o: %.cc
-       $(CXX) -o $@ $< $(CPPFLAGS) -L$(BASE) -l$(LIB_NAME)
-
-clean::
-       rm -f *.o
+OBJECTS += $(patsubst %.c, %.o, $(wildcard $(D)/*.c))
+OBJECTS += $(patsubst %.cc, %.o, $(wildcard $(D)/*.cc))