CXX = g++
CXXFLAGS = -std=c++1z -Wall  
CXXFLAGSLIB = -std=c++1z -Wall -Wextra -fPIC -fpermissive
LDFLAGS = -shared
LIB = librow.so
EXECS = pipe_scheduler_one pipe_scheduler_one_many pipe_scheduler 
LIBS = -lboost_chrono -lboost_system -lboost_thread -lpthread 

all: $(LIB) $(EXECS) 

# Build object file
#	$(CXX) $(CXXFLAGS) -c row.cpp -o row.o
row.o: row.cpp row.hpp
	$(CXX) $(CXXFLAGSLIB) -c $< -o $@

# Build shared library
#	$(CXX) $(LDFLAGS) row.o -o $(LIB)
$(LIB): row.o
	$(CXX) $(LDFLAGS) $< -o $(LIB)
#pipe Sched one copy
pipe_scheduler_one:pipe_scheduler_one.cpp 
	$(CXX) $(CXXFLAGS) $< -L. $(LIBS) -lrow -Wl,-rpath=. -o $@  
#pipe Sched one many copy
pipe_scheduler_one_many:pipe_scheduler_one_many.cpp 
	$(CXX) $(CXXFLAGS) $< -L. $(LIBS) -lrow -Wl,-rpath=. -o $@  
#pipe Sched many many copy
pipe_scheduler:pipe_scheduler.cpp 
	$(CXX) $(CXXFLAGS) $< -L. $(LIBS) -lrow -Wl,-rpath=. -o $@  
#socket Sched copy
clean:
	rm -f *.o *.so $(EXECS)
