CXX = g++
CXXFLAGS = -std=c++11 -Wall -Wextra -O3 -pthread -Wno-unused-result
LDFLAGS = -pthread

GEN = shm_generator
BENCH = shm_benchmark

GEN_SRCS = shm_generator.cpp

BENCH_SRCS = shm_benchmark.cpp \
             row.cpp \
             one_to_one_pipe_scheduler.cpp \
             one_to_many_scheduler.cpp \
             many_to_many_scheduler.cpp

all: $(GEN) $(BENCH)

$(GEN): $(GEN_SRCS)
	$(CXX) $(CXXFLAGS) -o $(GEN) $(GEN_SRCS) $(LDFLAGS)

$(BENCH): $(BENCH_SRCS)
	$(CXX) $(CXXFLAGS) -o $(BENCH) $(BENCH_SRCS) $(LDFLAGS)

run: all
	./$(GEN) 1000 640 640
	./$(BENCH) 1000 640 640 24 1

clean:
	rm -f $(GEN) $(BENCH) *.o

.PHONY: all run clean
